<snapdata remixID="14437110"><project name="sprunki oc (flag)" app="Snap! 10.7.2, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="sprunki oc (flag)"><notes></notes><palette><category name="Operators2" color="98,194,19,1"/><category name="Database" color="150,150,150,1"/><category name="Online" color="128,255,241,1"/><category name="Other" color="86,86,86,1"/><category name="Variables2" color="243,118,29,1"/><category name="Prompt" color="103,147,189,1"/><category name="Sprites" color="0,204,44,1"/><category name="JBit operators" color="3,255,0,1"/><category name="3D Beetle" color="92,181,255,1"/><category name="Encoders" color="19,0,153,1"/><category name="Ωω♾" color="17,87,0,1"/><category name="Program" color="0,58,230,1"/><category name="0. My own blocks" color="179,120,0,1"/><category name="3. Data tools" color="220,50,0,1"/><category name="2. Math tools" color="0,180,50,1"/><category name="5. PlotPad for data plots" color="150,175,80,1"/><category name="4. SQL tools" color="255,150,0,1"/><category name="6. ImagePad for image operations" color="200,170,50,1"/><category name="1. SciSnap! globals" color="0,170,170,1"/><category name="7. GraphPad for graph operations" color="230,160,70,1"/><category name="8. NNPad for neural networks" color="200,100,0,1"/><category name="9. GridPad for grid operations" color="180,70,100,1"/><category name="AlonzoAPI" color="255,201,62,1"/><category name="Embroidery" color="0,120,0,1"/><category name="Streams" color="164,0,0,1"/><category name="BlobAPI" color="0,137,255,1"/><category name="JavaScript" color="199,0,111,1"/><category name="More Blocks" color="255,128,112,1"/><category name="Country" color="115,158,0,1"/><category name="Space" color="0,49,112,1"/><category name="Website" color="179,147,0,1"/><category name="Extra" color="0,116,143,1"/><category name="Obsolete Blocks" color="230,69,0,1"/><category name="Unused Blocks" color="255,51,196,1"/><category name="New Motion" color="0,116,143,1"/><category name="New Looks/Effects" color="0,9,138,1"/><category name="New Sounds" color="91,0,158,1"/><category name="New Control" color="194,145,0,1"/><category name="New Sensing" color="8,158,0,1"/><category name="Colors" color="255,117,205,1"/><category name="New Variables/Lists/Dictionaries" color="168,38,0,1"/><category name="Inline Blocks" color="214,205,0,1"/><category name="Control+" color="194,164,0,1"/><category name="Sensing+" color="0,116,143,1"/><category name="Operators+" color="3,117,0,1"/><category name="Best custom blocks" color="227,0,230,1"/><category name="Project" color="0,5,1,1"/><category name="Useless" color="153,74,18,1"/><category name="Special" color="121,164,85,1"/><category name="Encryption &amp; Hashing" color="0,168,168,1"/><category name="Random" color="218,54,51,1"/><category name="Plugins" color="107,107,107,1"/><category name="Server" color="200,146,30,1"/><category name="Soundscopes" color="250,207,0,1"/><category name="Render" color="0,116,143,1"/><category name="Advanced Render" color="0,102,98,1"/><category name="Logs" color="41,41,41,1"/><category name="Other2" color="86,86,86,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="costume from text %&apos;text&apos; size %&apos;size&apos;" type="reporter" category="looks"><header></header><code></code><translations>de:Kostüm aus Text _ Größe _&#xD;pt:um traje com o texto _ de tamanho _&#xD;</translations><inputs><input type="%s">A</input><input type="%n">72</input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>x</l><l>y</l><l>dir</l><l>cst</l><l>trails</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>cst</l><block s="getCostumeIdx"></block></block><block s="up"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><block s="write"><block var="text"/><block var="size"/></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><block s="doSetVar"><l>costume</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="doRun"><block s="reportJSFunction"><list><l>costume</l><l>name</l></list><l>costume.name = name;</l></block><list><block var="costume"/><block var="text"/></list></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="doReport"><block var="costume"/></block></script></block-definition><block-definition s="costume %&apos;cst&apos; with background RGBA %&apos;rgb&apos; padding %&apos;padding&apos;" type="reporter" category="looks"><header></header><code></code><translations>pl:kostium _ z tłem RGBA _ rozmiar tła _&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%n">200</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>old</l><l>clr</l><l>new</l><l>x</l><l>y</l><l>dir</l><l>trails</l><l>flat</l><l>old size</l><l>old pen state</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>old</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSetVar"><l>clr</l><block s="getPenAttribute"><l><option>r-g-b-a</option></l></block></block><block s="doSetVar"><l>flat</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetVar"><l>old size</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="doSetVar"><l>old pen state</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="gotoXY"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportGetImageAttribute"><l><option>width</option></l><block var="cst"/></block><l>2</l></block><block var="padding"/></list></block></block><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><l><bool>true</bool></l></block><block s="setSize"><block s="reportVariadicSum"><list><block s="reportGetImageAttribute"><l><option>height</option></l><block var="cst"/></block><block s="reportVariadicProduct"><list><block var="padding"/><l>2</l></list></block></list></block></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block var="rgb"/></block><block s="down"></block><block s="setXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="xPosition"></block></block></block><block s="up"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="doGotoObject"><l><option>center</option></l></block><block s="gotoXY"><block s="reportMonadic"><l><option>neg</option></l><block s="reportGet"><l><option>center x</option></l></block></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportGet"><l><option>center y</option></l></block></block></block><block s="doStamp"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSetVar"><l>new</l><block s="reportPenTrailsAsCostume"></block></block><block s="doApplyExtension"><l>obj_name(obj, name)</l><list><block var="new"/><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportAttributeOf"><l><option>costume name</option></l><l>Sprite</l></block><l><option>word</option></l></block><l>button</l></block><block s="reportAttributeOf"><l><option>costume name</option></l><l>Sprite</l></block><block s="reportJoinWords"><list><block s="reportAttributeOf"><l><option>costume name</option></l><l>Sprite</l></block><l> button</l></list></block></block></list></block><block s="clear"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="old"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block var="clr"/></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat"/></block><block s="setSize"><block var="old size"/></block><block s="doIf"><block var="old pen state"/><script><block s="down"></block></script><list></list></block><block s="doReport"><block var="new"/></block></script><scripts><script x="255" y="186.19999999999993"><custom-block s="costume %s with background RGBA %n padding %n"><custom-block s="costume %s with background RGBA %n padding %n"><custom-block s="costume from text %s size %n"><l>Snap!</l><l>36</l></custom-block><l>200</l><l>10</l></custom-block><l>100</l><l>2</l></custom-block></script><comment x="248.685546875" y="121.03333333333336" w="106" collapsed="false">Use this block to make &quot;clickable&quot; buttons:</comment></scripts></block-definition><block-definition s="switch to costume %&apos;J&apos;" type="command" category="looks"><comment x="0" y="0" w="263" collapsed="false">Switches to a costume created by a reporter.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doSwitchToCostume"><block s="evaluate"><block var="J"/><list></list></block></block></script></block-definition><block-definition s="switch to costume text %&apos;(2)&apos; size %&apos;s&apos;" type="command" category="looks"><comment x="0" y="0" w="263" collapsed="false">Switches to costume “text” at a certain “size”&#xD;A block version of snap’s block from the ‘text to costume’ pack in the library.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doSwitchToCostume"><custom-block s="costume from text %s size %n"><block var="(2)"/><block var="s"/></custom-block></block></script></block-definition><block-definition s="Visibility ☯️" type="command" category="looks"><comment x="0" y="0" w="118" collapsed="false">Reverses the visibility.&#xD;&#xD;If it is visible or shown it will hide.&#xD;If it is not visible or hidden it will show.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportShown"></block><script><block s="hide"></block></script><script><block s="show"></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;pt:lança _ _&#xD;</translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script><list></list></block></script></block-definition><block-definition s="Hold %&apos;x&apos;" type="command" category="control"><comment x="0" y="0" w="206.66666666666666" collapsed="false">This block does nothing.&#xD;Use it when you are calling a reporter&#xD;for its side effect and don&apos;t care about&#xD;its return value.</comment><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;pt:ignora _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="210.47493489583334" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="151.33333333333334" collapsed="false">Returns the function x↦f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="202.66666666666666" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="287.3333333333333" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="264" collapsed="false">Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="247.33333333333334" collapsed="false">The primitive FOR block uses an implicit step of ±1 depending on which of the starting and ending values is larger.  This version allows you to provide an explicit step value.  If the sign of the step input is incompatible with the ordering of the starting and ending values, the script will not be run at all.</comment><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="step"/><l>0</l></list></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="set flag %&apos;which&apos; to %&apos;tf&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for Boolean (checkbox) settings; use&#xD;SET VALUE for numeric or text values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;</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;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support&#xD;Hyper blocks 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;        thisObj = this;&#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;        if (thisObj.scripts.focus &amp;&amp; !tf) {&#xD;            thisObj.scripts.focus.stopEditing();&#xD;        } else if (tf &amp;&amp; !thisObj.scripts.focus) {&#xD;            thisObj.scripts.toggleKeyboardEntry();&#xD;        };&#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;    case &apos;Hyper blocks support&apos;:&#xD;        Process.prototype.enableHyperOps = tf;&#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="set value %&apos;which&apos; to %&apos;value&apos;" type="command" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows changing global settings programmatically.&#xD;This block is for numeric or text settings; use&#xD;SET FLAG for Boolean (checkbox) values.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:altera o valor da configuração _ para _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#xD;Visible palette</options></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>value</l></list><l>var   stage = this.parentThatIsA(StageMorph),&#xD;        ide = stage.parentThatIsA(IDE_Morph),&#xD;        world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;try {&#xD;ide.savingPreferences = false;&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        ide.projectNotes = value;&#xD;        break;&#xD;    case &apos;Project name&apos;:&#xD;        ide.setProjectName(value);&#xD;        break;&#xD;    case &apos;Language&apos;:&#xD;        ide.setLanguage(value);&#xD;        break;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        if (!isNaN(value)) ide.setBlocksScale(Math.min(value, 12));&#xD;        break;&#xD;    case &apos;Stage size&apos;:&#xD;        if ((value instanceof List) &amp;&amp; value.length()==2&#xD;                       &amp;&amp; !isNaN(value.at(1)) &amp;&amp; !isNaN(value.at(2)))&#xD;            ide.setStageExtent(new Point(value.at(1), value.at(2)));&#xD;        break;&#xD;    case &apos;Stage scale&apos;:&#xD;        ide.toggleStageSize(value != 1, Math.max(0.1, value));&#xD;        break;&#xD;    case &apos;Visible palette&apos;:&#xD;        ide.currentCategory = value.toLowerCase();&#xD;        ide.categories.children.forEach(function (each) {&#xD;                each.refresh();&#xD;        });&#xD;        ide.refreshPalette(true);&#xD;        break;&#xD;};&#xD;}&#xD;finally {ide.savingPreferences = true;&#xD;};</l></block><list><block var="which"/><block var="value"/></list></block></script></block-definition><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos;" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _&#xD;ca:digues _ amb accent _ _ to _ i velocitat _&#xD;pl:powiedz _ z akcentem _ _ wysokość _ szybkość _&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></script></block-definition><block-definition s="speak %&apos;text&apos; with %&apos;lang&apos; accent $nl and pitch %&apos;pitch&apos; rate %&apos;rate&apos; and wait" type="command" category="sound"><header></header><code></code><translations>de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _ und warte&#xD;pt:fala _ na língua _ _ com tom _ e velocidade _ , e espera&#xD;ca:digues _ amb accent _ _ to _ velocitat _ i espera&#xD;pl:powiedz _ z akcentem _ _ wysokość _ szybkość _ i czekaj&#xD;</translations><inputs><input type="%s">Hello, World!</input><input type="%txt">en-US<options>العربية=ar&#xD;Български=bg&#xD;বাংলা=bn&#xD;Català=ca&#xD;Català - Valencià=ca-VA&#xD;Česky=cs&#xD;Deutsch=de&#xD;Dansk=dk&#xD;Ελληνικά=el&#xD;English-American=en-US&#xD;English-British=en-GB&#xD;Esperanto=eo&#xD;Español=es&#xD;Eesti=et&#xD;Euskara=eu&#xD;suomi=fi&#xD;Français=fr&#xD;Galego=gl&#xD;Hrvatski=hr&#xD;Magyar=hu&#xD;Interlingua=ia&#xD;Bahasa Indonesia=id&#xD;Italiano=it&#xD;日本語=ja&#xD;にほんご=ja-HIRA&#xD;ಕನ್ನಡ=kn&#xD;한국어=ko&#xD;Malayalam=ml&#xD;Nederlands=nl&#xD;Norsk=no&#xD;Polski=pl&#xD;Português=pt&#xD;Português do Brasil=pt-BR&#xD;Român=ro&#xD;Русский=ru&#xD;Slovenščina=si&#xD;svenska=sv&#xD;Tamil=ta&#xD;Telagu=te&#xD;Türkçe=tr&#xD;Українська=ua&#xD;简体中文=zh-CN&#xD;繁體中文=zh-TW</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>tts_speak(txt, lang, pitch, rate)</l><list><block var="text"/><block var="lang"/><block var="pitch"/><block var="rate"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition><block-definition s="$camera snap" type="reporter" category="sensing"><comment x="0" y="0" w="216" collapsed="false">takes a snapshot with the webcam and reports it as a new costume, or zero if the user cancels</comment><header></header><code></code><translations>pt:$camera a imagem actual do vídeo&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>test</l><l>pic</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var camDialog,&#xD;    result = false;&#xD;&#xD;camDialog = new CamSnapshotDialogMorph(&#xD;    this.parentThatIsA(IDE_Morph),&#xD;    this,&#xD;    function () {result = null; },&#xD;    function (costume) {&#xD;        result = costume;&#xD;        this.close();&#xD;    }&#xD;);&#xD;&#xD;camDialog.key = &apos;camera&apos;;&#xD;camDialog.popUp(this.world());&#xD;return function () {return result; };</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>pic</l><block s="evaluate"><block var="test"/><list></list></block></block><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block var="pic"/></block></script></block-definition><block-definition s="turbo %&apos;action&apos;" type="command" category="other"><header></header><code></code><translations>pt:executa no modo turbo _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>begin</l></list></block><block s="doSetVar"><l>begin</l><block s="reportGlobalFlag"><l><option>turbo mode</option></l></block></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><l><bool>true</bool></l></block><block s="doRun"><block var="action"/><list></list></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><block var="begin"/></block></script></block-definition><block-definition s="%&apos;frequency&apos; Hz for %&apos;duration&apos; secs at %&apos;sample rate&apos; Hz sample rate" type="reporter" category="sound"><comment x="0" y="0" w="205" collapsed="false">generate a list of samples representing a sine wave at the given frequency, duration and sample rate</comment><header></header><code></code><translations>pt:as amostras de som com _ Hz de _ s amostrado a _ Hz&#xD;</translations><inputs><input type="%n">440<options>a 55=55&#xD;a 110=110&#xD;a 220=220&#xD;a 440=440&#xD;a 880=880&#xD;a 1760=1760&#xD;a 3520=3520</options></input><input type="%n">1</input><input type="%n">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doDeclareVariables"><list><l>output</l><l>sample period</l><l>duration in samples</l><l>time</l></list></block><block s="doSetVar"><l>sample period</l><block s="reportQuotient"><l>1</l><block var="sample rate"/></block></block><block s="doSetVar"><l>duration in samples</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportVariadicProduct"><list><block var="duration"/><block var="sample rate"/></list></block></block></block><block s="doSetVar"><l>time</l><l>0</l></block><block s="doSetVar"><l>output</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doRepeat"><block var="duration in samples"/><script><block s="doAddToList"><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><custom-block s="PI"></custom-block><block s="reportVariadicProduct"><list><block var="frequency"/><block var="time"/></list></block></list></block></list></block></custom-block></block><block var="output"/></block><block s="doChangeVar"><l>time</l><block var="sample period"/></block></script></block></script></block><block s="doReport"><block var="output"/></block></script></block-definition><block-definition s="🥧" type="reporter" category="Operators2"><header></header><code></code><translations>pt:π&#xD;</translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="radians %&apos;$arrowRight&apos; degrees %&apos;Num&apos;" type="reporter" category="Operators2"><header></header><code></code><translations>pt:_ radianos em graus&#xD;ca:graus de _ radiants&#xD;</translations><inputs><input type="%s" readonly="true"><options>-&gt;&#xD;&lt;-</options></input><input type="%n">0.5</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="$arrowRight"/><l>-&gt;</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="Num"/><l>180</l></list></block><custom-block s="🥧"></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="$arrowRight"/><l>&lt;-</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="Num"/><custom-block s="🥧"></custom-block></list></block><l>180</l></block></block></script><list></list></block></script></block-definition><block-definition s="sound named %&apos;name&apos;" type="reporter" category="sensing"><header></header><code></code><translations>pt:o som _&#xD;</translations><inputs><input type="%s"><options>§_soundsMenu</options></input></inputs><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetSoundAttribute"><l><option>name</option></l><l></l></block><block var="name"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>sounds</option></l></block></block></block></script></block-definition><block-definition s="plot sound %&apos;name&apos;" type="command" category="pen"><comment x="0" y="0" w="164" collapsed="false">quickly plot the samples of a sound, a list of samples (single channel), or a list of lists (multiple channels) to the stage at a lower resolution.</comment><header></header><code></code><translations>pt:desenha o gráfico do som _&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_soundsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>samples</l><l>step</l><l>offset</l><l>i</l><l>sound</l></list></block><block s="doSetVar"><l>sound</l><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="name"/><l><option>list</option></l></block><block s="reportIsA"><block var="name"/><l><option>sound</option></l></block></list></block><block var="name"/><custom-block s="sound named %s"><block var="name"/></custom-block></block></block><block s="doIfElse"><block s="reportIsA"><block var="sound"/><l><option>sound</option></l></block><script><block s="doSetVar"><l>samples</l><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="sound"/></block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportGetSoundAttribute"><l><option>length</option></l><block var="sound"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>2</l></list></block></block></block></script><script><block s="doSetVar"><l>samples</l><block var="sound"/></block></script></block><block s="clear"></block><block s="up"></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="samples"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="samples"/></block></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>2</l></list></block></block></block><block s="doSetVar"><l>offset</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>4</l></block></block><block s="doForEach"><l>channel</l><block var="samples"/><script><block s="doSetVar"><l>i</l><l>0</l></block><block s="gotoXY"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>-2</l></block><block var="offset"/></block><block s="down"></block><block s="setSize"><l>1</l></block><custom-block s="turbo %cs"><script><block s="doRepeat"><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>2</l></list></block><script><block s="doChangeVar"><l>i</l><block var="step"/></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><l>0.5</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportMonadic"><l><option>floor</option></l><block var="i"/></block><block var="channel"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>6.4</l></block></list></block><block var="offset"/></list></block></block></script></block></script></custom-block><block s="up"></block><block s="doChangeVar"><l>offset</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>-2</l></block></block></script></block></script><script><block s="doSetVar"><l>step</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="samples"/></block><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>2</l></list></block></block></block><block s="gotoXY"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>-2</l></block><l>0</l></block><block s="down"></block><block s="setSize"><l>1</l></block><custom-block s="turbo %cs"><script><block s="doRepeat"><block s="reportVariadicProduct"><list><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><l>2</l></list></block><script><block s="doChangeVar"><l>i</l><block var="step"/></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><l>0.5</l></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportMonadic"><l><option>floor</option></l><block var="i"/></block><block var="samples"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>3.2</l></block></list></block></block></script></block></script></custom-block><block s="up"></block></script></block></script></block-definition><block-definition s="$circleSolid-1-255-0-0 record" type="reporter" category="sensing"><comment x="0" y="0" w="192" collapsed="false">records an audio snippet and reports it as a new sound, or zero if the user cancels</comment><header></header><code></code><translations>pt:$circleSolid-1-255-0-0 uma nova gravação&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>test</l><l>pic</l></list></block><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var soundRecorder,&#xD;    result = false;&#xD;&#xD;soundRecorder = new SoundRecorderDialogMorph(&#xD;    function (audio) {&#xD;        if (audio) {&#xD;            result = new Sound(audio, &apos;recording&apos;);&#xD;        } else {&#xD;            result = null;&#xD;            this.destroy();&#xD;        }&#xD;    }&#xD;);&#xD;&#xD;soundRecorder.cancel = function () {&#xD;    result = null;&#xD;    this.destroy();&#xD;};&#xD;&#xD;soundRecorder.key = &apos;microphone&apos;;&#xD;soundRecorder.popUp(this.world());&#xD;return function () {return result; };</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reifyScript"><script><block s="doSetVar"><l>pic</l><block s="evaluate"><block var="test"/><list></list></block></block><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="pic"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></block></script><list></list></block><list></list></block></block><block s="doReport"><block var="pic"/></block></script></block-definition><block-definition s="note from %&apos;pitch&apos; hz" type="reporter" category="sound"><header></header><code></code><translations>pt:a nota com _ Hz&#xD;</translations><inputs><input type="%n">440</input></inputs><script><block s="doReport"><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>12</l><block s="reportQuotient"><block s="reportMonadic"><l><option>log</option></l><block s="reportQuotient"><block var="pitch"/><l>440</l></block></block><block s="reportMonadic"><l><option>log</option></l><l>2</l></block></block></list></block><l>69</l></list></block></block></block></script></block-definition><block-definition s="hz from note %&apos;note&apos;" type="reporter" category="sound"><header></header><code></code><translations>pt:a frequência da nota _&#xD;</translations><inputs><input type="%n">69</input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><l>440</l><block s="reportPower"><l>2</l><block s="reportQuotient"><block s="reportDifference"><block var="note"/><l>69</l></block><l>12</l></block></block></list></block></block></script></block-definition><block-definition s="name of note %&apos;note&apos;" type="reporter" category="sound"><header></header><code></code><translations>pt:o nome da nota _&#xD;</translations><inputs><input type="%n">69</input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block var="note"/><l>69</l></block><l>12</l></block><l>1</l></list></block><block s="reportNewList"><list><l>A</l><l>Bb</l><l>B</l><l>C</l><l>C#</l><l>D</l><l>D#</l><l>E</l><l>F</l><l>F#</l><l>G</l><l>G#</l></list></block></block></block></script></block-definition><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos;" type="command" category="Database"><comment x="0" y="0" w="204" collapsed="false">The data base vars are extremely important for moving variables and other values from scene to scene.&#xD;&#xD;The key acts like the name of the variable.&#xD;Original blocks are from the library under database. All database vars are stored in the browser not cloud.</comment><header></header><code></code><translations>ca:desa clau: _ amb valor: _ al navegador&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data" type="reporter" category="Database"><comment x="0" y="0" w="204" collapsed="false">The data base vars are extremely important for moving variables and other values from scene to scene.&#xD;&#xD;Reports all saved vars in database.&#xD;Original blocks are from the library under database.&#xD;All database vars are stored in the browser not cloud.</comment><header></header><code></code><translations>ca:dades desades al navegador&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_getall</l><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos;" type="command" category="Database"><comment x="0" y="0" w="204" collapsed="false">The data base vars are extremely important for moving variables and other values from scene to scene.&#xD;&#xD;The key acts like the name of the variable. Removes that variable.&#xD;Original blocks are from the library under database. All database vars are stored in the browser not cloud.</comment><header></header><code></code><translations>ca:esborra clau: _ del navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_remove(key)</l><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data" type="command" category="Database"><comment x="0" y="0" w="204" collapsed="false">The data base vars are extremely important for moving variables and other values from scene to scene.&#xD;&#xD;Clears all vars saved in database.&#xD;Original blocks are from the library under database. All database vars are stored in the browser not cloud.</comment><header></header><code></code><translations>ca:esborra dades del navegador&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data"></custom-block><script><custom-block s="remove key: %s"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="value from key: %&apos;key&apos;" type="reporter" category="Database"><comment x="0" y="0" w="204" collapsed="false">The data base vars are extremely important for moving variables and other values from scene to scene.&#xD;&#xD;The key acts like the name of the variable. Reports the database var with the key name. Reports false if key is not found.&#xD;Original blocks are from the library under database. All database vars are stored in the browser not cloud.</comment><header></header><code></code><translations>ca:obté valor de clau: _ al navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_get(key)</l><list><block var="key"/></list></block></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations>pt:a palavra _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="empty word? %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><l>0</l></list></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.</comment><header></header><code></code><translations>pt:a frase _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListIsEmpty"><block var="sentence"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><l></l><l> </l></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="sentence"/><l><option>letter</option></l></block></block><block s="reifyReporter"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportJoinWords"><list><l> </l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></autolambda><list></list></block><list></list></block></list></block></list></block></block></script></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><custom-block s="join words %mult%txt"><list><l></l><l></l></list></custom-block></autolambda><list></list></block><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="158.57142857142858" collapsed="false">join all the items of the input list&#xD;into a single word, and report it</comment><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;pt:uma palavra com os caracteres em _&#xD;pl:lista $arrowRight słowo _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><block var="list"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="list"/></block><l></l></list></block><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportNewList"><list><custom-block s="list $arrowRight word %l"><l/></custom-block></list></block><l></l></block></autolambda><list></list></block><block var="list"/></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="require nonempty %&apos;text&apos; %&apos;message&apos;" type="reporter" category="operators"><comment x="0" y="0" w="220" collapsed="false">Helper function for word/sentence library.&#xD;Reports its first input, unless that input is empty, in which case it gives its second input as an error message.</comment><header></header><code></code><translations>es:requerir no vacío _ _&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportListIsEmpty"><block var="text"/></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></list></block></block><script><custom-block s="error %txt"><block var="message"/></custom-block></script><script><block s="doReport"><block var="text"/></block></script></block></script></block-definition><block-definition s="first letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the first character in the string.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;ca:primera lletra de _&#xD;es:primera letra de _&#xD;pl:pierwsza litera _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><script><block s="doReport"><block s="reportLetter"><l>1</l><custom-block s="require nonempty %s %s"><block var="word"/><l>First of empty word.</l></custom-block></block></block></script></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sub</l><l>sup</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    return 1+sup.toLocaleLowerCase().indexOf(sub.toLocaleLowerCase());&#xD;} else {&#xD;    return 1+sup.indexOf(sub);&#xD;}</l></block><list><block var="small"/><block var="large"/></list></block></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>str</l><l>start</l><l>end</l></list><l>if (end != "") {&#xD;    return str.slice(start-1,end);&#xD;} else {&#xD;    return str.slice(start-1);&#xD;}</l></block><list><block var="str"/><block var="start"/><block var="end"/></list></block></block></script></block-definition><block-definition s="to lower case %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="275.3333333333333" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return text.toLocaleLowerCase();</l></block><list><block var="text"/></list></block></block></script></block-definition><block-definition s="use case-independent comparison" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>_case indepent</l></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="reshape as %&apos;shape&apos; $⍴-1-255-255-0 items of %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="180" collapsed="false">The first input is a shape list as in&#xD;SHAPE OF.  The output is an array with those dimensions containing  the atomic items of the second input,&#xD;repeating values if more are needed.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="reshape helper %l %l"><block var="shape"/><custom-block s="flatten (ravel) $,-1-255-255-0 %l"><block var="data"/></custom-block></custom-block></block></script></block-definition><block-definition s="largest %&apos;a&apos; $⌈-1-255-255-0 %&apos;b&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="150.66666666666666" collapsed="false">Reports the greater of its two inputs. Works on strings too.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicMax"><list><block var="a"/><block var="b"/></list></block></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"><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><list></list></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"><autolambda><custom-block s="generalized dotproduct %l %l with sum %repRing product %repRing"><block s="reportListItem"><l>1</l><block var="a"/></block><l/><block var="plus"/><block var="times"/></custom-block></autolambda><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><list></list></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="transpose $⍉-1.5-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="168" collapsed="false">Takes a multidimensional array, and&#xD;reports an array whose dimensions&#xD;are reversed (as reported by&#xD;SHAPE OF).  In the case of a&#xD;two-dimensional array, does the usual transposition of rows and columns.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></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 var="array"/></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="array"/></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list></list></block></list></block></block></script><list></list><comment w="290.6666666666667" collapsed="true">If there are no atomic data, we don&apos;t have any shape information, so we can&apos;t really transpose it.  But an empty list is 0 rows of some number of columns, so the transpose should be 0 columns in some number of rows.  We arbitrarily make it 0 columns of one row.  This at least has one dimension of the shape correct.</comment></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="array"/></block><l><option>list</option></l></block></block><script><block s="doReport"><block var="array"/></block></script><list></list><comment w="274.6666666666667" collapsed="true">The transpose of a vector is just the vector itself.</comment></block><block s="doIf"><block s="reportListIsEmpty"><block s="reportListItem"><l>1</l><block var="array"/></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list><comment w="274.6666666666667" collapsed="true">This is the opposite no-atomic-data situation from above.  We know that there are (length array) rows of 0 columns, so the transpose is 0 rows, i.e., an empty list.  But we lose the number of original rows, transpose columns.</comment></block><block s="doReport"><custom-block s="deep map %repRing %predRing %l"><block s="reifyReporter"><autolambda><custom-block s="nth item 1 %n %l"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="array"/></custom-block></block><block s="reportListItem"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l></list></block></autolambda><list></list></block><block var="atom"/></block><block var="array"/></block></custom-block></autolambda><list><l>atom</l></list></block><block s="reifyPredicate"><autolambda><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNot"><block s="reportIsA"><l></l><l><option>list</option></l></block></block></autolambda><list></list></block><block var="node"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block></block></autolambda><list><l>node</l></list></block><custom-block s="$⍳-1.5-255-255-0 %n"><custom-block s="reverse row order (column contents) $⦵-1.5-255-255-0 %l"><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="array"/></custom-block></custom-block></custom-block></custom-block></block></script><scripts><script x="690.0310872395834" y="485.55555555555566"><block var="array"/></script><script x="544.6666666666666" y="306.1111111111114"><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="array"/></block></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l></list></block></autolambda><list></list></block><block s="reportListItem"><l>1</l><block var="array"/></block></block></block></script><list></list><comment w="212.66666666666666" collapsed="true">This is one row, n columns.  So the transpose is n rows, one column.</comment></block></script></scripts></block-definition><block-definition s="reverse row order (column contents) $⦵-1.5-255-255-0 %&apos;list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="286" collapsed="false">Reverses the order of the (toplevel) items of the input.&#xD;&#xD;If the input is a matrix, this means it reverses the order of the rows, which is a reflection through a horizontal axis, as the ⦵ symbol suggests.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="list"/></block></autolambda><list></list></block><block s="reportNumbers"><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>1</l></block></block></block></script></block-definition><block-definition s="generalized dotproduct %&apos;a&apos; %&apos;b&apos; with sum %&apos;sum&apos; product %&apos;product&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportCombine"><custom-block s="multimap %repRing %mult%l"><block var="product"/><list><block var="a"/><block var="b"/></list></custom-block><block var="sum"/></block></block></script></block-definition><block-definition s="inner product %&apos;a&apos; %&apos;plus&apos; $.-1-255-255-0 %&apos;times&apos; %&apos;b&apos;" type="reporter" category="lists"><comment x="0" y="0" w="252.66666666666666" collapsed="false">Computes a generalized matrix multiplication.&#xD;&#xD;In normal matrix multiplication, each cell of the result&#xD;is computed by multiplying individual numbers within&#xD;a row of the left input and a column of the right input,&#xD;and then adding those products.  In APL terms this is&#xD;+.× (&quot;plus dot times&quot;)&#xD;Any dyadic functions can replace addition and multiplication in this algorithm; a common case is&#xD;∨.∧ (&quot;or dot and&quot;)</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%repRing"></input><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="a"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list><block var="a"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>b</l><block s="reportNewList"><list><block var="b"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="a"/></custom-block></block><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="b"/></custom-block></block><l>1</l></list></block></list></block><script><block s="doDeclareVariables"><list><l>ta</l></list></block><block s="doSetVar"><l>ta</l><custom-block s="transpose $⍉-1.5-255-255-0 %l"><block var="a"/></custom-block></block><block s="doSetVar"><l>a</l><custom-block s="transpose $⍉-1.5-255-255-0 %l"><block s="reportMap"><block s="reifyReporter"><autolambda><block var="ta"/></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block s="reportListItem"><l>1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="b"/></custom-block></block></block></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l><option>last</option></l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="a"/></custom-block></block><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="b"/></custom-block></block><l>1</l></list></block></list></block><script><block s="doSetVar"><l>b</l><block s="reportMap"><block s="reifyReporter"><autolambda><block var="b"/></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block s="reportListItem"><l><option>last</option></l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="a"/></custom-block></block></block></block></block></script><list></list></block><block s="doReport"><custom-block s="inner product helper with %repRing . %repRing %l transposed %l"><block var="plus"/><block var="times"/><block var="a"/><custom-block s="transpose $⍉-1.5-255-255-0 %l"><block var="b"/></custom-block></custom-block></block></script></block-definition><block-definition s="smallest %&apos;a&apos; $⌊-1.2-255-255-0 %&apos;b&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="211.33333333333337" collapsed="true">Reports the smaller of its two inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicMin"><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;howmany&apos; deal helper %&apos;data&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="howmany"/><l>0</l></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>choice</l></list></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block var="data"/></block></block><block s="doReport"><block s="reportCONS"><block var="choice"/><custom-block s="%n deal helper %l"><block s="reportDifference"><block var="howmany"/><l>1</l></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><l></l><block var="choice"/></list></block></block></autolambda><list></list></block><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="sign $×-1-255-255-0 %&apos;num&apos;" type="reporter" category="Operators2"><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="sign $×-1-255-255-0 %n"><l></l></custom-block></autolambda><list></list></block><block var="num"/></block></block></script><list></list></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><list></list></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="%&apos;a&apos; ≤ %&apos;b&apos;" type="predicate" category="operators"><comment x="0" y="0" w="151.33333333333334" collapsed="false">Reports True if the left input is&#xD;less than or equal to the right input.&#xD;&#xD;Reports a Snap! Boolean, not an integer 0 or 1.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="truth %s"><custom-block s="NOT $&#126;-1-255-255-0 %s"><block s="reportVariadicGreaterThan"><list><block var="a"/><block var="b"/></list></block></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;a&apos; ≥ %&apos;b&apos;" type="predicate" category="operators"><comment x="0" y="0" w="152.66666666666666" collapsed="false">Reports True if the left input is&#xD;greater than than or equal to&#xD;the right input.&#xD;&#xD;Reports a Snap! Boolean, not an integer 0 or 1.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="truth %s"><custom-block s="NOT $&#126;-1-255-255-0 %s"><block s="reportVariadicLessThan"><list><block var="a"/><block var="b"/></list></block></custom-block></custom-block></block></script></block-definition><block-definition s="XOR %&apos;a&apos; $≠-1-255-255-0 %&apos;b&apos;" type="predicate" category="operators"><comment x="0" y="0" w="190" collapsed="false">Reports 0 if its inputs are equal;&#xD;reports 1 if its inputs are not equal.&#xD;The inputs can have any non-list values.&#xD;(Lists are hyperized.)  If the inputs are&#xD;Booleans (True/False or 1/0), this is&#xD;also the exclusive-or function.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s scalar %s %s"><block var="a"/><l>≠</l><block var="b"/></custom-block></block></script></block-definition><block-definition s="zero? %&apos;n&apos;" type="predicate" category="other"><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"><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="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="n"/><l><option>Boolean</option></l></block><block var="n"/><block s="reportNot"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block></block></block></block></script></block-definition><block-definition s="make scalar %&apos;value&apos;" type="reporter" category="operators"><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><list></list></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="$⍳-1.5-255-255-0 %&apos;n&apos;" type="reporter" category="lists"><comment x="0" y="0" w="290.6666666666667" collapsed="false">If the input is a positive integer, reports a list of the numbers&#xD;from 1 to that input.  (If the input is 0, reports an empty list.)&#xD;&#xD;If the input is a list of positive integers, reports an array with&#xD;the shape specified by the input (as in ⍴ reshape) in which&#xD;each item is a list of the indices of that item in the array&#xD;(so technically the shape has one more dimension&#xD;than the input, whose size is the size of the input).</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="n"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="n"/></custom-block><l>1</l></list></block><script><block s="doIfElse"><custom-block s="zero? %n"><custom-block s="combine in rows (reduce by column vectors) %repRing $/-1-255-255-0 %l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="n"/></custom-block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><custom-block s="reshape helper %l %l"><block var="n"/><custom-block s="crossproduct %mult%l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="$⍳-1.5-255-255-0 %n"><l></l></custom-block></autolambda><list></list></block><block var="n"/></block></custom-block></custom-block></block></script></block></script><script><custom-block s="error %txt"><l>Input to ⍳ can&apos;t be a list of lists.</l></custom-block></script></block></script><script><block s="doReport"><block s="reportIfElse"><custom-block s="zero? %n"><block var="n"/></custom-block><block s="reportNewList"><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></block></block></script></block></script></block-definition><block-definition s="where in %&apos;vector&apos; is $⍳-1.5-255-255-0 %&apos;items&apos;" type="reporter" category="lists"><comment x="0" y="0" w="334.6666666666667" collapsed="false">If the rank of the left input is one more than the rank of the right input,&#xD;reports the index of the right input in the left input, or if not found,&#xD;reports one more than the length of the left input.&#xD;&#xD;If the rank of the left input is equal to the rank of the right input,&#xD;reports a vector of the indices of the items of the right input&#xD;in the left input (mapping this function over the right input).&#xD;&#xD;If the rank of the left input is more than that of the right input by 2 or more,&#xD;reports a vector, the location of the right input in the left in each dimension.&#xD;&#xD;It is an error if the rank of the left input is less than that of the right input.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="vector"/></custom-block><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="items"/></custom-block></list></block><script><custom-block s="error %txt"><l>Left input to ⍳ must have greater or equal rank to right input.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="vector"/></custom-block><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="items"/></custom-block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="where in %l is $⍳-1.5-255-255-0 %s"><block var="vector"/><l></l></custom-block></autolambda><list></list></block><block var="items"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="vector"/></custom-block><block s="reportVariadicSum"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="items"/></custom-block><l>1</l></list></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportListIndex"><block var="items"/><block var="vector"/></block></block><block s="doReport"><block s="reportIfElse"><custom-block s="zero? %n"><block var="result"/></custom-block><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="vector"/></block><l>1</l></list></block><block var="result"/></block></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><custom-block s="%l deep contains %s"><l/><block var="items"/></custom-block></autolambda><list></list></block><block var="vector"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="result"/><l></l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="vector"/></custom-block><l>1</l></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportListIndex"><block var="result"/><block var="vector"/></block><custom-block s="flatten (ravel) $,-1-255-255-0 %l"><custom-block s="where in %l is $⍳-1.5-255-255-0 %s"><block var="result"/><block var="items"/></custom-block></custom-block></block></block></script></block-definition><block-definition s="crossproduct %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="305.3333333333333" collapsed="false">This isn&apos;t an APL function, although it&apos;s related to the outer product.&#xD;&#xD;It takes any number of lists, and reports a list of all possible tuples with one item from each of the lists.  The length of the result is the product of the lengths of the inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="lists"/></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list></list></block></list></block></block></script><script><block s="doDeclareVariables"><list><l>small</l></list></block><block s="doSetVar"><l>small</l><custom-block s="crossproduct %mult%l"><block s="reportCDR"><block var="lists"/></block></custom-block></block><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCONS"><block var="newitem"/><l/></block></autolambda><list></list></block><block var="small"/></block></autolambda><list><l>newitem</l></list></block><block s="reportListItem"><l>1</l><block var="lists"/></block></block></block></block></script></block></script></block-definition><block-definition s="%&apos;array&apos; deep contains %&apos;value&apos;" type="reporter" category="other"><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><list></list></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><list></list></block><block s="doReport"><custom-block s="combine in rows (reduce by column vectors) %repRing $/-1-255-255-0 %l"><block s="reifyReporter"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%l deep contains %s"><l/><block var="value"/></custom-block></autolambda><list></list></block><block var="array"/></block></custom-block></block></script></block-definition><block-definition s="which of %&apos;items&apos; $ϵ-1-255-255-0 contained in %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="214.66666666666666" collapsed="false">Reports an array of Booleans the same shape&#xD;as the left input, indicating which of the atoms&#xD;in the left input appear anywhere in the right&#xD;input.  &#xD;(The structure of the right input doesn&apos;t matter.)</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="items"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="which of %s $ϵ-1-255-255-0 contained in %l"><l></l><block var="array"/></custom-block></autolambda><list></list></block><block var="items"/></block></block></script><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="flatten (ravel) $,-1-255-255-0 %l"><block var="array"/></custom-block><block var="items"/></block></block></script></block></script></block-definition><block-definition s="catenate %&apos;left&apos; $,-1-255-255-0 %&apos;right&apos;" type="reporter" category="lists"><comment x="0" y="0" w="190.66666666666666" collapsed="false">Like append, but:&#xD;&#xD;A scalar input is treated as an array the same shape as the other input except that the last item of the shape is 1.&#xD;&#xD;If the two inputs are of different ranks,&#xD;the function is mapped over the larger ranked input.&#xD;&#xD;Catenate adds new columns, by appending to each row.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="left"/><l><option>list</option></l></block></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="right"/></custom-block><l>1</l></list></block><script><block s="doSetVar"><l>left</l><custom-block s="reshape as %l $⍴-1-255-255-0 items of %l"><block s="reportConcatenatedLists"><list><custom-block s="drop %n $↓-1-255-255-0 from %l"><l>-1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="right"/></custom-block></custom-block><block s="reportNewList"><list><l>1</l></list></block></list></block><block s="reportNewList"><list><block var="left"/></list></block></custom-block></block></script><script><block s="doSetVar"><l>left</l><block s="reportNewList"><list><block var="left"/></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="right"/><l><option>list</option></l></block></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><l>1</l></list></block><script><block s="doSetVar"><l>right</l><custom-block s="reshape as %l $⍴-1-255-255-0 items of %l"><block s="reportConcatenatedLists"><list><custom-block s="drop %n $↓-1-255-255-0 from %l"><l>-1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="left"/></custom-block></custom-block><block s="reportNewList"><list><l>1</l></list></block></list></block><block s="reportNewList"><list><block var="right"/></list></block></custom-block></block></script><script><block s="doSetVar"><l>right</l><block s="reportNewList"><list><block var="right"/></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="right"/></custom-block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><l>1</l></list></block><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="left"/><block var="right"/></list></block></block></script><script><block s="doReport"><custom-block s="multimap %repRing %mult%l"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><l></l><l></l></custom-block></autolambda><list></list></block><list><block var="left"/><block var="right"/></list></custom-block></block></script></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="right"/></custom-block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><block var="left"/><l></l></custom-block></autolambda><list></list></block><block var="right"/></block></block></script><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><l></l><block var="right"/></custom-block></autolambda><list></list></block><block var="left"/></block></block></script></block></script></block-definition><block-definition s="scalar value %&apos;value&apos;" type="reporter" category="lists"><comment x="0" y="0" w="221.33333333333334" collapsed="false">If the input is a nesting of length=1 lists, which&#xD;APL treats as a scalar (the innermost item)&#xD;for many purposes, report that innermost scalar.&#xD;Otherwise, report the input as is.&#xD;&#xD;Exposing this block for users is important because Snap! /does not/ treat such a nesting&#xD;as a scalar, so you might need to use this in&#xD;translating an APL program to Snap!.&#xD;(But the functions in the APL library already use&#xD;this block as needed.)</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="scalar? %s"><block var="value"/></custom-block><custom-block s="scalar-value helper %s"><block var="value"/></custom-block><block var="value"/></block></block></script></block-definition><block-definition s="grade up $⍋-1.5-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="190.66666666666666" collapsed="false">Reports a vector of indices of the items of the input, in order of the values of the items, so that&#xD;&#xD;item (grade up (foo)) of (foo)&#xD;&#xD;reports the items in sorted order, smallest to largest.  For a matrix, sorts the rows based on their first items, or if those are equal, based on their second items, etc.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l><option>last</option></l><l/></block></autolambda><list></list></block><custom-block s="sort %l ordering with %predRing"><custom-block s="multimap %repRing %mult%l"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><l></l><l></l></custom-block></autolambda><list></list></block><list><block var="array"/><custom-block s="$⍳-1.5-255-255-0 %n"><block s="reportListAttribute"><l><option>length</option></l><block var="array"/></block></custom-block></list></custom-block><block s="reifyPredicate"><autolambda><custom-block s="sort helper %l %l"><l/><l/></custom-block></autolambda><list></list></block></custom-block></block></block></script></block-definition><block-definition s="sort helper %&apos;rowA&apos; %&apos;rowB&apos;" type="reporter" category="other"><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><list></list></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><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="rowA"/></block><block s="reportListItem"><l>1</l><block var="rowB"/></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block var="rowA"/></block><block s="reportListItem"><l>1</l><block var="rowB"/></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></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="grade down $⍒-1.5-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="190.66666666666666" collapsed="false">Reports a vector of indices of the items of the input, in order of the values of the items, so that&#xD;&#xD;item (grade down (foo)) of (foo)&#xD;&#xD;reports the items in sorted order, largest to smallest.  For a matrix, sorts the rows based on their first items, or if those are equal, based on their second items, etc.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l><option>last</option></l><l/></block></autolambda><list></list></block><custom-block s="sort %l ordering with %predRing"><custom-block s="multimap %repRing %mult%l"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><l></l><l></l></custom-block></autolambda><list></list></block><list><block var="array"/><custom-block s="$⍳-1.5-255-255-0 %n"><block s="reportListAttribute"><l><option>length</option></l><block var="array"/></block></custom-block></list></custom-block><block s="reifyPredicate"><autolambda><custom-block s="NOT $&#126;-1-255-255-0 %s"><custom-block s="sort helper %l %l"><l/><l/></custom-block></custom-block></autolambda><list></list></block></custom-block></block></block></script></block-definition><block-definition s="select rows (compress columns) %&apos;Booleans&apos; $/-1-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="210.66666666666666" collapsed="false">The left input must be a vector of Booleans&#xD;(either Snap! form or APL form); the right input must be an array whose first dimension is equal to the length of the left input.  The block reports an array of the same rank as the right input, containing only those items (rows, for a matrix) for which the corresponding Boolean is True (or 1).</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="rowize vector %l"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="truth %s"><block s="reportListItem"><l>1</l><l/></block></custom-block></autolambda><list></list></block><custom-block s="multimap %repRing %mult%l"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><l></l><l></l></custom-block></autolambda><list></list></block><list><block var="Booleans"/><block var="array"/></list></custom-block></block></block></custom-block></block></script></block-definition><block-definition s="rowize vector %&apos;vec&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="vec"/></custom-block><l>2</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="vec"/></custom-block></block><l>1</l></list></block></list></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="select columns (compress rows) %&apos;bool&apos; $⌿-1.5-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="219.33333333333334" collapsed="false">The left input must be a vector of Booleans&#xD;(either Snap! form or APL form); the right input must be an array whose last dimension is equal to the length of the left input.  The block reports an array of the same rank as the right input, containing only those items (columns, for a matrix) for which the corresponding Boolean is True (or 1).</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="columnwise %repRing %l"><block s="reifyReporter"><autolambda><custom-block s="select rows (compress columns) %l $/-1-255-255-0 %l"><block var="bool"/><l/></custom-block></autolambda><list></list></block><block var="array"/></custom-block></block></script></block-definition><block-definition s="columnwise %&apos;function&apos; %&apos;data&apos;" type="reporter" category="control"><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"><custom-block s="transpose $⍉-1.5-255-255-0 %l"><block s="evaluate"><block var="function"/><list><custom-block s="transpose $⍉-1.5-255-255-0 %l"><block var="data"/></custom-block></list></block></custom-block></custom-block></block></script></block-definition><block-definition s="reverse column order (row contents) $⏀-1-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="206" collapsed="false">Reverses the order of the columns of the input, which is a reflection through a vertical axis, as the ⏀ symbol suggests.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="columnwise %repRing %l"><block s="reifyReporter"><autolambda><custom-block s="reverse row order (column contents) $⦵-1.5-255-255-0 %l"><l/></custom-block></autolambda><list></list></block><block var="array"/></custom-block></block></script></block-definition><block-definition s="combine in columns (reduce by row vectors) %&apos;function&apos; $⌿-1.5-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="285.3333333333333" collapsed="false">This function has two names because there are two ways&#xD;to understand it.&#xD;&#xD;Lisp way:  A matrix is a list of rows.  This block turns it into a list of columns, and combines the numbers in each column, producing one value for the entire column.&#xD;&#xD;APL way:  A matrix is made of vectors.  This block takes each row as a vector, and does vector arithmetic on the rows, producing one row as the result.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="columnwise %repRing %l"><block s="reifyReporter"><autolambda><custom-block s="combine in rows (reduce by column vectors) %repRing $/-1-255-255-0 %l"><block var="function"/><l/></custom-block></autolambda><list></list></block><block var="array"/></custom-block></block></script></block-definition><block-definition s="catenate vertically %&apos;left&apos; $⍪-1.5-255-255-0 %&apos;right&apos;" type="reporter" category="lists"><comment x="0" y="0" w="190.66666666666666" collapsed="false">Like append, but:&#xD;&#xD;A scalar input is treated as a vector&#xD;of length 1.&#xD;&#xD;If the two inputs are of different ranks,&#xD;the function is mapped over the larger ranked input.&#xD;&#xD;Catenate vertically adds new rows, by appending to each column.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="left"/><l><option>list</option></l></block></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="right"/></custom-block><l>1</l></list></block><script><block s="doSetVar"><l>left</l><custom-block s="reshape as %l $⍴-1-255-255-0 items of %l"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><l>1</l></list></block><custom-block s="drop %n $↓-1-255-255-0 from %l"><l>1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="right"/></custom-block></custom-block></list></block><block s="reportNewList"><list><block var="left"/></list></block></custom-block></block></script><script><block s="doSetVar"><l>left</l><block s="reportNewList"><list><block var="left"/></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="right"/><l><option>list</option></l></block></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><l>1</l></list></block><script><block s="doSetVar"><l>right</l><custom-block s="reshape as %l $⍴-1-255-255-0 items of %l"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><l>1</l></list></block><custom-block s="drop %n $↓-1-255-255-0 from %l"><l>1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="left"/></custom-block></custom-block></list></block><block s="reportNewList"><list><block var="right"/></list></block></custom-block></block></script><script><block s="doSetVar"><l>right</l><block s="reportNewList"><list><block var="right"/></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="right"/></custom-block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><l>1</l></list></block><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="left"/><block var="right"/></list></block></block></script><script><block s="doReport"><custom-block s="transpose $⍉-1.5-255-255-0 %l"><custom-block s="catenate %s $,-1-255-255-0 %s"><custom-block s="transpose $⍉-1.5-255-255-0 %l"><block var="left"/></custom-block><custom-block s="transpose $⍉-1.5-255-255-0 %l"><block var="right"/></custom-block></custom-block></custom-block></block></script></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="left"/></custom-block><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="right"/></custom-block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><block var="left"/><l></l></custom-block></autolambda><list></list></block><block var="right"/></block></block></script><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="catenate %s $,-1-255-255-0 %s"><l></l><block var="right"/></custom-block></autolambda><list></list></block><block var="left"/></block></block></script></block></script><scripts><script x="254" y="497.7777777777774"><custom-block s="multimap %repRing %mult%l"><block s="reifyReporter"><script></script><list></list></block><list><l/><l/></list></custom-block></script></scripts></block-definition><block-definition s="%&apos;a&apos; scalar join %&apos;b&apos;" type="reporter" category="operators"><comment x="0" y="0" w="219.33333333333334" collapsed="false">A hyperblock version of JOIN.  The regular JOIN isn&apos;t hyperized because it can accept a list as input, representing it as text.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="take %&apos;howmany&apos; $↑-1-255-255-0 from %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="272" collapsed="false">A positive left input selects the first n items of the right input.&#xD;A negative left input selects the last abs(n) items&#xD;of the right input.&#xD;&#xD;If the right input is a matrix, a numeric left input selects rows;&#xD;the left input may also be a two-item vector, in which case&#xD;the first number is applied to the rows&#xD;and the second number is applied to the columns.&#xD;Similarly for higher-dimension arrays. </comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="howmany"/><l><option>number</option></l></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="howmany"/><l>0</l></list></block><block s="reportListItem"><block s="reportVariadicSum"><list><custom-block s="$⍳-1.5-255-255-0 %n"><block s="reportMonadic"><l><option>abs</option></l><block var="howmany"/></block></custom-block><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="array"/></block><block var="howmany"/></list></block></list></block><block var="array"/></block><block s="reportListItem"><custom-block s="$⍳-1.5-255-255-0 %n"><block var="howmany"/></custom-block><block var="array"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="howmany"/></custom-block><l>1</l></list></block><script><custom-block s="error %txt"><l>Left input to take can&apos;t be a matrix.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="howmany"/></block><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="array"/></custom-block></list></block><script><custom-block s="error %txt"><l>Length of item vector &gt; rank of array in take.</l></custom-block></script><list></list></block><block s="doReport"><block s="reportListItem"><custom-block s="reverse row order (column contents) $⦵-1.5-255-255-0 %l"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="value"/><l>0</l></list></block><block s="reportVariadicSum"><list><custom-block s="$⍳-1.5-255-255-0 %n"><block s="reportMonadic"><l><option>abs</option></l><block var="value"/></block></custom-block><block s="reportVariadicSum"><list><block s="reportListItem"><block var="index"/><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="array"/></custom-block></block><block var="value"/></list></block></list></block><custom-block s="$⍳-1.5-255-255-0 %n"><block var="value"/></custom-block></block></autolambda><list><l>value</l><l>index</l></list></block><block var="howmany"/></block></custom-block><block var="array"/></block></block></script></block-definition><block-definition s="drop %&apos;howmany&apos; $↓-1-255-255-0 from %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="306" collapsed="false">A positive left input selects all but the first n items of the right input.&#xD;A negative left input selects all but the last abs(n) items&#xD;of the right input.&#xD;&#xD;If the right input is a matrix, a numeric left input selects rows;&#xD;the left input may also be a two-item vector, in which case&#xD;the first number is applied to the rows&#xD;and the second number is applied to the columns.&#xD;Similarly for higher-dimension arrays. </comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="howmany"/><l><option>number</option></l></block><script><block s="doReport"><custom-block s="take %n $↑-1-255-255-0 from %l"><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>neg</option></l><custom-block s="signum $×-1-255-255-0 %n"><block var="howmany"/></custom-block></block><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="array"/></block><block s="reportMonadic"><l><option>abs</option></l><block var="howmany"/></block></block></list></block><block var="array"/></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="take %n $↑-1-255-255-0 from %l"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="value"/><l>0</l></list></block><block s="reportVariadicSum"><list><block s="reportListItem"><block var="index"/><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="array"/></custom-block></block><block var="value"/></list></block><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="array"/></custom-block></block></block></block></autolambda><list><l>value</l><l>index</l></list></block><block var="howmany"/></block><block var="array"/></custom-block></block></script></block-definition><block-definition s="simple log base %&apos;b&apos; of %&apos;n&apos;" type="reporter" category="other"><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"><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="reportVariadicEquals"><list><block var="r"/><l>0</l></list></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"><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><custom-block s="factorial $!-1-255-255-0 %n"><block var="r"/></custom-block></block></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos; ascending" type="reporter" category="lists"><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 numbers from %n to %n ascending"><l></l><l></l></custom-block></autolambda><list></list></block></custom-block><list><block var="from"/><block var="to"/></list></block></block></script></block-definition><block-definition s="simple gcd %&apos;a&apos; %&apos;b&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="b"/><l>0</l></list></block><script><block s="doReport"><block var="a"/></block></script><list></list></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"><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="reportVariadicEquals"><list><block var="n"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></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"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="b"/><l>0</l></list></block><script><block s="doReport"><block var="b"/></block></script><list></list></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"><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="reportVariadicGreaterThan"><list><block var="from"/><block var="to"/></list></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="☠︎ link %&apos;data&apos;" type="reporter" category="lists"><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><list></list></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="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="multimap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="267.3333333333333" collapsed="false">Takes as input a function of N inputs and N lists.&#xD;The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on.  (The lists should all be the same length.)</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><custom-block s="%s"><l></l></custom-block></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>columns</option></l><block var="lists"/></block></block></block></script></block-definition><block-definition s="log base %&apos;b&apos; $/^-1.1-255-255-0 %&apos;x&apos;" type="reporter" category="operators"><comment x="0" y="0" w="212" collapsed="false">Computes logarithms in any base.&#xD;&#xD;The base is the left input.  It&apos;s usual in APL that if there&apos;s a main data input and some sort of control input, the latter comes on the left.  This is because APL syntax, unless you use parentheses, groups computations from right to left.&#xD;&#xD;APL has a monadic version of this function that computes natural logs (log to the base e).</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 log base %n of %n"><l></l><l></l></custom-block></autolambda><list></list></block></custom-block><list><block var="b"/><block var="x"/></list></block></block></script></block-definition><block-definition s="combs %&apos;r&apos; at a time $!-1-255-255-0 of %&apos;n&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218.66666666666666" collapsed="false">Computes the number of combinations of right-input things taken left-input at a time, otherwise known as the elements of Pascal&apos;s triangle.  This block shares the ! symbol with the monadic factorial function, because the formula for computing this function uses factorials.</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><block s="reportIfElse"><block s="reportVariadicAnd"><list><custom-block s="%s ≥ %s"><block var="n"/><l>0</l></custom-block><block s="reportVariadicAnd"><list><custom-block s="%s ≥ %s"><block var="r"/><l>0</l></custom-block><custom-block s="%s ≤ %s"><block var="r"/><block var="n"/></custom-block></list></block></list></block><block s="reportQuotient"><custom-block s="factorial $!-1-255-255-0 %n"><block var="n"/></custom-block><block s="reportVariadicProduct"><list><custom-block s="factorial $!-1-255-255-0 %n"><block var="r"/></custom-block><custom-block s="factorial $!-1-255-255-0 %n"><block s="reportDifference"><block var="n"/><block var="r"/></block></custom-block></list></block></block><l>0</l></block></autolambda><list><l>r</l><l>n</l></list></block></custom-block><list><block var="r"/><block var="n"/></list></block></block></script></block-definition><block-definition s="factorial $!-1-255-255-0 %&apos;n&apos;" type="reporter" category="operators"><comment x="0" y="0" w="172.66666666666666" collapsed="false">The factorial of a positive integer n is the product of the integers from 1 to n.&#xD;&#xD;In real APL, the domain of this function is extended beyond integers to compute the gamma function.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></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="factorial $!-1-255-255-0 %n"><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>1</l><custom-block s="combine in rows (reduce by column vectors) %repRing $/-1-255-255-0 %l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></custom-block></block></block></script></block></script></block-definition><block-definition s="%&apos;a&apos; scalar %&apos;pred&apos; %&apos;b&apos;" type="predicate" category="operators"><comment x="0" y="0" w="190" collapsed="false">Acts just like the function selected from&#xD;the pulldown menu, but hyperized, so&#xD;comparing two equal-sized lists reports&#xD;a list of the same length as the inputs,&#xD;with the results of item-by-item comparisons.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true">﹦<options>﹦&#xD;≠&#xD;identical to&#xD;and&#xD;or&#xD;is _ a _?</options></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reportListItem"><block s="reportListIndex"><block var="pred"/><block s="reportNewList"><list><l>﹦</l><l>≠</l><l>identical to</l><l>and</l><l>or</l><l>is _ a _?</l></list></block></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><l></l><l></l></list></block></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicIsIdentical"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l></l></block></autolambda><list></list></block></list></block></block><list><block var="a"/><block var="b"/></list></block></autolambda><list><l>a</l><l>b</l></list></block></custom-block><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="GCD (or) %&apos;a&apos; $∨-1.2-255-255-0 %&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"><script><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="b"/></block><script><block s="doReport"><block var="a"/></block></script><list></list></block><block s="doReport"><custom-block s="GCD (or) %n $∨-1.2-255-255-0 %n"><block var="b"/><block s="reportModulus"><block var="a"/><block var="b"/></block></custom-block></block></script><list><l>a</l><l>b</l></list></block></custom-block><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="LCM (and) %&apos;a&apos; $∧-1.2-255-255-0 %&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"><script><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="b"/></block><script><block s="doReport"><block var="b"/></block></script><list></list></block><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block s="reportQuotient"><block var="b"/><custom-block s="GCD (or) %n $∨-1.2-255-255-0 %n"><block var="a"/><block var="b"/></custom-block></block></list></block></block></script><list><l>a</l><l>b</l></list></block></custom-block><list><block var="a"/><block var="b"/></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="deep map %&apos;function&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><custom-block s="deep map %repRing over %l"><block var="fun"/><l/></custom-block><block s="evaluate"><block var="fun"/><list><l></l></list></block></block></autolambda><list></list></block><block var="data"/></block></block></script></block-definition><block-definition s="%&apos;howmany&apos; deal $?-1-255-255-0 %&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.</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"><block var="howmany"/><block s="reportNumbers"><l>1</l><block var="range"/></block></custom-block></autolambda><list><l>howmany</l><l>range</l></list></block></custom-block><list><block var="howmany"/><block var="range"/></list></block></block></script></block-definition><block-definition s="outer product %&apos;a&apos; $○.-1-255-255-0 %&apos;function&apos; %&apos;b&apos;" type="reporter" category="lists"><comment x="0" y="0" w="297.99999999999994" collapsed="false">Given two arrays A and B, reports an array whose dimensions are&#xD;APPEND(SHAPE OF (A), SHAPE OF (B))&#xD;in which each atomic item of the result is computed by applying the dyadic function input to an item of A and an item of B.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="a"/></custom-block><l>0</l></list></block><script><block s="doReport"><block s="evaluate"><block var="function"/><list><block var="a"/><block var="b"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="a"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><custom-block s="outer product %l $○.-1-255-255-0 %repRing %l"><block s="reportListItem"><l>1</l><block var="a"/></block><block var="function"/><block var="b"/></custom-block><custom-block s="outer product %l $○.-1-255-255-0 %repRing %l"><block s="reportCDR"><block var="a"/></block><block var="function"/><block var="b"/></custom-block></block></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="doForEach"><l>each item</l><block var="names"/><script><block s="doRun"><block s="reportJSFunction"><list><l>varName</l><l>proc</l></list><l>if ((typeof varName) != "string" || varName === "") {&#xD;    throw new Error("name isn&apos;t a string: " + varName);&#xD;}&#xD;if (typeof proc.homeContext.variables.vars[varName] !== &apos;undefined&apos;) {&#xD;    delete proc.homeContext.variables.vars[varName];&#xD;} else if (this.deletableVariableNames().indexOf(varName) != -1) {&#xD;    this.deleteVariable(varName);&#xD;} else {&#xD;    throw new Error("variable doesn&apos;t exist: " + varName);&#xD;}</l></block><list><block var="each item"/></list></block></script></block><block s="doRun"><block s="reportJSFunction"><list></list><l>var ide = this.parentThatIsA(IDE_Morph);&#xD;ide.flushBlocksCache(&apos;variables&apos;); // b/c of inheritance&#xD;ide.refreshPalette();</l></block><list></list></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="doRun"><block s="reportJSFunction"><list><l>varName</l><l>value</l><l>proc</l></list><l>if ((typeof varName) != "string") {&#xD;    throw new Error("name isn&apos;t a string: " + varName);&#xD;}&#xD;proc.homeContext.variables.setVar(varName, value);</l></block><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="evaluate"><block s="reportJSFunction"><list><l>varName</l><l>proc</l></list><l>if ((typeof varName) != "string") {&#xD;    throw new Error("name isn&apos;t a string: " + varName);&#xD;}&#xD;return proc.homeContext.variables.getVar(varName);</l></block><list><block var="name"/></list></block></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="doIf"><custom-block s="does var %s exist?"><block var="name"/></custom-block><script><block s="doRun"><block s="reportJSFunction"><list><l>varName</l><l>proc</l></list><l>    var varFrame = proc.homeContext.variables,&#xD;        stage,&#xD;        watcher,&#xD;        target,&#xD;        label,&#xD;        others,&#xD;        isGlobal,&#xD;        name = varName;&#xD;&#xD;    if (name instanceof Context) {&#xD;        if (name.expression.selector === &apos;reportGetVar&apos;) {&#xD;            name = name.expression.blockSpec;&#xD;        } else {&#xD;            proc.doChangePrimitiveVisibility(name.expression, false);&#xD;            return;&#xD;        }&#xD;    }&#xD;    if (proc.homeContext.receiver) {&#xD;        stage = proc.homeContext.receiver.parentThatIsA(StageMorph);&#xD;        if (stage) {&#xD;            target = varFrame.silentFind(name);&#xD;            if (!target) {return; }&#xD;            // first try to find an existing (hidden) watcher&#xD;            watcher = detect(&#xD;                stage.children,&#xD;                morph =&gt; morph instanceof WatcherMorph &amp;&amp;&#xD;                    morph.target === target &amp;&amp;&#xD;                        morph.getter === name&#xD;            );&#xD;            if (watcher !== null) {&#xD;                watcher.show();&#xD;                watcher.fixLayout(); // re-hide hidden parts&#xD;                return;&#xD;            }&#xD;            // if no watcher exists, create a new one&#xD;            isGlobal = contains(&#xD;                proc.homeContext.receiver.globalVariables().names(),&#xD;                varName&#xD;            );&#xD;            if (isGlobal || target.owner) {&#xD;                label = name;&#xD;            } else {&#xD;                label = name + &apos; &apos; + localize(&apos;(temporary)&apos;);&#xD;            }&#xD;            watcher = new WatcherMorph(&#xD;                label,&#xD;                SpriteMorph.prototype.blockColor.variables,&#xD;                target,&#xD;                name&#xD;            );&#xD;            watcher.setPosition(stage.position().add(10));&#xD;            others = stage.watchers(watcher.left());&#xD;            if (others.length &gt; 0) {&#xD;                watcher.setTop(others[others.length - 1].bottom());&#xD;            }&#xD;            stage.add(watcher);&#xD;            watcher.fixLayout();&#xD;        }&#xD;    }</l></block><list><block var="name"/></list></block></script><list></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="doIf"><custom-block s="does var %s exist?"><block var="name"/></custom-block><script><block s="doRun"><block s="reportJSFunction"><list><l>varName</l><l>proc</l></list><l>    // to delete all temporary watchers, use the primitive "hide" with no inputs&#xD;    var varFrame = proc.homeContext.variables,&#xD;        stage,&#xD;        watcher,&#xD;        target,&#xD;        name = varName;&#xD;&#xD;    if (name instanceof Context) {&#xD;        if (name.expression.selector === &apos;reportGetVar&apos;) {&#xD;            name = name.expression.blockSpec;&#xD;        } else {&#xD;            proc.doChangePrimitiveVisibility(name.expression, true);&#xD;            return;&#xD;        }&#xD;    }&#xD;    if (!name) {&#xD;        proc.doRemoveTemporaries();&#xD;        return;&#xD;    }&#xD;    if (proc.homeContext.receiver) {&#xD;        stage = proc.homeContext.receiver.parentThatIsA(StageMorph);&#xD;        if (stage) {&#xD;            target = varFrame.find(name);&#xD;            watcher = detect(&#xD;                stage.children,&#xD;                morph =&gt; morph instanceof WatcherMorph &amp;&amp;&#xD;                    morph.target === target &amp;&amp;&#xD;                        morph.getter === name&#xD;            );&#xD;            if (watcher !== null) {&#xD;                if (watcher.isTemporary()) {&#xD;                    watcher.destroy();&#xD;                } else {&#xD;                    watcher.hide();&#xD;                }&#xD;            }&#xD;        }&#xD;    }&#xD;</l></block><list><block var="name"/></list></block></script><list></list></block></script></block-definition><block-definition s="%&apos;in&apos; $arrowRightThin-1.1-254-255-255 %&apos;in2&apos;" type="reporter" category="motion"><comment x="0" y="0" w="154" collapsed="false">Reports the second x&amp;y input list minus the first.&#xD;&#xD;This is used for 2 item long lists.&#xD;&#xD;Use this reporter with the point towards (list) block&#xD;&#xD;Put the x&amp;y location of the object that you want to look in a different direction in the first slot and the x&amp;y of where you want it to look in the second input.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="in2"/></block><block s="reportListItem"><l>1</l><block var="in"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="in2"/></block><block s="reportListItem"><l>2</l><block var="in"/></block></block></list></block></block></script></block-definition><block-definition s="Point towards %&apos;d&apos;" type="command" category="motion"><comment x="0" y="0" w="181.53964843749998" collapsed="false">Points towards the input witch must be a two item long list containing the x&amp;y location you want to point towards.&#xD; &#xD;Location must be from 0,0 so use the (list) -&gt; (list) reporter in the slot.</comment><variables><list struct="atomic" id="4631">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="createClone"><l><option>myself</option></l></block><block s="doTellTo"><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block><block s="reifyScript"><script><block s="hide"></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="d"/></block><block s="reportListItem"><l>2</l><block var="d"/></block></block></script><list></list></block><list></list></block><block s="doSetVar"><l>a</l><block s="xPosition"></block></block><block s="doSetVar"><l>b</l><block s="yPosition"></block></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doFaceTowards"><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block></block><block s="doTellTo"><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="gotoXY"><block var="a"/><block var="b"/></block></script></block></script><scripts><script x="129" y="344.3333333333334"><block s="hide"></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="d"/></block><block s="reportListItem"><l>2</l><block var="d"/></block></block></script></scripts></block-definition><block-definition s="String %&apos;h&apos; %&apos;i&apos; %&apos;i2&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Does multiple functions. Functions that do not use item 2 are adjusted by item 2.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>all but first letter of&#xD;all but first word of&#xD;all but last word of&#xD;all but last letter of&#xD;first word of&#xD;last letter of&#xD;last word of&#xD;first word of&#xD;position of __ in&#xD;text __ contains</options></input><input type="%s"></input><input type="%s">0</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>position of __ in</l></list></block><script><block s="doReport"><block s="reportIfElse"><custom-block s="use case-independent comparison"></custom-block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><custom-block s="to lower case %txt"><block var="i"/></custom-block><custom-block s="to lower case %txt"><block var="i2"/></custom-block></list></block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="i"/><block var="i2"/></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>text __ contains</l></list></block><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><custom-block s="String %s %s %s"><l>position of __ in</l><block var="i2"/><block var="i"/></custom-block><l>0</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>all but last word of</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block var="i"/></block></block></block></block></script><list></list></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="i"/></custom-block><l>All but last of empty sentence.</l></custom-block></block></block></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>all but first letter of</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="String %s %s %s"><l>all but first letter of</l><l></l><l>0</l></custom-block></autolambda><list></list></block><block var="i"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="i"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>all but first word of</l></list></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="i2"/><l>2</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportCDR"><block var="i"/></block></block></script><script><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportCDR"><block s="reportTextSplit"><block var="i"/><l><option>word</option></l></block></block></custom-block></block></script></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>b</l><l>0</l></block><block s="doSetVar"><l>a</l><block var="i"/></block><block s="doSetVar"><l>b</l><block var="i"/></block><block s="doRepeat"><block var="i2"/><script><block s="doSetVar"><l>a</l><block s="reportCDR"><block var="a"/></block></block></script></block><block s="doFor"><l>q</l><l>1</l><block s="reportDifference"><block var="i2"/><l>1</l></block><script><block s="doInsertInList"><block s="reportListItem"><block var="q"/><block var="b"/></block><block var="q"/><block var="a"/></block></script></block><block s="doReport"><block var="a"/></block></script><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>b</l><l>0</l></block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block var="i"/><l><option>word</option></l></block></block><block s="doSetVar"><l>b</l><block s="reportTextSplit"><block var="i"/><l><option>word</option></l></block></block><block s="doRepeat"><block var="i2"/><script><block s="doSetVar"><l>a</l><block s="reportCDR"><block var="a"/></block></block></script></block><block s="doFor"><l>q</l><l>1</l><block s="reportDifference"><block var="i2"/><l>1</l></block><script><block s="doInsertInList"><block s="reportListItem"><block var="q"/><block var="b"/></block><block var="q"/><block var="a"/></block></script></block><block s="doIfElse"><block s="reportIsA"><block var="a"/><l><option>list</option></l></block><script><block s="doSetVar"><l>a</l><custom-block s="list $arrowRight sentence %l"><block var="a"/></custom-block></block></script><script></script></block><block s="doReport"><block var="a"/></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>all but last letter of</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="i"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="i"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>first word of</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="i"/></block></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="i"/></custom-block><l>First of empty sentence.</l></custom-block></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>last word of</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><block var="i"/></block></block></script><list></list></block><block s="doReport"><block s="reportListItem"><l><option>last</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="i"/></custom-block><l>Last of empty sentence.</l></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>first letter of</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="i"/></block></block></script><script><block s="doReport"><block s="reportLetter"><l>1</l><custom-block s="require nonempty %s %s"><block var="i"/><l>First of empty word.</l></custom-block></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>last letter of</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="i"/></block></block></script><list></list></block><block s="doReport"><block s="reportLetter"><block s="reportTextAttribute"><l><option>length</option></l><block var="i"/></block><block var="i"/></block></block></script><list></list></block></script><scripts><script x="514" y="252.50000000000045"><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l></l></list></block><script></script><list></list></block></script><script x="574.7353515625" y="1087.0333333333335"><block var="i"/></script></scripts></block-definition><block-definition s="Name project %&apos;d&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="d"/><l></l></list></block><script><block s="doAsk"><l>Name?</l></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><l></l></list></block></block><script><custom-block s="set value %s to %s"><l>Project name</l><block s="getLastAnswer"></block></custom-block></script><list></list></block></script><script><custom-block s="set value %s to %s"><l>Project name</l><block var="d"/></custom-block></script></block></script></block-definition><block-definition s="Var $globeBig %&apos;VarName&apos; id %&apos;id&apos;" type="reporter" category="Online"><comment x="0" y="0" w="90" collapsed="false">Reports a stored value on the cloud.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>answer</l></list><l> return answer.substring(0, answer.length - 1);</l></block><list><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="VarName"/><custom-block s="_id_s %s"><block var="id"/></custom-block></list></block><l>.txt</l></list></block></block></list></block></block></script><scripts><script x="25" y="312.2"><block s="evaluate"><block s="reportJSFunction"><list><l>answer</l></list><l> return answer.substring(0, answer.length - 1);</l></block><list><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="VarName"/><custom-block s="%s x %n %s"><block s="reportJoinWords"><list><l>_id_</l><block var="id"/></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="id"/></block><l></l></custom-block></list></block><l>.txt</l></list></block></block></list></block></script><comment x="25" y="254.2" w="90" collapsed="false">Old script</comment></scripts></block-definition><block-definition s="Set Var $globeBig %&apos;VarName&apos; id %&apos;id&apos; to %&apos;value&apos;" type="command" category="Online"><comment x="0" y="0" w="90" collapsed="false">Stores a value on the cloud.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mult%s"></input><input type="%s"></input></inputs><script><custom-block s="Hold %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=write&amp;content=</l><block var="value"/><l>&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="VarName"/><custom-block s="_id_s %s"><block var="id"/></custom-block></list></block><l>.txt</l></list></block></block></custom-block></script></block-definition><block-definition s="%&apos;value&apos; x %&apos;num&apos; %&apos;Joined&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Input duplicated (and joined) a certain number of times.&#xD;&#xD;The values can be joined with a separator. Default is none.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n">2</input><input type="%s"><options>.&#xD;,&#xD;:&#xD;;&#xD;/&#xD;-&#xD;(&#xD;)&#xD;€&#xD;Space</options></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block var="value"/></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="num"/><l>0</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="Joined"/><l>Space</l></list></block><l> </l><block var="Joined"/></block></block></script><script><block s="doRepeat"><block s="reportDifference"><block var="num"/><l>1</l></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="Joined"/><l>Space</l></list></block><l> </l><block var="Joined"/></block><block var="value"/></list></block></block></script></block><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="_id_s %&apos;id&apos;" type="reporter" category="Online"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><block s="reportIsA"><block var="id"/><l><option>list</option></l></block><script><block s="doSetVar"><l>a</l><l></l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="id"/></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><block s="reportJoinWords"><list><l>_id_</l><block s="reportListItem"><block var="i"/><block var="id"/></block></list></block></list></block></block></script></block></script><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><l>_id_</l><block var="id"/></list></block></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="storage" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="78.99511718750001" y="88.80000000000001"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return cloudid;</l></block><list></list></block></script><script x="23" y="146.83333333333331"><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>cloudid = a</l></block><list><block var="s"/></list></block></script></scripts></block-definition><block-definition s="Search $magnifierOutline %&apos;s&apos; %&apos;cv&apos; %&apos;C&apos; %&apos;ex&apos;" type="reporter" category="Online"><comment x="0" y="0" w="90" collapsed="false">Search a lot of something.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s" readonly="true"><options>name&#xD;Id&#xD;Id-num&#xD;name&amp;Id</options></input><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="C"/><l>name</l></list></block><script><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><l><bool>true</bool></l></block><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l></list></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doForever"><script><block s="doSetVar"><l>a</l><l>0</l></block><block s="doRepeat"><l>10</l><script><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doSetVar"><l>c</l><block s="reportJoinWords"><list><l>_id_</l><l>world</l></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><custom-block s="Var $globeBig %s id %mult%s"><l>f</l><list><l>d</l></list></custom-block><l></l></list></block><block s="reportVariadicEquals"><list><custom-block s="Var $globeBig %s id %mult%s"><l>f</l><list><l>d</l></list></custom-block><l>ERROR: file does not exist</l></list></block></list></block></block><block s="reportNot"><block s="reportListContainsItem"><block var="ex"/><custom-block s="Var $globeBig %s id %mult%s"><l>f</l><list><l>d</l></list></custom-block></block></block></list></block><script></script><list></list></block></script></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block></script><list></list></block></script><scripts><script x="315" y="352.3666666666666"><block s="doReport"><l></l></block></script><script x="210" y="372.03333333333336"><block s="reportJoinWords"><list><l>hello </l><l>world</l></list></block></script><script x="346" y="310.0333333333333"><block s="reportUnicodeAsLetter"><l>27</l></block></script><script x="311.00000000000006" y="117.66666666666669"><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><l><bool>false</bool></l></block></script></scripts></block-definition><block-definition s="message" type="reporter" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="getLastMessage"></block></block></script></block-definition><block-definition s="Hv %&apos;hggg&apos;" type="command" category="Other"><comment x="0" y="0" w="100" collapsed="false">Set a hidden variable to a value.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>b</l></list><l>J = b</l></block><list><block var="hggg"/></list></block></script><scripts><script x="101.45703124999999" y="134.83333333333331"><block var="gggg"/></script></scripts></block-definition><block-definition s="Hv" type="reporter" category="Other"><comment x="0" y="0" w="90" collapsed="false">Reports the Hidden Variable.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return J;</l></block><list></list></block></block></script><scripts><script x="227.482421875" y="131.83333333333331"><block var="hggg"/></script></scripts></block-definition><block-definition s="SUPER %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="160.9599609375" collapsed="false">Runs the action at warp and turbo speed (don’t know if it actually makes it go faster than warp.</comment><header></header><code></code><translations>pt:executa no modo turbo _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>begin</l></list></block><block s="doSetVar"><l>begin</l><block s="reportGlobalFlag"><l><option>turbo mode</option></l></block></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><l><bool>true</bool></l></block><block s="doRun"><block var="action"/><list></list></block><block s="doSetGlobalFlag"><l><option>turbo mode</option></l><block var="begin"/></block></script></block></script></block-definition><block-definition s="Open Url %&apos;url&apos;" type="command" category="Online"><comment x="0" y="0" w="90" collapsed="false">Experimental and does not work.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><block var="url"/></list></block></script><scripts><script x="25" y="335.8333333333332"><block s="doWaitUntil"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;   return true;&#xD;}&#xD;if (window.waiting_for_ecraft2learn_library) {&#xD;   return false;&#xD;}&#xD;window.waiting_for_ecraft2learn_library = true;&#xD;let script = document.createElement("script");&#xD;&#xD;script.type = "text/javascript";&#xD;&#xD;if (window.location.hostname === &apos;localhost&apos;) {&#xD;&#xD;    script.src = window.location.protocol + "//" + window.location.host + "/ai/ecraft2learn-beta.js"; // notice this the beta version&#xD;&#xD;} else {&#xD;&#xD;    script.src = "https://ecraft2learn.github.io/ai/ecraft2learn.js";&#xD;&#xD;}&#xD;&#xD;document.head.appendChild(script);&#xD;return false;</l></block><list></list></block></block><block s="doRun"><block s="reportJSFunction"><list><l>function_name</l><l>parameters</l></list><l>if (typeof ecraft2learn === &apos;object&apos;) {&#xD;    ecraft2learn.run(function_name, parameters);&#xD;} else {&#xD;   var script = document.createElement("script");&#xD;   script.type = "text/javascript";&#xD;   script.addEventListener(&apos;error&apos;, function () {&#xD;          alert("Unable to load https://ecraft2learn.github.io/ai/ecraft2learn.js. Check your network connection.");&#xD;   });&#xD;   script.src = "https://ecraft2learn.github.io/ai/ecraft2learn.js";&#xD;   script.addEventListener(&apos;load&apos;, function () {&#xD;          ecraft2learn.run(function_name, parameters);&#xD;   });&#xD;   document.head.appendChild(script);&#xD;}&#xD;</l></block><list><l>open_web_page</l><block var="url"/></list></block></script><comment x="28.130859375" y="291.2" w="90" collapsed="false">Old script</comment></scripts></block-definition><block-definition s="tell all to %&apos;command&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>neighbors</option></l></block></block><script><block s="doTellTo"><block s="reportListItem"><block var="i"/><block s="reportGet"><l><option>neighbors</option></l></block></block><block var="command"/><list></list></block></script></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="store list key: %&apos;key&apos; value: %&apos;val&apos;" type="command" category="Database"><comment x="0" y="0" w="90" collapsed="false">Makes a list using a clever system.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block s="reportListAttribute"><l><option>length</option></l><block var="val"/></block></list></block><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block var="val"/></block><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block s="reportJoinWords"><list><block var="key"/><block var="a"/></list></block><block s="reportListItem"><block var="a"/><block var="val"/></block></list></block><block s="doChangeVar"><l>a</l><l>1</l></block></script></block></script></block-definition><block-definition s="store list key: %&apos;key&apos; value: %&apos;val&apos;" type="command" category="Database"><comment x="0" y="0" w="90" collapsed="false">Makes a list using a clever system.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block s="reportListAttribute"><l><option>length</option></l><block var="val"/></block></list></block><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block var="val"/></block><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block s="reportJoinWords"><list><block var="key"/><block var="a"/></list></block><block s="reportListItem"><block var="a"/><block var="val"/></block></list></block><block s="doChangeVar"><l>a</l><l>1</l></block></script></block></script></block-definition><block-definition s="remove list key: %&apos;key&apos;" type="command" category="Database"><comment x="0" y="0" w="90" collapsed="false">Does the same thing as “remove key” but with a list.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>0</l></block><block s="doRepeat"><custom-block s="value from key: %s"><block var="key"/></custom-block><script><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doApplyExtension"><l>db_remove(key)</l><list><block s="reportJoinWords"><list><block var="key"/><block var="a"/></list></block></list></block></script></block><block s="doApplyExtension"><l>db_remove(key)</l><list><block var="key"/></list></block></script></block-definition><block-definition s="list value from key: %&apos;key&apos;" type="reporter" category="Database"><comment x="0" y="0" w="90" collapsed="false">Does the same thing as “value from key” but for a list.&#xD;&#xD;Note. The list key and normal key blocks are not interchangeable you cannot use a normal key block to change a list key.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>a</l><l>0</l></block><block s="doSetVar"><l>b</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><custom-block s="value from key: %s"><block var="key"/></custom-block><script><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doAddToList"><custom-block s="value from key: %s"><block s="reportJoinWords"><list><block var="key"/><block var="a"/></list></block></custom-block><block var="b"/></block></script></block><block s="doReport"><block var="b"/></block></script></block-definition><block-definition s="bool %&apos;g&apos; %&apos;d&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="161.0537109375" collapsed="false">Used to convert true &amp; false to text “true” &amp; “false” and the other way around.&#xD;&#xD;Designed to transport bools back and forth between database vars because they only accept text and numbers. But can be used for other applications.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>text to bool=TB&#xD;bool to text=BT&#xD;number to text=NT&#xD;text to number=TN&#xD;bool to number=BN&#xD;number to bool=NB</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>TB</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>true</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>false</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>bool not reporting correctly</l></list></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>BT</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doReport"><l>true</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doReport"><l>false</l></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>bool not reporting correctly</l></list></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>TN</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>true</l></list></block><script><block s="doReport"><l>1</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>false</l></list></block><script><block s="doReport"><l>0</l></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>bool not reporting correctly</l></list></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>NT</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>1</l></list></block><script><block s="doReport"><l>true</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>0</l></list></block><script><block s="doReport"><l>false</l></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>bool not reporting correctly</l></list></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>BN</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doReport"><l>1</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doReport"><l>0</l></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>bool not reporting correctly</l></list></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>NB</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>1</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>bool not reporting correctly</l></list></block></script></block></script></block></script><list></list></block></script></block-definition><block-definition s="$circleSolid-3-255-0-0 $circleSolid-3-255-0 $circleSolid-3-144 $hi-3-255-0-0" type="reporter" category="Other"><comment x="0" y="0" w="151" collapsed="false">Use this block as a guide to make your own different looking block. Press edit.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>press edit on this block.</l><comment w="90" collapsed="false">If you click the red circle you will see text.&#xD;&#xD;&#xD;The $ means symbol.&#xD;&#xD;-3-255-0-0&#xD;The 3 is size 1 is normal don’t make it 1000 or that item will be a little to big&#xD;&#xD;the 255-0-0 is how much R-G-B Red-Green-Blue you want (max 255)</comment></block></script></block-definition><block-definition s="Set my name to %&apos;e&apos;" type="command" category="Variables2"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l><option>my name</option></l><block var="e"/></block></script></block-definition><block-definition s="Draggable? %&apos;r&apos;" type="command" category="Variables2"><header></header><code></code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doSetVar"><l><option>my draggable?</option></l><block var="r"/></block></script></block-definition><block-definition s="draggable?" type="predicate" category="Variables2"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportGet"><l><option>draggable?</option></l></block></block></script></block-definition><block-definition s="Movement %&apos;speed&apos; %&apos;Ob&apos; %&apos;use&apos;" type="command" category="motion"><comment x="0" y="0" w="181" collapsed="false">Use this block to move objects at a “Speed” and if it touches a wall it will slowly move along the wall.&#xD;&#xD;The first input is the speed.&#xD;The second input is the object used as the wall.&#xD;The third input is the costume to use as a hit box (leave blank if you are not using a hit box)&#xD;&#xD;See code to see how it works it’s super easy.</comment><variables><list struct="atomic" id="6218">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%txt"><options>§_objectsMenu</options></input><input type="%s"><options>§_costumesMenu</options></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="use"/><l></l></list></block><script></script><script><block s="doSwitchToCostume"><block var="use"/></block></script></block><block s="changeXPosition"><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block></list></block></block><block s="doIf"><block s="reportTouchingObject"><block var="Ob"/></block><script><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block></list></block></block></block></script><list></list></block><block s="changeYPosition"><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block></block><block s="doIf"><block s="reportTouchingObject"><block var="Ob"/></block><script><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block></block></block></script><list></list></block></script></block-definition><block-definition s="X&amp;Y in list of %&apos;j&apos;" type="reporter" category="motion"><comment x="0" y="0" w="90" collapsed="false">Reports the x&amp;y of a object in a list &#xD;&#xD;Leave blank for “myself” x&amp;y</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_objectsMenu</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="j"/><l></l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="j"/></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="j"/></block></list></block></block></script></block></script></block-definition><block-definition s="Inherit %&apos;location&apos;" type="command" category="variables"><comment x="0" y="0" w="90" collapsed="false">Inherit more than one thing.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Location=L&#xD;Location and Direction=LD&#xD;Almost every thing=E</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="location"/><l>L</l></list></block><script><block s="doDeleteAttr"><l><option>x position</option></l></block><block s="doDeleteAttr"><l><option>y position</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="location"/><l>LD</l></list></block><script><block s="doDeleteAttr"><l><option>x position</option></l></block><block s="doDeleteAttr"><l><option>y position</option></l></block><block s="doDeleteAttr"><l><option>direction</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="location"/><l>E</l></list></block><script><block s="doDeleteAttr"><l><option>x position</option></l></block><block s="doDeleteAttr"><l><option>y position</option></l></block><block s="doDeleteAttr"><l><option>direction</option></l></block><block s="doDeleteAttr"><l><option>size</option></l></block><block s="doDeleteAttr"><l><option>costume #</option></l></block><block s="doDeleteAttr"><l><option>volume</option></l></block><block s="doDeleteAttr"><l><option>balance</option></l></block><block s="doDeleteAttr"><l><option>shown?</option></l></block><block s="doDeleteAttr"><l><option>pen down?</option></l></block><block s="doDeleteAttr"><l><option>scripts</option></l></block></script><list></list></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Show pop up %&apos;hed&apos; text %&apos;d&apos;" type="command" category="Prompt"><comment x="0" y="0" w="90" collapsed="false">Shows a pop up with a title and text.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>SciS_showmessage(title,message)</l><list><block s="reportJoinWords"><list><block var="hed"/></list></block><block s="reportJoinWords"><list><block var="d"/></list></block></list></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Stage size %&apos;3&apos;" type="command" category="Sprites"><comment x="0" y="0" w="136" collapsed="false">Item one of inputed list should be the new stage width and item 2 the new stage hight.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doApplyExtension"><l>SciS_setvalue(which,value)</l><list><l>Stage size</l><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="3"/></block><block s="reportListItem"><l>2</l><block var="3"/></block></list></block></list></block></script></block-definition><block-definition s="Add %&apos;sprite&apos; ‘s costume to %&apos;jhh&apos; ’s costumes %&apos;CostumeName&apos;" type="command" category="looks"><comment x="0" y="0" w="167.58164062499998" collapsed="false">Adds “input1”s costume to “input2”s costume list. Reports name of that costume to.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_objectsMenu</options></input><input type="%s"><options>§_objectsMenu</options></input><input type="%upvar"></input></inputs><script><block s="doTellTo"><block var="jhh"/><block s="reifyScript"><script><block s="doAddToList"><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></script><list></list></block><list></list></block><block s="doSetVar"><l>CostumeName</l><block s="reportAttributeOf"><l><option>costume name</option></l><block var="sprite"/></block></block></script></block-definition><block-definition s="Switch the snap logo to the SciSnapLogo" type="command" category="Other"><comment x="0" y="0" w="125" collapsed="false">Literally all it does is changes that little logo in the upper left corner of the screen into the SciSnap one.&#xD;&#xD;A lot of red gear and non red gear blocks came from the SciSnap2 pack in library. &#xD; &#xD;WARNING THIS IS UNREVERSABLE THROUGH SCRIPTS&#xD;but it doesn’t really matter.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>SciS_SetSciSnapLogo()</l><list></list></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Create a duplicate of %&apos;sprite&apos; with name %&apos;gggf&apos;" type="command" category="Sprites"><comment x="0" y="0" w="299" collapsed="false">Let me put it this way&#xD;Create a duplicate of “sprite(#)” and name the duplicate “name”</comment><header></header><code></code><translations></translations><inputs><input type="%txt"><options>§_objectsMenu</options></input><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>SciS_createDuplicate(sprite,spriteName)</l><list><block s="reportObject"><block var="sprite"/></block><block var="gggf"/></list></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Create a new sprite" type="command" category="Sprites"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>SciS_createNewSprite()</l><list></list></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Delete sprite %&apos;name&apos;" type="command" category="Sprites"><comment x="0" y="0" w="90" collapsed="false">Actually deletes the specified sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_objectsMenu</options></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportObject"><block var="name"/></block><l></l></list></block><block s="reportVariadicEquals"><list><block s="reportObject"><block var="name"/></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block></block><script><block s="doTellTo"><block var="name"/><block s="reifyScript"><script><block s="doApplyExtension"><l>SciS_removeThisSprite()</l><list></list></block></script><list></list></block><list></list></block></script><list></list></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Write to file $file %&apos;name&apos; data %&apos;(2)&apos;" type="command" category="Other"><comment x="0" y="0" w="90" collapsed="false">This should write to a file.&#xD;&#xD;I have not tested it.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>SciS_writeToFile(data,filename)</l><list><block var="name"/><block var="(2)"/></list></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Create a new sprite with name %&apos;nam&apos;" type="command" category="Sprites"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doApplyExtension"><l>SciS_createNewSprite()</l><list></list></block><block s="doApplyExtension"><l>SciS_createDuplicate(sprite,spriteName)</l><list><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>other sprites</option></l></block></block></block><block var="nam"/></list></block><block s="doTellTo"><block s="reportAskFor"><block s="reportListItem"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>other sprites</option></l></block></block><l>1</l></block><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>SciS_removeThisSprite()</l><list></list></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 Create a new sprite name %&apos;nam&apos; %&apos;USC&apos; %&apos;cos&apos; %&apos;Rot&apos; %&apos;xy&apos; tell it to %&apos;do&apos; %&apos;shown&apos; %&apos;Sprite’s name&apos; %&apos;dragable&apos;" type="command" category="Sprites"><comment x="0" y="0" w="203.41464843749998" collapsed="false">Creates a new sprite with name:input1 (for info on the T/F toggle see bottom of page) costume:input3 rotation:input4&#xD;X&amp;Y:input5(note. use the block input to tell it to go to a specific location) the last input is the draggable.&#xD;&#xD;&#xD;The first T/F toggle is input:2. If it is true: if there is any object with that name it will add (2) to it or (3),(4),(5) and so on. If input2 is false: you will end up with a bunch of objects with the same name and the block won’t function correctly.</comment><variables><list struct="atomic" id="6610">a,b,c,d,e</list></variables><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%b">true</input><input type="%s">costume<options>§_costumesMenu</options></input><input type="%s"><options>§_directionDialMenu</options></input><input type="%s"><options>Where I am=Here&#xD;Auto&#xD;Center&#xD;Mouse-Pointer=MP</options></input><input type="%cmdRing"></input><input type="%s">✅<options>✅&#xD;⛔️&#xD;This object’s visibility=mine</options></input><input type="%upvar"></input><input type="%b"></input></inputs><script><block s="doSetVar"><l>c</l><block s="xPosition"></block></block><block s="doSetVar"><l>e</l><block s="reportShown"></block></block><block s="doSetVar"><l>d</l><block s="yPosition"></block></block><block s="doWarp"><script><block s="doSetVar"><l>a</l><custom-block s="costume %s"><block var="cos"/></custom-block></block><block s="doApplyExtension"><l>SciS_createNewSprite()</l><list></list></block><block s="doIfElse"><block var="USC"/><script><block s="doApplyExtension"><l>SciS_createDuplicate(sprite,spriteName)</l><list><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><custom-block s="All sprites"></custom-block></block></block><custom-block s="namey %s"><block var="nam"/><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></list></block></script><script><block s="doApplyExtension"><l>SciS_createDuplicate(sprite,spriteName)</l><list><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><custom-block s="All sprites"></custom-block></block></block><block var="nam"/></list></block></script></block><block s="doTellTo"><block s="reportAskFor"><block s="reportListItem"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="All sprites"></custom-block></block><l>1</l></block><custom-block s="All sprites"></custom-block></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>SciS_removeThisSprite()</l><list></list></block></script><list></list></block><list></list></block></script></block><block s="doWarp"><script><block s="doSetVar"><l>b</l><block s="reportAskFor"><block s="reportListItem"><l><option>last</option></l><custom-block s="All sprites"></custom-block></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block></block><custom-block s="Add %s to %s ’s costumes %upvar"><block var="a"/><block var="b"/><l>CostumeName</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block var="CostumeName"/></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="Rot"/><l></l></list></block><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="setHeading"><l>90</l></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="setHeading"><block var="Rot"/></block></script><list></list></block><list></list></block></script></block><block s="doDeclareVariables"><list><l>For</l></list></block><block s="doSetVar"><l>For</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="xy"/><l>Here</l></list></block><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="gotoXY"><block var="c"/><block var="d"/></block></script><list></list></block><list></list></block><block s="doSetVar"><l>For</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="xy"/><l>Atuo</l></list></block><script><block s="doSetVar"><l>For</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="xy"/><l>Center</l></list></block><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="doGotoObject"><l><option>center</option></l></block></script><list></list></block><list></list></block><block s="doSetVar"><l>For</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="xy"/><l>MP</l></list></block><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="doGotoObject"><l><option>mouse-pointer</option></l></block></script><list></list></block><list></list></block><block s="doSetVar"><l>For</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script></script></block></script></block></script></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="shown"/><l>mine</l></list></block><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><custom-block s="Visible %b"><block var="e"/></custom-block></script><list></list></block><list></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="shown"/><l>✅</l></list></block><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="show"></block></script><list></list></block><list></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="shown"/><l>⛔️</l></list></block><script><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script><script></script></block></script></block></script></block><block s="doSetVar"><l>Sprite’s name</l><block var="b"/></block><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="doSetVar"><l><option>my draggable?</option></l><block var="dragable"/></block></script><list></list></block><list></list></block><block s="doTellTo"><block var="b"/><block var="do"/><list></list></block></script></block></script><scripts><script x="234" y="1156.833333333334"><block s="doIf"><block s="reportNot"><block var="For"/></block><script><block s="doSetVar"><l>xy</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block></script><list></list></block><block s="doTellTo"><block var="b"/><block s="reifyScript"><script><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="xy"/></block><block s="reportListItem"><l>2</l><block var="xy"/></block></block></script><list></list></block><list></list></block></script></scripts></block-definition><block-definition s="$globe Add text %&apos;text&apos;" type="command" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Add a text to the server your currently in.&#xD;(Following all rules for the server)&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><variables><list struct="atomic" id="7012">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block><l>|</l></block><script><custom-block s="error %txt"><l>Error server can not contain “|”</l></custom-block></script><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Baned</l></list></custom-block><l>|</l></block><custom-block s="setting %s"><l>User</l></custom-block></block></block><script><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Text</l></list><block s="reportJoinWords"><list><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Text</l></list></custom-block><l>|</l><custom-block s="rule $globe"><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><block var="text"/></list></block></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="$gearBig-2-255-00-00 $globe Join server name %&apos;name&apos; password %&apos;in&apos; %&apos;Host&apos;" type="command" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Join in a server with a password as a rank. If you have already joined that server your rank will remain the same until promoted.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”&#xD;Don’t look in here by the way, it’s so much code.</comment><variables><list struct="atomic" id="7072">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s"></input><input type="%s" readonly="true"><options>Host&#xD;Guest&#xD;Monitor</options></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><custom-block s="$globe List of everyone that is baned on this server"></custom-block><custom-block s="setting %s"><l>User</l></custom-block></block></block><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doIf"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list></custom-block><l>|</l></block><custom-block s="setting %s"><l>User</l></custom-block></block><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>SevNam = a</l></block><list><block var="name"/></list></block><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>Rank = a</l></block><list><custom-block s="Rank of %txt in $globe"><custom-block s="setting %s"><l>User</l></custom-block></custom-block></list></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIfElse"><block s="reportNot"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list></custom-block><l>|</l></block><custom-block s="setting %s"><l>User</l></custom-block></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="Host"/><l>Host</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="Var $globeBig %s id %mult%s"><block var="name"/><list><l>HostPassWord</l></list></custom-block><block var="in"/></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>SevNam = a</l></block><list><block var="name"/></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>Rank = 3</l></block><list></list></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list><block s="reportJoinWords"><list><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l><custom-block s="setting %s"><l>User</l></custom-block><l>|</l><l>3</l></list></block></custom-block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Host"/><l>Monitor</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="Var $globeBig %s id %mult%s"><block var="name"/><list><l>MonitorPassWord</l></list></custom-block><block var="in"/></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>SevNam = a</l></block><list><block var="name"/></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>Rank = 2</l></block><list></list></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list><block s="reportJoinWords"><list><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l><custom-block s="setting %s"><l>User</l></custom-block><l>|</l><l>2</l></list></block></custom-block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Host"/><l>Guest</l></list></block><script><block s="doIf"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><block var="name"/><list><l>Passwords</l></list></custom-block><l>|</l></block><block var="in"/></block><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>SevNam = a</l></block><list><block var="name"/></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>Rank = 1</l></block><list></list></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list><block s="reportJoinWords"><list><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l><custom-block s="setting %s"><l>User</l></custom-block><l>|</l><l>1</l></list></block></custom-block></script><list></list></block></script><list></list></block></script><script></script></block><block s="doIf"><block var="a"/><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list></custom-block><l>|</l></block><custom-block s="setting %s"><l>User</l></custom-block></block></block><script><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list><block s="reportJoinWords"><list><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list></custom-block><l>|</l><custom-block s="setting %s"><l>User</l></custom-block></list></block></custom-block></script><list></list></block><custom-block s="$gearBig-2-255-00-00 Show pop up %txt text %txt"><l>Server joined</l><block s="reportJoinWords"><list><l>Server name:</l><custom-block s="$globe Server name"></custom-block><l> User I’d:</l><custom-block s="setting %s"><l>User</l></custom-block><l> Rank:</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>1</l></list></block><l>Guest</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>3</l></list></block><l>Host</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>2</l></list></block><l>Monitor</l><l>A error has occurred.</l></block></block></block></list></block></custom-block><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doAsk"><block s="reportJoinWords"><list><l>Server joined</l><custom-block s="My multiline %n"><l>1</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><block s="reportJoinWords"><list><l>Server name:</l><custom-block s="$globe Server name"></custom-block><l> User I’d:</l><custom-block s="setting %s"><l>User</l></custom-block><l> Rank:</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>1</l></list></block><l>Guest</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>3</l></list></block><l>Host</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>2</l></list></block><l>Monitor</l><l>A error has occurred.</l></block></block></block></list></block></list></block></block></script><list></list></block><list></list></block></script><list></list></block></script><list></list></block></script><scripts><script x="497" y="98.83333333333343"><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="name"/><l><option>number</option></l></block><block s="reportIsA"><block var="name"/><l><option>text</option></l></block></list></block><script></script><script><custom-block s="error %txt"><l>Error inside a ”Server name” block. The input is not text or number.</l></custom-block></script></block></script><script x="380" y="827.2"><custom-block s="$globe Promote %txt to %s"><l></l><l>1</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></script></scripts></block-definition><block-definition s="$globe Server name" type="reporter" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">The name of the server you are currently in.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return SevNam;</l></block><list></list></block></block></script></block-definition><block-definition s="$globe Initialize Server %&apos;Name&apos; with passwords %&apos;passes&apos; and host passwrord %&apos;hpass&apos; and monitor password %&apos;pa&apos;" type="command" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Creates a new server.&#xD;Note. This does not put you in the server or make you host. You still must use the “Join server” block to join it and become the host.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="passes"/><l></l></list></block><script><custom-block s="error %txt"><l>Must add at least one password</l></custom-block></script><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="Name"/><l><option>letter</option></l></block><l>|</l></block><script><custom-block s="error %txt"><l>Error server can not contain “|”</l></custom-block></script><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><l>Names</l><list><l>AI</l></list></custom-block><l>|</l></block><block var="Name"/></block><script><custom-block s="error %txt"><l>I am afraid this server already exists!</l></custom-block></script><script><custom-block s="Set Var $globeBig %s id %mult%s to %s"><l>Names</l><list><l>AI</l></list><block s="reportJoinWords"><list><custom-block s="Var $globeBig %s id %mult%s"><l>Names</l><list><l>AI</l></list></custom-block><l>|</l><block var="Name"/></list></block></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><block var="Name"/><list><l>HostPassWord</l></list><block var="hpass"/></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><block var="Name"/><list><l>MonitorPassWord</l></list><block var="pa"/></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><block var="Name"/><list><l>Passwords</l></list><custom-block s="Add %s to each item in %l"><l>|</l><block var="passes"/></custom-block></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="ABCs %&apos;if&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="119" collapsed="false">Lists the ABCs in different ways.&#xD;&#xD;It actually turned out to be extremely useful in making this project.</comment><variables><list struct="atomic" id="7707">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">LT<options>Uppercase={&#xD;List=UL&#xD;Text=UT&#xD;T e x t=U T&#xD;}&#xD;Lowercase={&#xD;List=LL&#xD;Text=LT&#xD;T e x t=L T&#xD;}</options></input></inputs><script><block s="doSetVar"><l>a</l><custom-block s="%s"><l>ABCDEFGHIJKLMNOPQRSTUVWXYZ</l></custom-block></block><block s="doSetVar"><l>b</l><custom-block s="to lower case %txt"><block var="a"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="if"/><l>UL</l></list></block><script><block s="doReport"><block s="reportTextSplit"><block var="a"/><l><option>letter</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="if"/><l>UT</l></list></block><script><block s="doReport"><block var="a"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="if"/><l>U T</l></list></block><script><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportTextSplit"><block var="a"/><l><option>letter</option></l></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="if"/><l>LL</l></list></block><script><block s="doReport"><block s="reportTextSplit"><block var="b"/><l><option>letter</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="if"/><l>LT</l></list></block><script><block s="doReport"><block var="b"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="if"/><l>L T</l></list></block><script><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportTextSplit"><block var="b"/><l><option>letter</option></l></block></custom-block></block></script><list></list></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="pen"><comment x="0" y="0" w="226" collapsed="false">The identity function reports its input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="Add %&apos;in&apos; to each item in %&apos;list&apos;" type="reporter" category="Operators2"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l></l></block><block s="doIfElse"><block s="reportIsA"><block var="list"/><l><option>list</option></l></block><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><block s="reportJoinWords"><list><block var="in"/><block s="reportListItem"><block var="i"/><block var="list"/></block></list></block></list></block></block></script></block><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><block s="reportJoinWords"><list><block var="in"/><block var="list"/></list></block></list></block></block></script></block></script></block-definition><block-definition s="Server $globe rules: %&apos;G&apos;" type="command" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Change the rules for a server.&#xD;Currently this block changes these rules:&#xD;1.What will be next to a text when sent.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">ClickThis<options>Use user name before text=a&#xD;Use user name and time before text=b&#xD;Use time before text=c&#xD;Use user rank before text=d&#xD;Use user rank and time before text=e&#xD;Use user rank and user name before text=f&#xD;Use user rank and user name and time before text=g&#xD;Don’t use any thing before text=h</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="Rank $globe"></custom-block><l>3</l></list></block><script><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Rules</l></list><block var="G"/></custom-block></script><list></list></block></script></block-definition><block-definition s="My multiline %&apos;num&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="90" collapsed="false">The number input is how many multilines the reporter will report.</comment><variables><list struct="atomic" id="7896">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doSetVar"><l>b</l><block var="num"/></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="num"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportVariadicEquals"><list><block var="num"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></list></block><block s="reportVariadicEquals"><list><block var="num"/><l></l></list></block></list></block><script><block s="doReport"><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block></block></script><script><block s="doIf"><block s="reportIsA"><block var="num"/><l><option>list</option></l></block><script><block s="doSetVar"><l>b</l><block s="reportListAttribute"><l><option>length</option></l><block var="num"/></block></block></script><list></list></block><block s="doSetVar"><l>a</l><l></l></block><block s="doRepeat"><block var="b"/><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/><custom-block s="multiline %mlt"><l>&#xD;</l></custom-block></list></block></block></script></block><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="Rank $globe" type="reporter" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Current rank on this server.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block></block></script></block-definition><block-definition s="rule $globe" type="reporter" category="Online"><variables><list struct="atomic" id="7987">a,b</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>a</l><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Rules</l></list></custom-block></block><block s="doSetVar"><l>b</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>1</l></list></block><l>Guest</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>3</l></list></block><l>Host</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Rank;</l></block><list></list></block><l>2</l></list></block><l>Monitor</l><l>A error has occurred.</l></block></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><l>a</l></list></block><script><block s="doSetVar"><l>a</l><custom-block s="setting %s"><l>User</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><l>b</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><custom-block s="setting %s"><l>User</l></custom-block><l> Time:</l><custom-block s="Current Date"></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><l>c</l></list></block><script><block s="doSetVar"><l>a</l><custom-block s="Current Date"></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><l>d</l></list></block><script><block s="doSetVar"><l>a</l><block var="b"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><l>e</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="b"/><l> Time:</l><custom-block s="Current Date"></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><l>f</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="b"/><l> </l><custom-block s="setting %s"><l>User</l></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><l>g</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="b"/><l> </l><custom-block s="setting %s"><l>User</l></custom-block><l> Time:</l><custom-block s="Current Date"></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="a"/><l>ERROR: file does not exist</l></list></block><block s="reportVariadicEquals"><list><block var="a"/><l>h</l></list></block></list></block><script><block s="doSetVar"><l>a</l><l></l></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l>:</l></list></block></block></script></block-definition><block-definition s="Current Date" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>month</l><l>hour</l><l>minute</l><l>second</l><l>day</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>month</l><block s="reportDate"><l><option>month</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="month"/><l>10</l></list></block><script><block s="doSetVar"><l>month</l><block s="reportJoinWords"><list><l>0</l><block var="month"/></list></block></block></script><list></list></block><block s="doSetVar"><l>day</l><block s="reportDate"><l><option>date</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="day"/><l>10</l></list></block><script><block s="doSetVar"><l>day</l><block s="reportJoinWords"><list><l>0</l><block var="day"/></list></block></block></script><list></list></block><block s="doSetVar"><l>hour</l><block s="reportDate"><l><option>hour</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hour"/><l>10</l></list></block><script><block s="doSetVar"><l>hour</l><block s="reportJoinWords"><list><l>0</l><block var="hour"/></list></block></block></script><list></list></block><block s="doSetVar"><l>minute</l><block s="reportDate"><l><option>minute</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="minute"/><l>10</l></list></block><script><block s="doSetVar"><l>minute</l><block s="reportJoinWords"><list><l>0</l><block var="minute"/></list></block></block></script><list></list></block><block s="doSetVar"><l>second</l><block s="reportDate"><l><option>second</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="second"/><l>10</l></list></block><script><block s="doSetVar"><l>second</l><block s="reportJoinWords"><list><l>0</l><block var="second"/></list></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportDate"><l><option>year</option></l></block><l>-MM </l><block var="month"/><l>-DD </l><block var="day"/><l> Time:</l><block var="hour"/><l>:</l><block var="minute"/><l>:</l><block var="second"/></list></block></block></script></block></script></block-definition><block-definition s="$globe Promote %&apos;name&apos; to %&apos;ti&apos;" type="command" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">If you’re the host you can promote someone to something.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><variables><list struct="atomic" id="8371">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s" readonly="true"><options>Host=3&#xD;Monitor=2&#xD;Guest=1</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="Rank $globe"></custom-block><l>3</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l></block></block><block s="doSetVar"><l>b</l><block s="reportListIndex"><block var="name"/><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l></block></block></block><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="b"/><l>1</l></list></block><block var="a"/><block var="ti"/></block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list><block s="reportJoinWords"><list><custom-block s="Add %s to each item in %l"><l>|</l><block var="a"/></custom-block></list></block></custom-block></script><list></list></block></script></block-definition><block-definition s="$globe List of everyone that has joined this server" type="reporter" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Gives a list of everyone who has joined the server.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list></custom-block><l>|</l></block></block></script></block-definition><block-definition s="Rank of %&apos;d&apos; in $globe" type="reporter" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">The rank of “input” in the current server.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="d"/><l></l></list></block><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListIndex"><custom-block s="setting %s"><l>User</l></custom-block><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l></block></block><l>1</l></list></block><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l></block></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListIndex"><block var="d"/><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l></block></block><l>1</l></list></block><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list></custom-block><l>|</l></block></block></block></script></block></script></block-definition><block-definition s="$globe Clear Server %&apos;r&apos; ’s %&apos;f&apos;" type="command" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Clears something in a specific server.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s" readonly="true"><options>Everything=1&#xD;People who have joined=2&#xD;Texts=3</options></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="Rank $globe"></custom-block><l>3</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="f"/><l>1</l></list></block><script><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list><l></l></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list><l></l></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Baned</l></list><l></l></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Text</l></list><l></l></custom-block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><l>Names</l><list><l>AI</l></list></custom-block><l>|</l></block></block><block s="doReplaceInList"><block s="reportListIndex"><block var="name"/><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><l>Names</l><list><l>AI</l></list></custom-block><l>|</l></block></block><block var="a"/><block s="reportJoinWords"><list><l>DELETED SERVER/</l><custom-block s="$globe Server name"></custom-block></list></block></block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><l>Names</l><list><l>AI</l></list><block s="reportJoinWords"><list><custom-block s="Add %s to each item in %l"><l>|</l><block var="a"/></custom-block></list></block></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>HostPassWord</l></list><l></l></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>MonitorPassWord</l></list><l></l></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Passwords</l></list><l></l></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>SevNam = a</l></block><list><l></l></list></block><block s="doRun"><block s="reportJSFunction"><list></list><l>Rank = 0</l></block><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="f"/><l>2</l></list></block><script><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>RFU</l></list><l></l></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Ev</l></list><l></l></custom-block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Baned</l></list><l></l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="f"/><l>3</l></list></block><script><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Text</l></list><l></l></custom-block></script><list></list></block></script><list></list></block></script></block-definition><block-definition s="$globe All texts in %&apos;see&apos;" type="reporter" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">All the text in a server.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><block var="see"/><list><l>Text</l></list></custom-block><l>|</l></block></block></script></block-definition><block-definition s="$globe Ban user %&apos;user&apos;" type="command" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Bans someone from the server.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><variables><list struct="atomic" id="8729">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportListContainsItem"><custom-block s="$globe List of everyone that has joined this server"></custom-block><block var="user"/></block><script><block s="doSetVar"><l>a</l><l>0</l></block><custom-block s="$globe Promote %txt to %s"><block var="user"/><block var="a"/><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></script><list></list></block><custom-block s="Set Var $globeBig %s id %mult%s to %s"><custom-block s="$globe Server name"></custom-block><list><l>Baned</l></list><block s="reportJoinWords"><list><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Baned</l></list></custom-block><l>|</l><block var="user"/></list></block></custom-block></script></block-definition><block-definition s="$globe List of everyone that is baned on this server" type="reporter" category="Online"><comment x="0" y="0" w="187.083984375" collapsed="false">Gives a list of everyone who is banned from the server.&#xD;&#xD;Part of the “JGlobe Easy Server Blocks”</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportTextSplit"><custom-block s="Var $globeBig %s id %mult%s"><custom-block s="$globe Server name"></custom-block><list><l>Baned</l></list></custom-block><l>|</l></block></block></script></block-definition><block-definition s="Add %&apos;Cos&apos; to %&apos;jhh&apos; ’s costumes %&apos;CostumeName&apos;" type="command" category="looks"><comment x="0" y="0" w="167.58164062499998" collapsed="false">Adds “input1” to “input2”s costume list. Reports name of that costume to.</comment><variables><list struct="atomic" id="8780">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"><options>§_objectsMenu</options></input><input type="%upvar"></input></inputs><script><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="reportAttributeOf"><l><option>costume #</option></l><block var="jhh"/></block></block><block s="doTellTo"><block var="jhh"/><block s="reifyScript"><script><block s="doWarp"><script><block s="doAddToList"><block var="Cos"/><block s="reportGet"><l><option>costumes</option></l></block></block><block s="doSwitchToCostume"><block var="Cos"/></block><block s="doSetVar"><l>b</l><block s="reportAttributeOf"><l><option>costume name</option></l><block var="jhh"/></block></block><block s="doSwitchToCostume"><block var="a"/></block></script></block></script><list></list></block><list></list></block><block s="doSetVar"><l>CostumeName</l><block var="b"/></block></script></block></script><scripts><script x="177.2392578125" y="295.99999999999994"><block s="reportAskFor"><block var="jhh"/><block s="reportAttributeOf"><l><option>costume name</option></l><block var="Cos"/></block><list></list></block></script></scripts></block-definition><block-definition s="costume %&apos;thing&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>number&#xD;name</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="thing"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="costume %s"><l></l></custom-block></autolambda><list></list></block><block var="thing"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="thing"/><l>number</l></list></block><block s="getCostumeIdx"></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="thing"/><l>name</l></list></block><custom-block s="costume name"></custom-block><l></l></block></block></block></block></script></block-definition><block-definition s="Go to random position without going off screen" type="command" category="motion"><comment x="0" y="0" w="204" collapsed="false">Stops half of an object from going off the screen. Basically a pixel of the object’s costume will never go off the screen.&#xD;&#xD;The way it works is basically this: it finds the width of the object and subtracts half of that from the stage’s width (in a way) and picks random from that value to the same value but positive and repeats for the y.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="gotoXY"><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportQuotient"><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block><l>2</l></block></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block><block s="reportQuotient"><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block><l>2</l></block></block></block><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><l>Stage</l></block><block s="reportQuotient"><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block><l>2</l></block></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportQuotient"><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block><l>2</l></block></block></block></block></script></block-definition><block-definition s="Visible %&apos;v&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block var="v"/><script><block s="show"></block></script><script><block s="hide"></block></script></block></script></block-definition><block-definition s="namey %&apos;name&apos;" type="reporter" category="Sprites"><comment x="0" y="0" w="163.5" collapsed="false">I was going to hide this block from you but I like it to much.&#xD;&#xD;Make a duplicate of this block and change the coding of it, if you would like.&#xD;&#xD;If the input name is already used by a sprite then it will add (2) if that is used then instead it will add (3) and so on.</comment><variables><list struct="atomic" id="8945">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="name"/><l>Stage</l></list></block></block><script><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doForEach"><l>item</l><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><block s="reportAskFor"><block var="item"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block></list></block><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doIf"><block s="reportNot"><block var="a"/></block><script><block s="doChangeVar"><l>b</l><l>1</l></block></script><list></list></block><block s="doUntil"><block var="a"/><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>item</l><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block var="name"/><l>(</l><block var="b"/><l>)</l></list></block><block s="reportAskFor"><block var="item"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block></list></block><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doIf"><block s="reportNot"><block var="a"/></block><script><block s="doChangeVar"><l>b</l><l>1</l></block></script><list></list></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="b"/><l>1</l></list></block><script><block s="doReport"><block var="name"/></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="name"/><l>(</l><block var="b"/><l>)</l></list></block></block></script></block></script></block></script><list></list></block></script></block-definition><block-definition s="All sprites" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="String editer %&apos;in&apos; %&apos;kind&apos; %&apos;in2&apos; %&apos;in3&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="111" collapsed="false">This block contains a bunch of functions. &#xD;&#xD;Mostly made of blocks from snap’s library, so press edit on this block to get help on the individual blocks.&#xD;&#xD;NOTE. Input 2 isn’t used sometimes.&#xD;NOTE. Input 3 is rarely used.</comment><variables><list struct="atomic" id="9138">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%s" readonly="true"><options>empty word?=1&#xD;join words=2&#xD;list -&gt; sentence=3&#xD;sentence -&gt; list=5&#xD;word -&gt; list=6&#xD;list -&gt; word=7&#xD;first letter of=8&#xD;substring of __ before __=9&#xD;substring of __ after __=10&#xD;position of __ in __=11&#xD;substring of __ from position __ to position __ inclusive=12&#xD;text __ contains __=13&#xD;to lowercase __=14&#xD;to uppercase __=15&#xD;__ scalar join __=16&#xD;__scalar (function) __={&#xD;equal=17a&#xD;not equal=17b&#xD;identical to=17c&#xD;and=17d&#xD;or=17e&#xD;is__a__=17f&#xD;}</options></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="empty word? %txt"><block var="in"/></custom-block></block></list></block><custom-block s="bool %s %s"><custom-block s="Join %s"><custom-block s="empty word? %txt"><block var="in"/></custom-block></custom-block><l>text to bool</l></custom-block><custom-block s="empty word? %txt"><block var="in"/></custom-block></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><list><block var="in"/></list></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block var="in"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="in"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="sentence $arrowRight list %txt"><block var="in"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="word $arrowRight list %txt"><block var="in"/></custom-block><comment w="90" collapsed="false">Not quite sure why this is useful.  &#xD;&#xD;:(</comment></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="list $arrowRight word %l"><block var="in"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="empty word? %txt"><block var="in"/></custom-block></block></list></block><custom-block s="Join %s"><custom-block s="first letter of %txt"><block var="in"/></custom-block></custom-block><custom-block s="first letter of %txt"><block var="in"/></custom-block></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="substring of %txt before %txt"><block var="in"/><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="substring of %txt after %txt"><block var="in"/><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="position of %s in %txt"><custom-block s="Join %s"><block var="in"/></custom-block><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="in"/><block var="in2"/><block var="in3"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="text %txt contains %txt"><block var="in"/><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="to lower case %txt"><custom-block s="Join %s"><block var="in"/></custom-block></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doDeclareVariables"><list><l>G</l></list></block><block s="doSetVar"><l>G</l><block s="reportIsA"><block var="in"/><l><option>text</option></l></block></block><block s="doIfElse"><block var="G"/><script><block s="doReport"><custom-block s="to uppercase %txt"><custom-block s="Join %s"><custom-block s="Join %s"><custom-block s="Join %s"><block var="in"/></custom-block></custom-block></custom-block></custom-block></block></script><script><block s="doReport"><custom-block s="to uppercase %txt"><custom-block s="Restructure %s"><block var="in"/><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable><variable name="c"><l>0</l></variable></variables></custom-block></custom-block></block></script></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block var="a"/></list></block><script><block s="doReport"><custom-block s="%s scalar join %s"><block var="in"/><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doDeclareVariables"><list><l>b</l></list></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block s="reportJoinWords"><list><block var="a"/><block s="reportLetter"><block var="b"/><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></block></list></block></list></block><script><block s="doReport"><custom-block s="%s scalar %s %s"><block var="in"/><l>﹦</l><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>b</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block s="reportJoinWords"><list><block var="a"/><block s="reportLetter"><block var="b"/><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></block></list></block></list></block><script><block s="doReport"><custom-block s="%s scalar %s %s"><block var="in"/><l>≠</l><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>b</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block s="reportJoinWords"><list><block var="a"/><block s="reportLetter"><block var="b"/><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></block></list></block></list></block><script><block s="doReport"><custom-block s="%s scalar %s %s"><block var="in"/><l>identical to</l><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>b</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block s="reportJoinWords"><list><block var="a"/><block s="reportLetter"><block var="b"/><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></block></list></block></list></block><script><block s="doReport"><custom-block s="%s scalar %s %s"><block var="in"/><l>and</l><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>b</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block s="reportJoinWords"><list><block var="a"/><block s="reportLetter"><block var="b"/><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></block></list></block></list></block><script><block s="doReport"><custom-block s="%s scalar %s %s"><block var="in"/><l>or</l><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>b</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><block s="reportJoinWords"><list><block var="a"/><block s="reportLetter"><block var="b"/><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block></block></list></block></list></block><script><block s="doReport"><custom-block s="%s scalar %s %s"><block var="in"/><l>is _ a _?</l><block var="in2"/></custom-block></block></script><list></list></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block-definition><block-definition s="Join %&apos;in&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="142" collapsed="false">I don’t know about you but if there is one thing I absolutely hate it’s when I have a list that I want to be a number so I go get a join block but I haft to press the small arrow to turn it into a one slot join block. So I made this. A one slot join block. I am going to be using this block a lot.&#xD;&#xD;Manly used for joining a list into one text.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="in"/></list></block></block></script></block-definition><block-definition s="Value %&apos;val&apos; %&apos;minmax&apos; %&apos;val2&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="178" collapsed="false">Not quite sure how to explain this block so just fiddle with it for a bit.&#xD;&#xD;Reports “input1” min/max “input2”&#xD;&#xD;Example: 5 min 3 = 5 &#xD;Example2: 2 min 3 = 3 because it has to be a minimum of 3.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s" readonly="true">Max<options>Min&#xD;Max</options></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="minmax"/><l>Max</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="val"/><block var="val2"/></list></block><block var="val"/><block var="val2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="minmax"/><l>Min</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="val2"/><block var="val"/></list></block><block var="val"/><block var="val2"/></block></block></script><list></list></block></script></block-definition><block-definition s="Min %&apos;min&apos; $—-1-255-255-0 %&apos;value&apos; $—-1-255-255-0 %&apos;max&apos; Max" type="reporter" category="Operators2"><comment x="0" y="0" w="90" collapsed="false">The middle value must be in between the two outer values.&#xD;&#xD;The middle value must be a minimum of value 1 and a maximum of value 2&#xD;&#xD;Made using my min man max blocks put together.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="Value %n %s %n"><custom-block s="Value %n %s %n"><block var="value"/><l>Min</l><block var="min"/></custom-block><l>Max</l><block var="max"/></custom-block></block></script></block-definition><block-definition s="to uppercase %&apos;in&apos;" type="reporter" category="Operators2"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="in"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="to uppercase %txt"><l></l></custom-block></autolambda><list></list></block><block var="in"/></block></block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block><l>1</l></list></block></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="to uppercase %txt"><l></l></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></block></script><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><l><option>letter</option></l></block><custom-block s="String editer %mult%s %s %s %s"><list><block var="in"/></list><l>14</l><l></l><l></l><variables><variable name="a"><l>0</l></variable></variables></custom-block></block><script><block s="doReport"><block s="reportListItem"><custom-block s="String editer %mult%s %s %s %s"><list><custom-block s="String editer %mult%s %s %s %s"><list><block var="in"/></list><l>14</l><l></l><l></l><variables><variable name="a"><l>0</l></variable></variables></custom-block></list><l>11</l><custom-block s="ABCs %s"><l>LT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><l></l><variables><variable name="a"><l>0</l></variable></variables></custom-block><block s="reportTextSplit"><custom-block s="ABCs %s"><l>UT</l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><l><option>letter</option></l></block></block></block></script><script><block s="doReport"><block var="in"/></block></script></block></script></block></script></block></script><scripts><script x="284.6416015625" y="62.666666666666615"><block s="reportIsA"><l>5</l><l><option>list</option></l></block></script></scripts></block-definition><block-definition s="Restructure %&apos;in&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="90" collapsed="false">I created this block to “restructure” my “to uppercase” block because sometimes what the “to uppercase” reports is kinda messy this block organizes it.</comment><variables><list struct="atomic" id="9875">a,b,c</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportListAttribute"><l><option>length</option></l><block var="in"/></block></block><block s="doSetVar"><l>b</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>c</l><l>1</l></block><block s="doRepeat"><block var="a"/><script><block s="doAddToList"><custom-block s="Join %s"><block s="reportListItem"><block var="c"/><block var="in"/></block></custom-block><block var="b"/></block><block s="doChangeVar"><l>c</l><l>1</l></block></script></block><block s="doReport"><block var="b"/></block></script></block-definition><block-definition s="%&apos;Im&apos; &lt; %&apos;d&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicLessThan"><list><block var="Im"/><block var="d"/></list></block></block></script></block-definition><block-definition s="%&apos;Im&apos; &gt; %&apos;d&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block var="Im"/><block var="d"/></list></block></block></script></block-definition><block-definition s="%&apos;Im&apos; = %&apos;d&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="Im"/><block var="d"/></list></block></block></script></block-definition><block-definition s="%&apos;D&apos; $|-1-255-0-0 %&apos;X&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block var="D"/><block var="X"/></list></block></block></script></block-definition><block-definition s="%&apos;cvc&apos; $&amp;-1-255-0-0 %&apos;dd&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block var="cvc"/><block var="dd"/></list></block></block></script></block-definition><block-definition s="$—-1-255-0-0 %&apos;s&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doReport"><block s="reportNot"><block var="s"/></block></block></script></block-definition><block-definition s="%&apos;sprite&apos; ‘s costume" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="%&apos;JNan&apos; $/—\-1-255-0-0 %&apos;Ggg&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><custom-block s="%b $&amp;-1-255-0-0 %b"><custom-block s="$—-1-255-0-0 %b"><block var="JNan"/></custom-block><custom-block s="$—-1-255-0-0 %b"><block var="Ggg"/></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;dd&apos; $|=|-1-255-0-0 %&apos;Gff&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><custom-block s="%s = %s"><block var="dd"/><block var="Gff"/></custom-block></block></script></block-definition><block-definition s="%&apos;Ff&apos; $\|\-1-255-0-0 %&apos;ggff&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b">false</input><input type="%b">true</input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="%b $&amp;-1-255-0-0 %b"><custom-block s="%b $|=|-1-255-0-0 %b"><block var="Ff"/><custom-block s="%b"><l><bool>false</bool></l></custom-block></custom-block><custom-block s="%b $|=|-1-255-0-0 %b"><block var="ggff"/><custom-block s="%b"><l><bool>true</bool></l></custom-block></custom-block></custom-block><custom-block s="%b"><l><bool>true</bool></l></custom-block><custom-block s="%b"><l><bool>false</bool></l></custom-block></block></block></script></block-definition><block-definition s="%&apos;Ff&apos; $/|/-1-255-0-0 %&apos;ggff&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b">true</input><input type="%b">false</input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="%b $&amp;-1-255-0-0 %b"><custom-block s="%b $|=|-1-255-0-0 %b"><block var="Ff"/><custom-block s="%b"><l><bool>true</bool></l></custom-block></custom-block><custom-block s="%b $|=|-1-255-0-0 %b"><block var="ggff"/><custom-block s="%b"><l><bool>false</bool></l></custom-block></custom-block></custom-block><custom-block s="%b"><l><bool>true</bool></l></custom-block><custom-block s="%b"><l><bool>false</bool></l></custom-block></block></block></script></block-definition><block-definition s="%&apos;TORF&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doReport"><block var="TORF"/></block></script></block-definition><block-definition s="$J8Bit-1-255-0-0 %&apos;tf&apos; %&apos;tfa&apos; %&apos;tfb&apos; %&apos;tfc&apos; %&apos;tfd&apos; %&apos;tfe&apos; %&apos;tff&apos; %&apos;tfg&apos; $2BitTypeChanger-0.7-255-0-0 %&apos;neg&apos; %&apos;char&apos;" type="reporter" category="JBit operators"><comment x="0" y="0" w="142" collapsed="false">This block reports a number using binary code ( 1s and 0s )&#xD;Just like how a computer reads numbers using wires that have electricity or not ( true &amp; false )&#xD;Feel free to look up “binary numbers” on the internet to learn more.&#xD;&#xD;The first bool is 1 the second means 2 the third means 4 and the forth mean 8 and so on.&#xD;Example: If the first is false and the second is true and the third is true and the forth is false then that means the 2 &amp; 4 are true so it will report 6. &#xD; &#xD;Basically every bool is the last bool times 2. Here’s a chart.&#xD;&#xD;B B B B B  B   B    B &#xD;1 2  4 8 16 32 64 128&#xD;&#xD;NOTE: The bools are backwards from actual binary.&#xD;Actual binary code:&#xD;&#xD; B    B  B   B B B B B &#xD;128 64 32 16 8 4 2  1 &#xD;&#xD;And every ‘true’ bool adds it’s value to the outcome&#xD;T=true F=false&#xD;My blocks:&#xD;FTTFTTFF or 01101100 =  54&#xD;Actual binary code:&#xD;FFTTFTTF or 00110110 = 54</comment><variables><list struct="atomic" id="10049">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doSetVar"><l>a</l><l>0</l></block><block s="doIf"><block var="tf"/><script><block s="doChangeVar"><l>a</l><l>1</l></block></script><list></list></block><block s="doIf"><block var="tfa"/><script><block s="doChangeVar"><l>a</l><l>2</l></block></script><list></list></block><block s="doIf"><block var="tfb"/><script><block s="doChangeVar"><l>a</l><l>4</l></block></script><list></list></block><block s="doIf"><block var="tfc"/><script><block s="doChangeVar"><l>a</l><l>8</l></block></script><list></list></block><block s="doIf"><block var="tfd"/><script><block s="doChangeVar"><l>a</l><l>16</l></block></script><list></list></block><block s="doIf"><block var="tfe"/><script><block s="doChangeVar"><l>a</l><l>32</l></block></script><list></list></block><block s="doIf"><block var="tff"/><script><block s="doChangeVar"><l>a</l><l>64</l></block></script><list></list></block><block s="doIf"><block var="tfg"/><script><block s="doChangeVar"><l>a</l><l>128</l></block></script><list></list></block><block s="doIf"><block var="neg"/><script><block s="doSetVar"><l>a</l><block s="reportMonadic"><l><option>neg</option></l><block var="a"/></block></block></script><list></list></block><block s="doIf"><block var="char"/><script><block s="doSetVar"><l>a</l><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><custom-block s="Value %n %s %n"><block var="a"/><l>Max</l><l>94</l></custom-block><l>32</l></list></block></block></block></script><list></list></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="$J♾Bit-1-255-0-0 %&apos;Tf&apos; $2BitTypeChanger-0.7-255-0-0 %&apos;neg&apos; %&apos;char&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="10161">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%mult%b"></input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doSetVar"><l>a</l><l>0</l></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="Tf"/></block><script><block s="doChangeVar"><l>a</l><block s="reportVariadicProduct"><list><block var="b"/><custom-block s="sign $×-1-255-255-0 %n"><block s="reportListItem"><block var="i"/><block var="Tf"/></block></custom-block></list></block></block><block s="doSetVar"><l>b</l><block s="reportVariadicProduct"><list><block var="b"/><l>2</l></list></block></block></script></block><block s="doIf"><block var="neg"/><script><block s="doSetVar"><l>a</l><block s="reportMonadic"><l><option>neg</option></l><block var="a"/></block></block></script><list></list></block><block s="doIf"><block var="char"/><script><block s="doSetVar"><l>a</l><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block var="a"/><l>32</l></list></block></block></block></script><list></list></block><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="$J♾Bit-1-255-0-0 %&apos;Ft&apos; $2BitTypeChanger-0.7-255-0-0 %&apos;neg&apos; %&apos;char&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="10233">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doSetVar"><l>a</l><l>0</l></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="Ft"/></block><script><block s="doChangeVar"><l>a</l><block s="reportVariadicProduct"><list><block var="b"/><custom-block s="sign $×-1-255-255-0 %n"><block s="reportListItem"><block var="i"/><block var="Ft"/></block></custom-block></list></block></block><block s="doSetVar"><l>b</l><block s="reportVariadicProduct"><list><block var="b"/><l>2</l></list></block></block></script></block><block s="doIf"><block var="neg"/><script><block s="doSetVar"><l>a</l><block s="reportMonadic"><l><option>neg</option></l><block var="a"/></block></block></script><list></list></block><block s="doIf"><block var="char"/><script><block s="doSetVar"><l>a</l><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block var="a"/><l>32</l></list></block></block></block></script><list></list></block><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="$—-1-255-0-0 %&apos;in&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>neg</option></l><block var="in"/></block></block></script></block-definition><block-definition s="$?-1-0-0-255 %&apos;tf&apos; %&apos;?&apos; %&apos;if&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doIf"><block var="tf"/><script><block s="doRun"><block var="if"/><list></list></block></script><list></list></block><block s="doSetVar"><l>?</l><block s="reportIfElse"><block var="tf"/><block var="if"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block><block s="doReport"><block var="tf"/></block></script></block-definition><block-definition s="$Hold-2-0-255-0 %&apos;ins&apos; %&apos;J&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%mult%repRing"></input><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>J</l><custom-block s="jboa1 %s"><block var="ins"/><variables><variable name="a"><l>0</l></variable></variables></custom-block></block><block s="doReport"><block var="ins"/></block></script></block-definition><block-definition s="$Var-1-0-0-255 %&apos;Var&apos; = %&apos;in&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doIfElse"><custom-block s="ALLVARSEXSIST"></custom-block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="Var"/><block var="in"/></list></block><block s="doReport"><block var="Var"/></block></script><script><block s="doStopThis"><l><option>all but this script</option></l></block><custom-block s="error %txt"><l>ERROR: ALLVARS does not exist! I suggest placing all JBit scripts inside a HOLD block.</l></custom-block></script></block></script></block-definition><block-definition s="$New-1-0-0-255 $Var-1-0-0-255 %&apos;type&apos; %&apos;name&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="10365">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>global&#xD;sprite&#xD;script</options></input><input type="%s"></input></inputs><script><block s="doIfElse"><custom-block s="ALLVARSEXSIST"></custom-block><script><block s="doSetVar"><l>a</l><block var="name"/></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doIfElse"><custom-block s="does var %s exist?"><block var="a"/></custom-block><script><block s="doUntil"><block s="reportNot"><custom-block s="does var %s exist?"><block var="a"/></custom-block></block><script><block s="doChangeVar"><l>b</l><l>1</l></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="name"/><l>(</l><block var="b"/><l>)</l></list></block></block></script></block><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="type"/><block var="a"/></list></block><block s="doAddToList"><block var="a"/><custom-block s="ALLVARS"></custom-block></block><block s="doReport"><block var="a"/></block></script><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="type"/><block var="name"/></list></block><block s="doAddToList"><block var="name"/><custom-block s="ALLVARS"></custom-block></block><block s="doReport"><block var="name"/></block></script></block></script><script><block s="doStopThis"><l><option>all but this script</option></l></block><custom-block s="error %txt"><l>ERROR: ALLVARS does not exist! I suggest placing all JBit scripts inside a HOLD block.</l></custom-block></script></block></script></block-definition><block-definition s="$DeleteAllVars-0.7-0-0-255" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><l>0</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="ALLVARS"></custom-block></block></list></block><script><block s="doWarp"><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="ALLVARS"></custom-block></block><script><custom-block s="delete var %mult%txt"><list><block s="reportListItem"><block var="i"/><custom-block s="ALLVARS"></custom-block></block></list></custom-block></script></block><custom-block s="set var %s to %s"><l>ALLVARS</l><block s="reportNewList"><list></list></block></custom-block></script></block><block s="doReport"><custom-block s="%b"><l><bool>true</bool></l></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%b"><l><bool>false</bool></l></custom-block></block></script></block-definition><block-definition s="ALLVARSEXSIST" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="does var %s exist?"><l>ALLVARS</l></custom-block></block></script></block-definition><block-definition s="ALLVARS" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="var %s"><l>ALLVARS</l></custom-block></block></script></block-definition><block-definition s="jboa1 %&apos;in&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="10502">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="in"/><script><block s="doAddToList"><block s="evaluate"><block var="item"/><list></list></block><block var="a"/></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="primitives" type="reporter" category="Other"><comment x="0" y="0" w="161" collapsed="false">Click the gear that is next to the cloud that is next to the file.&#xD;The gear up there yeah that one &#xD;📄☁️⚙️&lt;-&#xD;&#xD;Click it and press “Extension blocks”&#xD;then these primitives will appear in the variables section.&#xD;&#xD;If you didn’t follow along just copy these. (Press edit to copy them)&#xD;&#xD;Primitives are very helpful.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doApplyExtension"><l></l><list><l></l></list></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l></l><list><l></l></list></block></autolambda><list></list></block></list></block></block></script></block-definition><block-definition s="Is %&apos;ccc&apos; touching %&apos;t&apos;" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportAskFor"><block var="ccc"/><block s="reifyReporter"><autolambda><block s="reportTouchingObject"><block var="t"/></block></autolambda><list></list></block><list></list></block></block></script></block-definition><block-definition s="INITIATE J BIT OPERATORS" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doIfElse"><custom-block s="does var %s exist?"><l>ALLVARS</l></custom-block><script><block s="doAddToList"><block s="reportBoolean"><l><bool>true</bool></l></block><block var="a"/></block></script><script><custom-block s="create %s var %mult%txt"><l>global</l><list><l>ALLVARS</l></list></custom-block><custom-block s="set var %s to %s"><l>ALLVARS</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reportBoolean"><l><bool>false</bool></l></block><block var="a"/></block></script></block><block s="doIfElse"><custom-block s="does var %s exist?"><l>ALLBLOCKS</l></custom-block><script><block s="doAddToList"><block s="reportBoolean"><l><bool>true</bool></l></block><block var="a"/></block></script><script><custom-block s="create %s var %mult%txt"><l>global</l><list><l>ALLBLOCKS</l></list></custom-block><custom-block s="set var %s to %s"><l>ALLBLOCKS</l><block s="reportNewList"><list></list></block></custom-block><block s="doAddToList"><block s="reportBoolean"><l><bool>false</bool></l></block><block var="a"/></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="Make a block %&apos;name&apos; %&apos;func&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%repRing"></input></inputs><script><block s="doIf"><custom-block s="does var %s exist?"><l>ALLBLOCKS</l></custom-block><script><block s="doAddToList"><block var="name"/><custom-block s="var %s"><l>ALLBLOCKS</l></custom-block></block><block s="doAddToList"><block var="func"/><custom-block s="var %s"><l>ALLBLOCKS</l></custom-block></block></script><list></list></block><block s="doReport"><block var="func"/></block></script></block-definition><block-definition s="%&apos;A&apos; ➗ %&apos;d&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="256" collapsed="false">Makes the computer perform long division.&#xD;Answer of long division      Remainder &#xD;                 #                   R          #</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportQuotient"><block s="reportDifference"><block var="A"/><block s="reportModulus"><block var="A"/><block var="d"/></block></block><block var="d"/></block><l>R</l><block s="reportModulus"><block var="A"/><block var="d"/></block></list></block></block></script><scripts><script x="33" y="700.8333333333335"><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>e</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doSetVar"><l>c</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>e</l><l>1</l></block><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="A"/><l><option>letter</option></l></block></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="d"/><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportVariadicSum"><list><block var="b"/><l>1</l></list></block><block s="reportListIndex"><l>thing</l><l/></block></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="A"/><l><option>letter</option></l></block></block></list></block><script><block s="doSetVar"><l>e</l><l>1</l></block><block s="doUntil"><block var="c"/><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="b"/><block s="reportTextSplit"><l>hello world</l><l><option>letter</option></l></block></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block var="e"/></list></block><block var="d"/></list></block></list></block><script><block s="doSetVar"><l>c</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doChangeVar"><l>e</l><l>1</l></block></script></block></script></block></script><script><block s="doChangeVar"><l>b</l><l>1</l></block></script></block></script></block></script><script x="158" y="493.66666666666646"><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l></list></block><block s="doSetVar"><l>a</l><block var="A"/></block><block s="doSetVar"><l>c</l><l>0</l></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block var="a"/><block var="d"/></list></block><script><block s="doSetVar"><l>a</l><block s="reportRound"><block s="reportDifference"><block var="a"/><block var="d"/></block></block></block><block s="doChangeVar"><l>c</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block var="a"/><block var="d"/></list></block><script><block s="doSetVar"><l>a</l><block s="reportRound"><block s="reportDifference"><block var="a"/><block var="d"/></block></block></block><block s="doChangeVar"><l>c</l><l>1</l></block></script><list></list></block><block s="doSetVar"><l>b</l><block var="a"/></block></script></scripts></block-definition><block-definition s="Decimal %&apos;??.&apos; to binary %&apos;inf&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s" readonly="true"><options>1s &amp; 0s&#xD;true &amp; false</options></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>b</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>a</l><block var="??."/></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block var="a"/><l>2</l></list></block><script><block s="doAddToList"><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportQuotient"><block var="a"/><l>2</l></block><l><option>letter</option></l></block><l>.</l></block><l>1</l><l>0</l></block><block var="b"/></block><block s="doSetVar"><l>a</l><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportQuotient"><block var="a"/><l>2</l></block><l><option>letter</option></l></block><l>.</l></block><block s="reportDifference"><block s="reportRound"><block s="reportQuotient"><block var="a"/><l>2</l></block></block><l>1</l></block><block s="reportQuotient"><block var="a"/><l>2</l></block></block></block></script></block><block s="doAddToList"><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportQuotient"><block var="a"/><l>2</l></block><l><option>letter</option></l></block><l>.</l></block><l>1</l><l>0</l></block><block var="b"/></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="inf"/><l>1s &amp; 0s</l></list></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="b"/></list></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="inf"/><l>true &amp; false</l></list></block><script><block s="doDeclareVariables"><list><l>c</l></list></block><block s="doSetVar"><l>c</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="b"/><script><block s="doAddToList"><custom-block s="bool %s %s"><block var="item"/><l>NB</l></custom-block><block var="c"/></block></script></block></script><list></list></block><block s="doReport"><block var="c"/></block></script></block></script><scripts><script x="492" y="360.1666666666668"><block s="reportJoinWords"><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListIndex"><l></l><block s="reportTextSplit"><block s="reportQuotient"><block var="a"/><l>2</l></block><l><option>letter</option></l></block></block><block s="reportListIndex"><l>.</l><block s="reportTextSplit"><block s="reportQuotient"><block var="a"/><l>2</l></block><l><option>letter</option></l></block></block></list></block></autolambda><list></list></block><block s="reportTextSplit"><block s="reportQuotient"><block var="a"/><l>2</l></block><l><option>letter</option></l></block></block></list></block></script></scripts></block-definition><block-definition s="%&apos;in&apos; JBinary %&apos;h&apos; Real binary" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true">-&gt;<options>-&gt;&#xD;&lt;-</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>b</l><block var="in"/></block><block s="doIf"><custom-block s="$—-1-255-0-0 %b"><block s="reportIsA"><block var="in"/><l><option>list</option></l></block></custom-block><script><block s="doSetVar"><l>b</l><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></script><list></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block><script><block s="doAddToList"><block s="reportListItem"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block><block s="reportDifference"><block var="i"/><l>1</l></block></block><block var="b"/></block><block var="a"/></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>-&gt;</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="a"/></block><l><option>Boolean</option></l></block><script><block s="doSetVar"><l>b</l><block s="reportTextSplit"><custom-block s="Decimal %n to binary %s"><custom-block s="$J♾Bit-1-255-0-0 %l $2BitTypeChanger-0.7-255-0-0 %b %b"><block var="in"/><l><bool>false</bool></l><l><bool>false</bool></l><variables><variable name="a"><l>0</l></variable><variable name="b"><l>0</l></variable></variables></custom-block><l>1s &amp; 0s</l></custom-block><l><option>letter</option></l></block></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block><script><block s="doAddToList"><block s="reportListItem"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block><block s="reportDifference"><block var="i"/><l>1</l></block></block><block var="b"/></block><block var="a"/></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block var="a"/></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="h"/><l>&lt;-</l></list></block><script><block s="doReport"><custom-block s="1s &amp; 0s %n to true &amp; false"><block s="reportJoinWords"><list><block var="a"/></list></block></custom-block></block></script><list></list></block></script></block></script></block-definition><block-definition s="1s &amp; 0s %&apos;hh&apos; to true &amp; false" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>c</l></list></block><block s="doSetVar"><l>c</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block s="reportTextSplit"><block var="hh"/><l><option>letter</option></l></block><script><block s="doAddToList"><custom-block s="bool %s %s"><block var="item"/><l>NB</l></custom-block><block var="c"/></block></script></block><block s="doReport"><block var="c"/></block></script></block-definition><block-definition s="Custom block: %&apos;name&apos; %&apos;blocks&apos; %&apos;output&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%upvar"></input><input type="%upvar"></input></inputs><script><block s="doIfElse"><block s="reportListContainsItem"><custom-block s="var %s"><l>ALLBLOCKS</l></custom-block><block var="name"/></block><script><block s="doRun"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListIndex"><block var="name"/><custom-block s="var %s"><l>ALLBLOCKS</l></custom-block></block><l>1</l></list></block><custom-block s="var %s"><l>ALLBLOCKS</l></custom-block></block><list></list></block><block s="doSetVar"><l>blocks</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListIndex"><block var="name"/><custom-block s="var %s"><l>ALLBLOCKS</l></custom-block></block><l>1</l></list></block><custom-block s="var %s"><l>ALLBLOCKS</l></custom-block></block></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="$DeleteAllBlocks-0.7-0-0-255" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="set var %s to %s"><l>ALLBLOCKS</l><block s="reportNewList"><list></list></block></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="%&apos;F&apos; $+-1-0-0-0 %&apos;d&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block var="F"/><block var="d"/></list></block></block></script></block-definition><block-definition s="%&apos;F&apos; $—-1-0-0-0 %&apos;d&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportDifference"><block var="F"/><block var="d"/></block></block></script></block-definition><block-definition s="%&apos;F&apos; $x-1-0-0-0 %&apos;d&apos;" type="reporter" category="JBit 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 var="F"/><block var="d"/></list></block></block></script></block-definition><block-definition s="%&apos;F&apos; $/-1-0-0-0 %&apos;d&apos;" type="reporter" category="JBit 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 var="F"/><block var="d"/></block></block></script></block-definition><block-definition s="%&apos;F&apos; $^-1-0-0-0 %&apos;d&apos;" type="reporter" category="JBit 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="F"/><block var="d"/></block></block></script></block-definition><block-definition s="%&apos;F&apos; $/)-1-0-0-0 %&apos;d&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportModulus"><block var="F"/><block var="d"/></block></block></script></block-definition><block-definition s="%&apos;F&apos; $➗-1-0-0-0 %&apos;d&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportQuotient"><block s="reportDifference"><block var="F"/><block s="reportModulus"><block var="F"/><block var="d"/></block></block><block var="d"/></block><l>R</l><block s="reportModulus"><block var="F"/><block var="d"/></block></list></block></block></script></block-definition><block-definition s="%&apos;A&apos; ➗ $turnAround-0.95-60-60-60 %&apos;2&apos; %&apos;g&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="128" collapsed="false">Undoes long division.&#xD;&#xD;Put the answer of a long division problem in input 1.&#xD;&#xD;If you would like to find the numerator (the number that was divided) then put the divisor in input 2.&#xD;&#xD;If you would like to find the divisor (the number the numerator was being divided by) then put the numerator in input 2.&#xD;&#xD;Finally select what you want to find in input 3.&#xD;&#xD;what’s a divisor and numerator? Example:&#xD;&#xD;Numerator         Divisor&#xD;        5          ➗      3</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%s" readonly="true"><options>Find divisor&#xD;Find Numerator</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="g"/><l>Find Numerator</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="2"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></list></block><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></list></block></block></script><script><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><block var="2"/><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></block></block></script></block></script></block-definition><block-definition s="%&apos;id&apos; %&apos;input&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">better id block. you can use the input multiple times without the code to get the input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>input</l><block var="id"/></block><block s="doReport"><block var="id"/></block></script></block-definition><block-definition s="%&apos;A&apos; ➗ $turnAround-0.95-0-0-0 %&apos;2&apos; %&apos;S&apos;" type="reporter" category="JBit operators"><comment x="0" y="0" w="128" collapsed="false">Undoes long division.&#xD;&#xD;Put the answer of a long division problem in input 1.&#xD;&#xD;If you would like to find the numerator (the number that was divided) then put the divisor in input 2.&#xD;&#xD;If you would like to find the divisor (the number the numerator was being divided by) then put the numerator in input 2.&#xD;&#xD;Finally select what you want to find in input 3.&#xD;&#xD;what’s a divisor and numerator? Example:&#xD;&#xD;Numerator         Divisor&#xD;        5          ➗      3</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%s" readonly="true"><options>Find divisor&#xD;Find Numerator</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="S"/><l>Find Numerator</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="2"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></list></block><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></list></block></block></script><script><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><block var="2"/><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block></block></block></script></block></script></block-definition><block-definition s="%&apos;Black&apos; of %&apos;gg&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="11477">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>sqrt=1&#xD;neg=2&#xD;ceiling=3&#xD;floor=4&#xD;abs=5&#xD;In=6&#xD;e^=7&#xD;10^=8&#xD;2^=9&#xD;id=10</options></input><input type="%n"></input></inputs><script><block s="doSetVar"><l>a</l><l>0</l></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>neg</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>ceiling</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>floor</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>abs</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>ln</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>e^</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>10^</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>2^</option></l><block var="gg"/></block></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Black"/><block var="a"/></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>id</option></l><block var="gg"/></block></block></script><list></list></block></script></block-definition><block-definition s="angle %&apos;Sin&apos; of %&apos;num&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>sin&#xD;cos&#xD;tan&#xD;aSin&#xD;aCos&#xD;aTan</options></input><input type="%n"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="Sin"/><l>sin</l></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>sin</option></l><block var="num"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Sin"/><l>cos</l></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>cos</option></l><block var="num"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Sin"/><l>tan</l></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>tan</option></l><block var="num"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Sin"/><l>aSin</l></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>asin</option></l><block var="num"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Sin"/><l>aCos</l></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>acos</option></l><block var="num"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="Sin"/><l>aTan</l></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>atan</option></l><block var="num"/></block></block></script><list></list></block><block s="doReport"><block var="num"/></block></script></block-definition><block-definition s="%&apos;A&apos; %&apos;B&apos; %&apos;H&apos; %&apos;in&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%s" readonly="true"><options>SOH&#xD;CAH&#xD;TOA&#xD;Find Hypotenuse=FH</options></input></inputs><script><block s="doIf"><custom-block s="%s = %s"><block var="in"/><l>SOH</l></custom-block><script><block s="doReport"><custom-block s="%n $/-1-0-0-0 %n"><block var="B"/><block var="H"/></custom-block></block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><block var="in"/><l>CAH</l></custom-block><script><block s="doReport"><custom-block s="%n $/-1-0-0-0 %n"><block var="A"/><block var="H"/></custom-block></block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><block var="in"/><l>TOA</l></custom-block><script><block s="doReport"><custom-block s="%n $/-1-0-0-0 %n"><block var="B"/><block var="A"/></custom-block></block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><block var="in"/><l>FOL</l></custom-block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><block var="in"/><l>FH</l></custom-block><script><block s="doIf"><block s="reportIsA"><block var="H"/><l><option>number</option></l></block><script><block s="doReport"><block var="H"/></block></script><list></list></block><block s="doIf"><custom-block s="%b $&amp;-1-255-0-0 %b"><block s="reportIsA"><block var="A"/><l><option>number</option></l></block><block s="reportIsA"><block var="B"/><l><option>number</option></l></block></custom-block><script><block s="doReport"><custom-block s="%s of %n"><l>1</l><custom-block s="%n $+-1-0-0-0 %n"><custom-block s="%n $^-1-0-0-0 %n"><block var="A"/><l>2</l></custom-block><custom-block s="%n $^-1-0-0-0 %n"><block var="B"/><l>2</l></custom-block></custom-block><variables><variable name="a"><l>0</l></variable></variables></custom-block></block></script><list></list></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="move %&apos;n&apos; steps" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:mou-te _ passos&#xD;</translations><inputs><input type="%n">1</input></inputs><script><custom-block s="change relative %s by %n"><l>z</l><block var="n"/></custom-block></script></block-definition><block-definition s="point in direction %&apos;dir&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="11886">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%n">90<options>§_directionDialMenu</options></input></inputs><script><block s="doSetVar"><l>a</l><block s="direction"></block></block><block s="setHeading"><block var="dir"/></block><block s="doReport"><block s="reportDifference"><block var="dir"/><block var="a"/></block></block></script></block-definition><block-definition s="point towards %&apos;d&apos;" type="reporter" category="JBit operators"><comment x="0" y="0" w="181.53964843749998" collapsed="false">Points towards the input witch must be a two item long list containing the x&amp;y location you want to point towards.&#xD; &#xD;Location must be from 0,0 so use the (list) -&gt; (list) reporter in the slot.</comment><variables><list struct="atomic" id="11900">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="createClone"><l><option>myself</option></l></block><block s="doTellTo"><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block><block s="reifyScript"><script><block s="hide"></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="d"/></block><block s="reportListItem"><l>2</l><block var="d"/></block></block></script><list></list></block><list></list></block><block s="doSetVar"><l>a</l><block s="xPosition"></block></block><block s="doSetVar"><l>b</l><block s="yPosition"></block></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doFaceTowards"><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block></block><block s="doTellTo"><block s="reportObject"><block s="reportListItem"><l><option>last</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="gotoXY"><block var="a"/><block var="b"/></block></script></block></script><scripts><script x="129" y="344.3333333333334"><block s="hide"></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="d"/></block><block s="reportListItem"><l>2</l><block var="d"/></block></block></script></scripts></block-definition><block-definition s="%&apos;in&apos; $arrowRightThin %&apos;in2&apos;" type="reporter" category="JBit operators"><comment x="0" y="0" w="154" collapsed="false">Reports the second x&amp;y input list minus the first.&#xD;&#xD;This is used for 2 item long lists.&#xD;&#xD;Use this reporter with the point towards (list) block&#xD;&#xD;Put the x&amp;y location of the object that you want to look in a different direction in the first slot and the x&amp;y of where you want it to look in the second input.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="in2"/></block><block s="reportListItem"><l>1</l><block var="in"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="in2"/></block><block s="reportListItem"><l>2</l><block var="in"/></block></block></list></block></block></script></block-definition><block-definition s="set location to x: %&apos;x&apos; y: %&apos;y&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="12013">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="xPosition"></block><block s="reportListItem"><l>1</l><block var="a"/></block></block><block s="reportDifference"><block s="yPosition"></block><block s="reportListItem"><l><option>last</option></l><block var="a"/></block></block></list></block></block></script></block-definition><block-definition s="glide %&apos;num&apos; secs to x: %&apos;x&apos; y: %&apos;y&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doGlide"><block var="num"/><block var="x"/><block var="y"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="if on edge, bounce" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportTouchingObject"><l><option>edge</option></l></block><script><block s="bounceOffEdge"></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="movement %&apos;speed&apos; %&apos;Ob&apos; %&apos;use&apos;" type="reporter" category="JBit operators"><comment x="0" y="0" w="181" collapsed="false">Use this block to move objects at a “Speed” and if it touches a wall it will slowly move along the wall.&#xD;&#xD;The first input is the speed.&#xD;The second input is the object used as the wall.&#xD;The third input is the costume to use as a hit box (leave blank if you are not using a hit box)&#xD;&#xD;See code to see how it works it’s super easy.</comment><variables><list struct="atomic" id="12079">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%txt"><options>§_objectsMenu</options></input><input type="%s"><options>§_costumesMenu</options></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="use"/><l></l></list></block><script></script><script><block s="doSwitchToCostume"><block var="use"/></block></script></block><block s="changeXPosition"><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block></list></block></block><block s="doIf"><block s="reportTouchingObject"><block var="Ob"/></block><script><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block></list></block></block></block></script><list></list></block><block s="changeYPosition"><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block></block><block s="doIf"><block s="reportTouchingObject"><block var="Ob"/></block><script><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="speed"/><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block></block></block></script><list></list></block></script></block-definition><block-definition s="switch to costume %&apos;y&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="12165">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doSetVar"><l>a</l><block s="getCostumeIdx"></block></block><block s="doSwitchToCostume"><block var="y"/></block><block s="doReport"><block s="reportDifference"><block var="a"/><block s="getCostumeIdx"></block></block></block></script></block-definition><block-definition s="sprite’s %&apos;#&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>shown?&#xD;size</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="#"/><l>size</l></list></block><script><block s="doReport"><block s="getScale"></block></block></script><script><block s="doReport"><block s="reportShown"></block></block></script></block></script></block-definition><block-definition s="%&apos;say&apos; %&apos;text&apos; for %&apos;num&apos; secs" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>say&#xD;think</options></input><input type="%txt">J-Bit</input><input type="%n">2</input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="num"/><l>ω</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="say"/><l>say</l></list></block><script><block s="bubble"><block var="text"/></block></script><script><block s="doThink"><block var="text"/></block></script></block><block s="doReport"><block var="say"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="say"/><l>say</l></list></block><script><block s="doSayFor"><block var="text"/><block var="num"/></block></script><script><block s="doThinkFor"><block var="text"/><block var="num"/></block></script></block><block s="doReport"><block var="say"/></block></script></block></script></block-definition><block-definition s="$🥧" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="$Ω-1.07-0-0-0" type="reporter" category="JBit operators"><comment x="0" y="0" w="90" collapsed="false">Absolute Infinity</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Ω</l></block></script></block-definition><block-definition s="$ω-1.07-0-0-0" type="reporter" category="JBit operators"><comment x="0" y="0" w="90" collapsed="false">Infinity </comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>ω</l></block></script></block-definition><block-definition s="%&apos;bl&apos; of costume %&apos;cu&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="12260">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>width&#xD;height&#xD;name&#xD;pixels&#xD;#&#xD;width based on size=WS&#xD;height based on size=HS</options></input><input type="%s" readonly="true">current<options>§_costumesMenu</options></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportGetImageAttribute"><l><option>name</option></l><block var="cu"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="bl"/><l>width</l></list></block><script><block s="doReport"><block s="reportGetImageAttribute"><l><option>width</option></l><block var="cu"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="bl"/><l>height</l></list></block><script><block s="doReport"><block s="reportGetImageAttribute"><l><option>height</option></l><block var="cu"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="bl"/><l>name</l></list></block><script><block s="doReport"><block s="reportGetImageAttribute"><l><option>name</option></l><block var="cu"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="bl"/><l>pixels</l></list></block><script><block s="doReport"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="cu"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="bl"/><l>#</l></list></block><script><block s="doWarp"><script><block s="doSwitchToCostume"><block var="cu"/></block><block s="doSetVar"><l>b</l><block s="getCostumeIdx"></block></block><block s="doSwitchToCostume"><block var="a"/></block><block s="doReport"><block var="b"/></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="bl"/><l>WS</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block><block s="reportQuotient"><block s="getScale"></block><l>100</l></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="bl"/><l>HS</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block><block s="reportQuotient"><block s="getScale"></block><l>100</l></block></list></block></block></script><list></list></block></script></block-definition><block-definition s="stretch %&apos;bl&apos; width %&apos;x&apos; height %&apos;y&apos; %" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">current<options>§_costumesMenu</options></input><input type="%n">100</input><input type="%n">100</input></inputs><script><block s="doReport"><block s="reportNewCostumeStretched"><block var="bl"/><block var="x"/><block var="y"/></block></block></script></block-definition><block-definition s="costume %&apos;list&apos; width %&apos;width&apos; height %&apos;higth&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"><options>current</options></input><input type="%n"><options>current</options></input></inputs><script><block s="doReport"><block s="reportNewCostume"><block var="list"/><block var="width"/><block var="higth"/></block></block></script></block-definition><block-definition s="%&apos;d&apos; effect to %&apos;vgg&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">ghost<options>ghost&#xD;saturation&#xD;brightness&#xD;color&#xD;fisheye&#xD;whirl&#xD;pixelate&#xD;mosaic&#xD;negative</options></input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>ghost</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>color</l></list></block><script><block s="setEffect"><l><option>color</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>saturation</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>brightness</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>fisheye</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>whirl</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>pixelate</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>mosaic</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>negative</l></list></block><script><block s="setEffect"><l><option>ghost</option></l><block var="vgg"/></block><block s="doReport"><block var="d"/></block></script><list></list></block></script></block-definition><block-definition s="round %&apos;num&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportRound"><block var="num"/></block></block></script><scripts><script x="22.9951171875" y="87.83333333333331"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="num"/><l><option>letter</option></l></block><l>.</l></block></script></scripts></block-definition><block-definition s="%&apos;d&apos; effect" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">ghost<options>ghost&#xD;saturation&#xD;brightness&#xD;color&#xD;fisheye&#xD;whirl&#xD;pixelate&#xD;mosaic&#xD;negative</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>ghost</l></list></block><script><block s="doReport"><block s="getEffect"><l><option>ghost</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>color</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>color</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>saturation</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>saturation</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>brightness</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>brightness</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>fisheye</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>fisheye</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>whirl</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>whirl</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>pixelate</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>pixelate</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>mosaic</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>mosaic</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>negative</l></list></block><script><block s="doReport"><custom-block s="%s effect"><l>negative</l></custom-block></block></script><list></list></block></script></block-definition><block-definition s="size %&apos;num&apos; %" type="reporter" category="JBit operators"><variables><list struct="atomic" id="12718">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%n">100</input></inputs><script><block s="doSetVar"><l>a</l><custom-block s="sprite’s %s"><l>size</l></custom-block></block><block s="setScale"><block var="num"/></block><block s="doReport"><block s="reportDifference"><block var="num"/><block var="a"/></block></block></script></block-definition><block-definition s="$|||||||||||||-1" type="command" category="Other"><comment x="0" y="0" w="90" collapsed="false">Just a spacer for codes</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="pick random from %&apos;a&apos; to %&apos;b&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="reportRandom"><block var="a"/><block var="b"/></block></block></script></block-definition><block-definition s="clear graphic effects" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="clearEffects"></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="show" type="reporter" category="JBit operators"><variables><list struct="atomic" id="12748">a</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>a</l><block s="reportShown"></block></block><block s="show"></block><block s="doReport"><block s="reportNot"><block var="a"/></block></block></script></block-definition><block-definition s="hide" type="reporter" category="JBit operators"><variables><list struct="atomic" id="12760">a</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>a</l><block s="reportShown"></block></block><block s="hide"></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="$keyboard-2-0-0-255 %&apos;in&apos;" type="reporter" category="Encoders"><comment x="0" y="0" w="198.71796874999995" collapsed="false">Encodes the number into unrecognizable systematic scribble scrabble.&#xD;&#xD;Place the unrecognizable seemingly random number into a unscrambler witch will turn it back to normal.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportDifference"><l>2</l><block s="reportVariadicProduct"><list><custom-block s="🔑 %s"><custom-block s="🔒"></custom-block></custom-block><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="in"/><l>3</l></block><l>5</l></list></block></list></block></block></block></script></block-definition><block-definition s="$keyboardFilled-2-0-0-255 %&apos;in&apos;" type="reporter" category="Encoders"><comment x="0" y="0" w="90" collapsed="false">Unscrambles a scrambled number.</comment><variables><list struct="atomic" id="12793">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>abs</option></l><block var="in"/></block><l>2</l></list></block><custom-block s="🔑 %s"><custom-block s="🔒"></custom-block></custom-block></block><l>5</l></block><l>3</l></list></block></block><block s="doSetVar"><l>b</l><block s="reportTextSplit"><block var="a"/><l><option>letter</option></l></block></block><block s="doIfElse"><block s="reportListContainsItem"><block var="b"/><l>.</l></block><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportVariadicSum"><list><block var="a"/><l>0.000000000000001</l></list></block><l><option>letter</option></l></block><l>.</l></block><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportDifference"><block var="a"/><l>0.000000000000001</l></block><l><option>letter</option></l></block><l>.</l></block><script><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><block s="reportDifference"><block var="a"/><l>0.000000000000001</l></block></block></script></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><l>0.000000000000001</l></list></block></block></script></block></script><script><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="🔒" type="reporter" category="Encoders"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return EncLo;</l></block><list></list></block></block></script></block-definition><block-definition s="🔒 = %&apos;in&apos;" type="command" category="Encoders"><comment x="0" y="0" w="90" collapsed="false">Let’s the you change the inner lock variable. &#xD;&#xD;This will affect all encoders. Don’t worry it won’t change the out come of encoders because they both use the same variable.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>EncLo = a;</l></block><list><block var="in"/></list></block></script></block-definition><block-definition s="🔑 %&apos;in&apos;" type="reporter" category="Encoders"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="in"/><l><option>number</option></l></block><block s="reportIsA"><block var="in"/><l><option>text</option></l></block></list></block><script><block s="doReport"><block var="in"/></block></script><script><block s="doReport"><block s="evaluate"><block var="in"/><list></list></block></block></script></block></script></block-definition><block-definition s="$keyboard-2-0-0-255 %&apos;in&apos; %&apos;🔑&apos;" type="reporter" category="Encoders"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>🔑</l><block s="reportRandom"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><custom-block s="🔑 %s"><custom-block s="🔒"></custom-block></custom-block><block s="reportRandom"><l>1</l><l>10</l></block></block></block><block s="reportVariadicProduct"><list><custom-block s="🔑 %s"><custom-block s="🔒"></custom-block></custom-block><block s="reportRandom"><l>1</l><l>10</l></block></list></block></block></block><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><l>2</l><block s="reportVariadicProduct"><list><custom-block s="🔑 %s"><custom-block s="🔒"></custom-block></custom-block><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="in"/><l>3</l></block><l>5</l></list></block></list></block></block><block var="🔑"/></block></block></script></block-definition><block-definition s="$keyboardFilled-2-0-0-255 %&apos;in&apos; $|-1.1-50-50-250 %&apos;(2)&apos;" type="reporter" category="Encoders"><variables><list struct="atomic" id="12991">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportVariadicProduct"><list><block var="in"/><block var="(2)"/></list></block></block><l>2</l></list></block><custom-block s="🔑 %s"><custom-block s="🔒"></custom-block></custom-block></block><l>5</l></block><l>3</l></list></block></block><block s="doSetVar"><l>b</l><block s="reportTextSplit"><block var="a"/><l><option>letter</option></l></block></block><block s="doIfElse"><block s="reportListContainsItem"><block var="b"/><l>.</l></block><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportVariadicSum"><list><block var="a"/><l>0.000000000000001</l></list></block><l><option>letter</option></l></block><l>.</l></block><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportDifference"><block var="a"/><l>0.000000000000001</l></block><l><option>letter</option></l></block><l>.</l></block><script><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><block s="reportDifference"><block var="a"/><l>0.000000000000001</l></block></block></script></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><l>0.000000000000001</l></list></block></block></script></block></script><script><block s="doReport"><block var="a"/></block></script></block></script></block-definition><block-definition s="🔐" type="reporter" category="Encoders"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="🔑 %s"><custom-block s="🔒"></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;A&apos; /r- %&apos;B&apos;" type="reporter" category="Operators2"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="A"/><l>R</l></block></block><block var="B"/></block></list></block></block></script></block-definition><block-definition s="repeat %&apos;cc&apos; %&apos;run&apos;" type="command" category="Ωω♾"><variables><list struct="atomic" id="13118">a,Ω</list></variables><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>Ω</l><l>Ω</l></block><block s="doIf"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="cc"/><l><option>letter</option></l></block><l>Ω</l></block><script><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block var="cc"/><l><option>letter</option></l></block></block><block s="doDeleteFromList"><block s="reportListIndex"><l>Ω</l><block var="a"/></block><block var="a"/></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><block var="a"/></list></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="a"/><l></l></list></block><script><block s="doForever"><script><block s="doRun"><block var="run"/><list></list></block></script></block></script><script><block s="doRepeat"><block var="a"/><script><custom-block s="repeat %n %cs"><block var="Ω"/><script><block s="doRun"><block var="run"/><list></list></block></script><variables><variable name="a"><l>0</l></variable><variable name="Ω"><l>0</l></variable></variables></custom-block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="cc"/><l><option>number</option></l></block><script><block s="doRepeat"><block var="cc"/><script><block s="doRun"><block var="run"/><list></list></block></script></block></script><list></list></block></script></block-definition><block-definition s="$Ω-1.06-0-0-0" type="reporter" category="Ωω♾"><comment x="0" y="0" w="90" collapsed="false">Absolute Infinity</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Ω</l></block></script></block-definition><block-definition s="$ω-1.08-0-0-0" type="reporter" category="Ωω♾"><comment x="0" y="0" w="90" collapsed="false">Infinity </comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>ω</l></block></script></block-definition><block-definition s="$π-1.2-0-0-0" type="reporter" category="Ωω♾"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="length of %&apos;in&apos;" type="reporter" category="Ωω♾"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="in"/><custom-block s="$π-1.2-0-0-0"></custom-block></list></block><block s="reportVariadicEquals"><list><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="in"/></block><l>error</l><l>SUS</l></custom-block><block s="reportBlockAttribute"><l><option>definition</option></l><block s="reifyReporter"><autolambda><custom-block s="$π-1.2-0-0-0"></custom-block></autolambda><list></list></block></block></list></block></list></block><script><block s="doReport"><custom-block s="$Ω-1.06-0-0-0"></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportUnicode"><block var="in"/></block><block s="reportUnicode"><custom-block s="$Ω-1.06-0-0-0"></custom-block></block></list></block><script><block s="doReport"><custom-block s="$Ω-1.06-0-0-0"></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportUnicode"><block var="in"/></block><block s="reportUnicode"><custom-block s="$ω-1.08-0-0-0"></custom-block></block></list></block><script><block s="doReport"><custom-block s="$ω-1.08-0-0-0"></custom-block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="in"/><l><option>number</option></l></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block><l>-</l></block></block><block s="reportNot"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block><l>.</l></block></block></list></block><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="Join %s"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></custom-block><l>*10^</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></block><l>0</l></list></block><l>0</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></block></block></list></block></block></script><list></list></block><block s="doReport"><block var="in"/></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="in"/><l><option>text</option></l></block><script><block s="doReport"><block s="reportTextAttribute"><l><option>length</option></l><block var="in"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="in"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="in"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="in"/><l><option>Boolean</option></l></block><script><block s="doReport"><block s="reportIfElse"><custom-block s="%s = %s"><block var="in"/><custom-block s="%b"><l><bool>false</bool></l></custom-block></custom-block><l>0</l><block s="reportIfElse"><custom-block s="%s = %s"><block var="in"/><custom-block s="%b"><l><bool>true</bool></l></custom-block></custom-block><l>1</l><block s="reportIfElse"><custom-block s="%s = %s"><block var="in"/><custom-block s="%b"><l/></custom-block></custom-block><l></l><block s="evaluate"><block s="reifyReporter"><script><custom-block s="error %txt"><l>Not a existing bool</l></custom-block></script><list></list></block><list></list></block></block></block></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="in"/><l><option>costume</option></l></block><script><block s="doReport"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="in"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="in"/><l><option>sound</option></l></block><script><block s="doReport"><block s="reportGetSoundAttribute"><l><option>duration</option></l><block var="in"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="in"/><l><option>command</option></l></block><script><block s="doReport"><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="in"/></block><l><option>blocks</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="in"/><l><option>reporter</option></l></block><block s="reportIsA"><block var="in"/><l><option>predicate</option></l></block></list></block><script><block s="doReport"><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block var="in"/></block><l><option>blocks</option></l></block></block></script><list></list></block></script><scripts><script x="1024.78515625" y="700.2333333333332"><block s="reportVariadicProduct"><list><l>10</l><l></l></list></block></script></scripts></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="scientific notation of %&apos;in&apos;" type="reporter" category="Operators2"><comment x="0" y="0" w="90" collapsed="false">Doesn’t work correctly </comment><variables><list struct="atomic" id="13591">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block><l>-</l></block></block><block s="reportNot"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block><l>.</l></block></block></list></block><script><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><custom-block s="Join %s"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></custom-block><l>*10^</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></block><l>0</l></list></block><l>#</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>0</l></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="in"/><l><option>letter</option></l></block></block></block></block></list></block></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="a"/><l><option>letter</option></l></block><l>#</l></block><script><block s="doReport"><block var="in"/></block></script><script><block s="doReport"><block var="a"/></block></script></block></script><list></list></block></script><scripts><script x="1034.78515625" y="710.2333333333333"><block s="reportVariadicProduct"><list><l>10</l><l></l></list></block></script></scripts></block-definition><block-definition s="SN to # %&apos;in&apos;" type="reporter" category="Operators2"><variables><list struct="atomic" id="13718">a,b,c</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>a</l><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block var="in"/><l>^</l></block></block></block><block s="doSetVar"><l>b</l><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="in"/><l>^</l></block></block><l>*</l></block></block></block><block s="doSetVar"><l>c</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="in"/><l>^</l></block></block><l>*</l></block></block></block><block s="doReport"><block s="reportVariadicProduct"><list><block var="c"/><block s="reportPower"><block var="b"/><block var="a"/></block></list></block></block></script></block-definition><block-definition s="Forward $arrowRight" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Equivelent of pressing the forward arrow next to the reload button on your browser.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>window.history.forward();</l></block><list></list></block></script></block-definition><block-definition s="$arrowLeft Back" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Equivelent of pressing the back arrow next to the forward button on your browser.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>window.history.back();</l></block><list></list></block></script></block-definition><block-definition s="Change Tab Name %&apos;Name&apos;" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Changes the title of the tab.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Cool Custom Blocks</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>tab_name</l></list><l>document.title = tab_name</l></block><list><block var="Name"/></list></block></script></block-definition><block-definition s="Set Cursor %&apos;cursor&apos;" type="command" category="looks"><comment x="0" y="0" w="90" collapsed="false">Changes the image of the cursor.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true"><options>link = alias&#xD;auto&#xD;crosshair big = cell&#xD;context-menu&#xD;horizontal resize = col-resize&#xD;copy&#xD;crosshair&#xD;default&#xD;hand = grab&#xD;grabbing&#xD;help&#xD;move&#xD;vertical = n-resize&#xD;top-right resize = ne-resize&#xD;top left resize = nw-resize&#xD;hidden = none&#xD;not-allowed&#xD;pointer finger = pointer&#xD;loading = progress&#xD;vertical-text = text&#xD;horizintal text = vertical-text&#xD;zoom-in&#xD;zoom-out&#xD;pointer = initial</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l></list><l>document.body.style.cursor = name;</l></block><list><block var="cursor"/></list></block></script></block-definition><block-definition s="get Project (XML)" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Loads the project&apos;s XML code.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var ide = world.children[0];&#xD;return(ide.getProjectXML());</l></block><list></list></block></block></script></block-definition><block-definition s="FPS" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (!window.FPSCount){&#xD;before=performance.now();&#xD;FPSCount=0;&#xD;requestAnimationFrame(&#xD;    function loop(){&#xD;        now=performance.now();&#xD;        FPSCount=Math.round(1000/(now-before));&#xD;        before=now;&#xD;        requestAnimationFrame(loop);&#xD;        &#xD;    }&#xD; );&#xD;}&#xD;return FPSCount;</l></block><list></list></block></block></script></block-definition><block-definition s="set font (font, bold, italic) %&apos;font&apos; %&apos;bold&apos; %&apos;italic&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">Sets the font for writing text with pen. Also allows setting bold and italic.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">arial<options>arial&#xD;monospace&#xD;cursive</options></input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l><l>bold</l><l>italic</l></list><l>if (!this.loadedFontsAPI){&#xD; this.loadedFontsAPI = true;&#xD; this.font = &apos;monospace&apos;;&#xD; this.bold = "";&#xD; this.italic = "";&#xD; SpriteMorph.prototype.write = function (text, size) {&#xD;    // thanks to Michael Ball for contributing this code!&#xD;    if (typeof text !== &apos;string&apos; &amp;&amp; typeof text !== &apos;number&apos;) {&#xD;        throw new Error(&#xD;            &apos;LABEL can only draw text or numbers, not a &apos; +&#xD;            typeof text&#xD;        );&#xD;    }&#xD;&#xD;    var stage = this.parentThatIsA(StageMorph),&#xD;        context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;        rotation = radians(this.direction() - 90),&#xD;        trans = new Point(&#xD;            this.rotationCenter().x - stage.left(),&#xD;            this.rotationCenter().y - stage.top()&#xD;        ),&#xD;        len,&#xD;        pos;&#xD;&#xD;    context.save();&#xD;    context.font = this.italic + "normal " + this.bold + size + &apos;px &apos; + this.font;&#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;    );&#xD;    pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;    this.gotoXY(pos.x, pos.y, false);&#xD;    this.changed();&#xD;    stage.changed();&#xD;}}&#xD;this.font = name;&#xD;this.bold = bold? "bold ":"normal "&#xD;this.italic = italic? "italic ":"normal ";</l></block><list><block var="font"/><block var="bold"/><block var="italic"/></list></block></script></block-definition><block-definition s="Create a new category (name, color(rgb)) %&apos;name&apos; %&apos;r&apos; %&apos;g&apos; %&apos;b&apos;" type="command" category="Other"><comment x="0" y="0" w="90" collapsed="false">Creates a new category with a custom name and colour.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l><l>r</l><l>g</l><l>b</l><l>SpMoPr</l><l>ide</l></list><l>if(name != "") {&#xD;const cats = SpMoPr.categories;&#xD;if(!cats.includes(name)) {cats.push(name);};&#xD;SpMoPr.blockColor[name] = new Color(r, g, b, 1);&#xD;ide.createCategories();&#xD;ide.reactToWorldResize(world.bounds.copy());&#xD;ide.flushBlocksCache();&#xD;ide.refreshPalette();&#xD;}</l></block><list><block var="name"/><block var="r"/><block var="g"/><block var="b"/><l></l><custom-block s="IDE"></custom-block></list></block></script></block-definition><block-definition s="Popup %&apos;alert text&apos; $(2)-0.0000001" type="command" category="Prompt"><comment x="0" y="0" w="90" collapsed="false">Popup with text.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>alertNameText</l></list><l>alert(alertNameText);</l></block><list><block var="alert text"/></list></block></script></block-definition><block-definition s="Popup %&apos;text&apos;" type="predicate" category="Prompt"><comment x="0" y="0" w="90" collapsed="false">Popup with &apos;Ok&apos; or &apos;Cancel&apos;</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>confirmText</l></list><l>return(confirm(confirmText));</l></block><list><block var="text"/></list></block></block></script></block-definition><block-definition s="Popup %&apos;text&apos; default %&apos;default text&apos;" type="reporter" category="Prompt"><comment x="0" y="0" w="90" collapsed="false">Popup with an input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>promptText</l><l>promptDefault</l></list><l>return(prompt(promptText, promptDefault));</l></block><list><block var="text"/><block var="default text"/></list></block></block></script></block-definition><block-definition s="stop error %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block s="reifyScript"><script><block s="doStopThis"><l><option>this script</option></l></block></script><list></list></block><block s="reifyScript"><script><block s="doStopThis"><l><option>this script</option></l></block></script><list></list></block></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="when %&apos;1&apos; changes %&apos;output&apos; %&apos;previous value&apos; %&apos;changed value&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input><input type="%ca"></input><input type="%upvar"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block var="1"/><list></list></block></block><block s="doForever"><script><block s="doWaitUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="a"/><block s="evaluate"><block var="1"/><list></list></block></list></block></block></block><block s="doSetVar"><l>previous value</l><block var="a"/></block><block s="doSetVar"><l>a</l><block s="evaluate"><block var="1"/><list></list></block></block><block s="doSetVar"><l>changed value</l><block var="a"/></block><block s="doCallCC"><block var="output"/></block></script></block></script></block-definition><block-definition s="previous costume" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><block s="reportDifference"><block s="getCostumeIdx"></block><l>1</l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><l>0</l><block s="getCostumeIdx"></block></list></block><script><block s="doSwitchToCostume"><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block></script><list></list></block></script></block-definition><block-definition s="$arrowDown Save File $nl (file name, contents, ext.) $nl %&apos;name&apos; %&apos;contents&apos; %&apos;ext.&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Saves a file to your computer with a name, contents and an extension.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%txt">txt<options>txt&#xD;py&#xD;js&#xD;rtf&#xD;xml&#xD;html&#xD;sb2&#xD;plain&#xD;png&#xD;csv</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>file_name</l><l>file_contents</l><l>file_ext</l></list><block s="reportJoinWords"><list><l>var ide=this.parentThatIsA(IDE_Morph);&#xD;ide.saveFileAs(file_contents, &apos;text/</l><l>file_ext</l><l>;charset=utf-8&apos;, file_name);</l></list></block></block><list><block var="name"/><block var="contents"/><block var="ext."/></list></block></script></block-definition><block-definition s="Popup Website %&apos;http&apos; %&apos;URL&apos;" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Makes a popup website.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">https://<options>https://&#xD;http://</options></input><input type="%txt">google.com</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>url</l><l>http</l></list><l>let n = window.open(http + url, "", "_blank");</l></block><list><block var="URL"/><block var="http"/></list></block></script></block-definition><block-definition s="if %&apos;a&apos; = %&apos;b&apos; then %&apos;scriptA&apos; else %&apos;scriptB&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Simplified if (x = y){ }else{ } block.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%cs"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block><script><block s="doRun"><block var="scriptA"/><list></list></block></script><script><block s="doRun"><block var="scriptB"/><list></list></block></script></block></script></block-definition><block-definition s="get from clipboard" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Gets the latest item from your clipboard.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var done = false, item = null&#xD;if("clipboard" in navigator) {&#xD;  navigator.clipboard.readText(item).then(x =&gt; {item = x; done = true})&#xD;} else {alert("I can&apos;t retrieve item from clipboard."); done = true}&#xD;&#xD;return new List([function() {return done}, function() {return item}])</l></block><list></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="delete all clones" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Deletes all of a sprites clones</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>clone</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block></script></block></script></block-definition><block-definition s="toggle pen" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">Will make set hte pen to up if it is down or down if it is up.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="getPenDown"></block><script><block s="up"></block></script><script><block s="down"></block></script></block></script></block-definition><block-definition s="Run HTML %&apos;HTML&apos;" type="command" category="looks"><comment x="0" y="0" w="90" collapsed="false">Creates a popup page with your HTML. </comment><header></header><code></code><translations></translations><inputs><input type="%s">&lt;h1&gt;Hello World!&lt;/h1&gt;</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>html</l></list><l>var myWindow = window.open("", "MsgWindow", "width=1000,height=1000");&#xD;myWindow.document.write(html);</l></block><list><block var="HTML"/></list></block></script></block-definition><block-definition s="in editor?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Reports whether the user is in the editor.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return location.href === parent.location.href;</l></block><list></list></block></block></script></block-definition><block-definition s="IDE" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.parentThatIsA(IDE_Morph);</l></block><list></list></block></block></script></block-definition><block-definition s="current layer" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListIndex"><block s="reportObject"><l><option>myself</option></l></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block></block></script></block-definition><block-definition s="username" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><custom-block s="snap! user stats"></custom-block></block></block></block></script></block-definition><block-definition s="create block name %&apos;name&apos; category %&apos;category&apos; type %&apos;type&apos; code %&apos;typecode&apos; %&apos;code&apos;" type="command" category="Other"><comment x="0" y="0" w="161" collapsed="false">Created by Mr_OwlsssSnap&#xD;----------------------------------------------------&#xD;Creates a block with the code you give it. It has two options: XML or blocks. If you are using blocks, make sure to put in a ring. &#xD;Requires JS.</comment><variables><list struct="atomic" id="14217">xml,block xml</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s">other<options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;control&#xD;sensing&#xD;operators&#xD;variables&#xD;other</options></input><input type="%s" readonly="true">command<options>command&#xD;booleen&#xD;reporter</options></input><input type="%s">blocks<options>blocks&#xD;xml</options></input><input type="%txt"></input></inputs><script><custom-block s="Created by Mr_OwlsssSnap"></custom-block><block s="doIfElse"><custom-block s="JavaScript enabled?"></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="typecode"/><l>blocks</l></list></block><script><block s="doSetVar"><l>block xml</l><custom-block s="Script : Export %cmdRing"><block var="code"/></custom-block></block><block s="doRun"><block s="reportJSFunction"><list><l>xmlString</l><l>silent</l></list><block s="reportJoinWords"><list><l>this.parentThatIsA(IDE_Morph).rawOpenBlocksString(xmlString, "</l><block var="name"/><l>", true)</l></list></block></block><list><block s="reportJoinWords"><list><l>&lt;blocks app="Snap! 7, https://snap.berkeley.edu" version="2"&gt;&lt;block-definition s="</l><block var="name"/><l>" type="</l><block var="type"/><l>" category="</l><block var="category"/><l>"&gt;&lt;header&gt;&lt;/header&gt;&lt;code&gt;&lt;/code&gt;&lt;translations&gt;&lt;/translations&gt;&lt;inputs&gt;&lt;/inputs&gt;</l><block var="block xml"/><l>&lt;/block-definition&gt;&lt;/blocks&gt;</l></list></block><l></l><l></l></list></block></script><script><block s="doRun"><block s="reportJSFunction"><list><l>xmlString</l><l>silent</l></list><block s="reportJoinWords"><list><l>this.parentThatIsA(IDE_Morph).rawOpenBlocksString(xmlString, "</l><block var="name"/><l>", true)</l></list></block></block><list><block s="reportJoinWords"><list><l>&lt;blocks app="Snap! 7, https://snap.berkeley.edu" version="2"&gt;&lt;block-definition s="</l><block var="name"/><l>" type="</l><block var="type"/><l>" category="</l><block var="category"/><l>"&gt;&lt;header&gt;&lt;/header&gt;&lt;code&gt;&lt;/code&gt;&lt;translations&gt;&lt;/translations&gt;&lt;inputs&gt;&lt;/inputs&gt;</l><block var="code"/><l>&lt;/block-definition&gt;&lt;/blocks&gt;</l></list></block><l></l><l></l></list></block></script></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>You need to enable JavaScript in order for this block to run.</l></list></block></script></block><custom-block s="Created by Mr_OwlsssSnap"></custom-block></script></block-definition><block-definition s="JavaScript enabled?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Tells you if JavaScript is enabled with no error if it is not.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return true;</l></block><list></list></block></block></script><l>error</l><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="error"/><l>JavaScript extensions for Snap! are off</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></custom-block><block s="doReport"><block var="a"/></block></script><scripts><script x="167" y="95.46666666666664"><block s="fork"><block s="reifyScript"><script><block s="doWarp"><script></script></block></script><list></list></block><list></list></block></script><script x="316" y="201.80000000000007"><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doWarp"><script><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return true;</l></block><list></list></block></block></script></block></script><list></list></block><list></list></block><block s="doRepeat"><l>1</l><script><block s="doWait"><l>0</l></block></script></block><block s="doReport"><block var="a"/></block></script></scripts></block-definition><block-definition s="Created by Mr_OwlsssSnap" type="command" category="other" helper="true"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="all but %&apos;first/last&apos; %&apos;letter&apos; letters of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the wanted letters of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;</translations><inputs><input type="%s" readonly="true"><options>last&#xD;first</options></input><input type="%n"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="string"/><l></l></list></block><block s="reportVariadicEquals"><list><block var="string"/><l>0</l></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="letter"/><l></l></list></block><block s="reportVariadicEquals"><list><block var="letter"/><l>0</l></list></block></list></block></list></block><block var="string"/><block s="reportJoinWords"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="first/last"/><l>last</l></list></block><block s="reportNumbers"><l>1</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><block var="letter"/></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="first/last"/><l>first</l></list></block><block s="reportNumbers"><block var="letter"/><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></block><l></l></block></block></block></block></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><custom-block s="let %upvar be %s"><l>reset</l><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>var oldHandleError = proc.handleError,&#xD;    oldCatchingErrors = proc.isCatchingErrors;&#xD;&#xD;return function(){&#xD; proc.handleError = oldHandleError;&#xD; proc.isCatchingErrors = oldCatchingErrors;&#xD;}</l></block><list></list></block></custom-block><block s="doCallCC"><block s="reifyScript"><script><block s="doRun"><block s="reportJSFunction"><list><l>reset</l><l>action</l><l>handler</l><l>proc</l></list><l>proc.isCatchingErrors = true;&#xD;proc.handleError = function(error, element){&#xD; reset();&#xD; proc.context = handler;&#xD; proc.context.variables.setVar("error", error);&#xD;}&#xD;&#xD;try{&#xD; proc.evaluate(action, new List(), true);&#xD;}&#xD;catch(e){&#xD; proc.handleError(e, null);&#xD;} </l></block><list><block var="reset"/><block var="action"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doRun"><block var="handler"/><list></list></block><block s="doRun"><block var="return"/><list></list></block></script><list></list></block><list></list></block></script><list></list></block></list></block></script><list><l>return</l></list></block></block><block s="doRun"><block var="reset"/><list></list></block></script></block-definition><block-definition s="$brush set pen %&apos;dimension&apos; to %&apos;value&apos;" type="command" category="pen"><comment x="0" y="0" w="265.3333333333333" collapsed="false">This block allows you to set the pen&apos;s color, transparency (on a scale from 0=opaque to 100=invisible), or size (in pixels).  The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), or X11/W3C color name.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>size&#xD;color&#xD;fair hue&#xD;transparency&#xD;X11/W3C name&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGB hex&#xD;}&#xD;}</options></input><input type="%s"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doDeclareVariables"><list><l>colors</l><l>brights</l><l>index</l><l>scale</l><l>oldHSV</l><l>newHSV</l><l>color</l><l>pivots</l></list></block><block s="doSetVar"><l>colors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>128</l><l>128</l><l>128</l></list></block><block s="reportNewList"><list><l>192</l><l>192</l><l>192</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>85</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>139</l><l>69</l><l>19</l></list></block><block s="reportNewList"><list><l>70</l><l>5</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>127</l><l>0</l></list></block><block s="reportNewList"><list><l>140</l><l>60</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>114</l><l>93</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>30</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>50</l><l>50</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>64</l></list></block><block s="reportNewList"><list><l>80</l><l>0</l><l>90</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block></block><block s="doSetVar"><l>brights</l><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>170</l><l>20</l><l>0</l></list></block><block s="reportNewList"><list><l>139</l><l>69</l><l>19</l></list></block><block s="reportNewList"><list><l>170</l><l>90</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>127</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>160</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>190</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>240</l><l>200</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>127</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>60</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>128</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>64</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block></list></block></block><block s="doSetVar"><l>pivots</l><block s="reportNewList"><list><l>0</l><l>5.8</l><l>12.5</l><l>18</l><l>25</l><l>30.5</l><l>37.5</l><l>44.5</l><l>50</l><l>59</l><l>62.5</l><l>69</l><l>75</l><l>79.25</l><l>87.5</l><l>93.75</l><l>97</l><l>100</l></list></block></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>color</l><l>hue</l><l>fair hue</l></list></block><block var="dimension"/></block><script><block s="doSetVar"><l>value</l><block s="reportModulus"><block var="value"/><l>100</l></block></block></script><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>red</l><l>green</l><l>blue</l></list></block><block var="dimension"/></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="value"/><l>0</l></list></block><script><block s="doSetVar"><l>value</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="value"/><l>255</l></list></block><script><block s="doSetVar"><l>value</l><l>255</l></block></script><list></list></block></script><script><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>saturation (HSV)</l><l>saturation (HSL)</l><l>value (brightness)</l><l>lightness</l><l>fair saturation (HSV)</l><l>fair saturation (HSL)</l><l>fair value (brightness)</l><l>fair lightness</l><l>transparency</l></list></block><block var="dimension"/></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="value"/><l>0</l></list></block><script><block s="doSetVar"><l>value</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="value"/><l>100</l></list></block><script><block s="doSetVar"><l>value</l><l>100</l></block></script><list></list></block></script><list></list><comment w="164.66666666666666" collapsed="false">We have to do this last test to rule out the vector options, which aren&apos;t numbers; their code makes three recursive calls and we catch range issues then.</comment></block></script></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>size</l></list></block><script><block s="setSize"><block var="value"/></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>hue</l></list></block><script><block s="setPenColorDimension"><l><option>hue</option></l><block var="value"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><block s="doReplaceInList"><l>1</l><block var="✐ HSL"/><block var="value"/></block><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>HSL</l><l>HSV</l></list></block><block var="✐ last set as"/></block></block><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block></script><list></list></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>saturation (HSV)</l></list></block><script><block s="setPenColorDimension"><l><option>saturation</option></l><block var="value"/></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>value (brightness)</l></list></block><script><block s="setPenColorDimension"><l><option>brightness</option></l><block var="value"/></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>transparency</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block var="value"/></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>red</l></list></block><script><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l>255</l><l></l><l></l></custom-block></script><list></list></block><custom-block s="RGB color"></custom-block></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>green</l></list></block><script><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l>0</l><l></l></custom-block></script><list></list></block><custom-block s="RGB color"></custom-block></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>blue</l></list></block><script><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l>0</l></custom-block></script><list></list></block><custom-block s="RGB color"></custom-block></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair hue</l></list></block><script><block s="doSetVar"><l>oldHSV</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l>100</l><l></l></list></block></autolambda><list></list></block><custom-block s="HSV color"></custom-block></block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>HSL</l><l>HSV</l></list></block><block var="✐ last set as"/></block></block><script><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block><block s="doSetVar"><l>oldHSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block></script><list></list></block><block s="doSetVar"><l>value</l><block s="reportModulus"><block var="value"/><l>100</l></block></block><block s="doSetVar"><l>color</l><block s="reportVariadicProduct"><list><block var="value"/><l>3.6</l></list></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="index"/><block var="pivots"/></block><block var="value"/></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>scale</l><block s="reportQuotient"><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><block var="pivots"/></block></block><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="pivots"/></block><block s="reportListItem"><block var="index"/><block var="pivots"/></block></block></block></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><script></script><list><l>from</l><l>to</l></list></block><list><l/></list></custom-block></block><block s="doSetVar"><l>newHSV</l><custom-block s="HSV color"></custom-block></block><block s="doIfElse"><block var="✐ fair?"/><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="newHSV"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="newHSV"/></block><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></list></block><l>100</l></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="newHSV"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></list></block><l>100</l></block></custom-block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></list></block></block></script><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="newHSV"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="newHSV"/></block><block s="reportListItem"><l>2</l><block var="oldHSV"/></block></list></block><l>100</l></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="newHSV"/></block><block s="reportListItem"><l>3</l><block var="oldHSV"/></block></list></block><l>100</l></block></custom-block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>2</l><block var="oldHSV"/></block><block s="reportListItem"><l>3</l><block var="oldHSV"/></block></list></block></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><custom-block s="✐ update HSL"></custom-block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block></script><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block></script></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list><comment w="90" collapsed="true">fair hue</comment></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>color</l></list><comment w="53.333333333333336" collapsed="true">Color</comment></block><script><block s="doSetVar"><l>✐ color scale</l><block var="value"/></block><block s="doSetVar"><l>color</l><block s="reportVariadicProduct"><list><block var="value"/><l>3</l></list></block></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="color"/><l>42</l></list></block></block><script><block s="doSetVar"><l>color</l><block s="reportModulus"><block s="reportVariadicProduct"><list><block var="color"/><block s="reportQuotient"><l>15</l><l>14</l></block></list></block><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="color"/><l>60</l></list><comment w="96.66666666666667" collapsed="true">spread out pink</comment></block><script><block s="doSetVar"><l>color</l><block s="reportVariadicSum"><list><l>45</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="color"/><l>42</l></block><block s="reportQuotient"><l>15</l><l>18</l></block></list></block></list></block></block></script><list></list></block><block s="doSetVar"><l>color</l><block s="reportModulus"><block var="color"/><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><comment w="77.33333333333333" collapsed="true">grayscale</comment></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><script></script><list><l>from</l><l>to</l></list></block><list><l/></list></custom-block></block><block s="doSetVar"><l>✐ last set as</l><l>color</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>saturation (HSL)</l></list></block><script><custom-block s="✐ update HSL"></custom-block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>2</l><block var="✐ HSL"/><block var="value"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>lightness</l></list></block><script><custom-block s="✐ update HSL"></custom-block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>3</l><block var="✐ HSL"/><block var="value"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair saturation (HSV)</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="setPenColorDimension"><l><option>saturation</option></l><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="getPenAttribute"><l><option>saturation</option></l></block><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair value (brightness)</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="setPenColorDimension"><l><option>brightness</option></l><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="getPenAttribute"><l><option>brightness</option></l></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair saturation (HSL)</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSV</l></list></block><script><custom-block s="✐ update HSL"></custom-block></script><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block></block><script><block s="doReplaceInList"><l>2</l><block var="✐ HSL"/><l>100</l></block></script><list></list></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSL"/><block var="value"/></block><block s="doReplaceInList"><l>2</l><block var="✐ HSL"/><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="✐ HSL"/></block><block s="reportListItem"><l>2</l><block var="✐ raw HSL"/></block></block></list></block><block var="value"/></block></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ update HSV"></custom-block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair lightness</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSV</l></list></block><script><custom-block s="✐ update HSL"></custom-block></script><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block></block><script><block s="doReplaceInList"><l>3</l><block var="✐ HSL"/><l>50</l></block></script><list></list></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSL"/><block var="value"/></block><block s="doReplaceInList"><l>3</l><block var="✐ HSL"/><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="✐ HSL"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSL"/></block></block></list></block><block var="value"/></block></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ update HSV"></custom-block><custom-block s="✐ make integer RGB"></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair HSL vector</l></list></block><script><custom-block s="$brush set pen %s to %s"><l>fair saturation (HSL)</l><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>fair lightness</l><block s="reportListItem"><l>3</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>fair hue</l><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair HSV vector</l></list></block><script><custom-block s="$brush set pen %s to %s"><l>fair saturation (HSV)</l><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>fair value (brightness)</l><block s="reportListItem"><l>3</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>fair hue</l><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>HSL vector</l></list></block><script><custom-block s="$brush set pen %s to %s"><l>saturation (HSL)</l><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>lightness</l><block s="reportListItem"><l>3</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>hue</l><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>HSV vector</l></list></block><script><custom-block s="$brush set pen %s to %s"><l>saturation (HSV)</l><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>value (brightness)</l><block s="reportListItem"><l>3</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>hue</l><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>RGB vector</l></list></block><script><custom-block s="$brush set pen %s to %s"><l>red</l><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>green</l><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>blue</l><block s="reportListItem"><l>3</l><block var="value"/></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>RGB hex</l></list></block><script><block s="doSetVar"><l>value</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>number</option></l></block><l></l><block s="reportVariadicSum"><list><l>10</l><block s="reportDifference"><block s="reportUnicode"><l></l></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>a</l></list></block><block s="reportUnicode"><l>A</l></block><block s="reportUnicode"><l>a</l></block></block></block></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="value"/><l><option>letter</option></l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="doSetVar"><l>value</l><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="value"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><l></l><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><l></l><l>15</l></list></block></list></block></autolambda><list></list></block><block var="value"/></block><l><option>number</option></l></block><script><custom-block s="error %txt"><l>Badly formed hex color.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>6</l></list></block><script><custom-block s="error %txt"><l>More than six hex digits.</l></custom-block></script><list></list></block><block s="doRepeat"><block s="reportDifference"><l>6</l><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block></block><script><block s="doSetVar"><l>value</l><block s="reportCONS"><l>0</l><block var="value"/></block></block></script></block><custom-block s="$brush set pen %s to %s"><l>red</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>1</l><block var="value"/></block></list></block><block s="reportListItem"><l>2</l><block var="value"/></block></list></block></custom-block><custom-block s="$brush set pen %s to %s"><l>green</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>3</l><block var="value"/></block></list></block><block s="reportListItem"><l>4</l><block var="value"/></block></list></block></custom-block><custom-block s="$brush set pen %s to %s"><l>blue</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>5</l><block var="value"/></block></list></block><block s="reportListItem"><l>6</l><block var="value"/></block></list></block></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>X11/W3C name</l></list><comment w="90" collapsed="true">X11/W3C name</comment></block><script><block s="doIf"><block s="reportNot"><custom-block s="does var %s exist?"><l>✐ X11</l></custom-block></block><script><custom-block s="create %s var %mult%txt"><l>global</l><list><l>✐ X11</l></list></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ X11"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ X11</l><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>250</l><l>250</l><l>snow</l></list></block><block s="reportNewList"><list><l>248</l><l>248</l><l>255</l><l>ghostwhite</l></list></block><block s="reportNewList"><list><l>245</l><l>245</l><l>245</l><l>whitesmoke</l></list></block><block s="reportNewList"><list><l>220</l><l>220</l><l>220</l><l>gainsboro</l></list></block><block s="reportNewList"><list><l>255</l><l>250</l><l>240</l><l>floralwhite</l></list></block><block s="reportNewList"><list><l>253</l><l>245</l><l>230</l><l>oldlace</l></list></block><block s="reportNewList"><list><l>250</l><l>240</l><l>230</l><l>linen</l></list></block><block s="reportNewList"><list><l>250</l><l>235</l><l>215</l><l>antiquewhite</l></list></block><block s="reportNewList"><list><l>255</l><l>239</l><l>213</l><l>papayawhip</l></list></block><block s="reportNewList"><list><l>255</l><l>235</l><l>205</l><l>blanchedalmond</l></list></block><block s="reportNewList"><list><l>255</l><l>228</l><l>196</l><l>bisque</l></list></block><block s="reportNewList"><list><l>255</l><l>218</l><l>185</l><l>peachpuff</l></list></block><block s="reportNewList"><list><l>255</l><l>222</l><l>173</l><l>navajowhite</l></list></block><block s="reportNewList"><list><l>255</l><l>228</l><l>181</l><l>moccasin</l></list></block><block s="reportNewList"><list><l>255</l><l>248</l><l>220</l><l>cornsilk</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>240</l><l>ivory</l></list></block><block s="reportNewList"><list><l>255</l><l>250</l><l>205</l><l>lemonchiffon</l></list></block><block s="reportNewList"><list><l>255</l><l>245</l><l>238</l><l>seashell</l></list></block><block s="reportNewList"><list><l>240</l><l>255</l><l>240</l><l>honeydew</l></list></block><block s="reportNewList"><list><l>245</l><l>255</l><l>250</l><l>mintcream</l></list></block><block s="reportNewList"><list><l>240</l><l>255</l><l>255</l><l>azure</l></list></block><block s="reportNewList"><list><l>240</l><l>248</l><l>255</l><l>aliceblue</l></list></block><block s="reportNewList"><list><l>230</l><l>230</l><l>250</l><l>lavender</l></list></block><block s="reportNewList"><list><l>255</l><l>240</l><l>245</l><l>lavenderblush</l></list></block><block s="reportNewList"><list><l>255</l><l>228</l><l>225</l><l>mistyrose</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l><l>white</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l><l>black</l></list></block><block s="reportNewList"><list><l>47</l><l>79</l><l>79</l><l>darkslategray</l></list></block><block s="reportNewList"><list><l>47</l><l>79</l><l>79</l><l>darkslategrey</l></list></block><block s="reportNewList"><list><l>105</l><l>105</l><l>105</l><l>dimgray</l></list></block><block s="reportNewList"><list><l>105</l><l>105</l><l>105</l><l>dimgrey</l></list></block><block s="reportNewList"><list><l>112</l><l>128</l><l>144</l><l>slategray</l></list></block><block s="reportNewList"><list><l>112</l><l>128</l><l>144</l><l>slategrey</l></list></block><block s="reportNewList"><list><l>119</l><l>136</l><l>153</l><l>lightslategray</l></list></block><block s="reportNewList"><list><l>119</l><l>136</l><l>153</l><l>lightslategrey</l></list></block><block s="reportNewList"><list><l>190</l><l>190</l><l>190</l><l>gray(X11)</l></list></block><block s="reportNewList"><list><l>190</l><l>190</l><l>190</l><l>grey(X11)</l></list></block><block s="reportNewList"><list><l>128</l><l>128</l><l>128</l><l>gray(W3C)</l></list></block><block s="reportNewList"><list><l>128</l><l>128</l><l>128</l><l>grey(W3C)</l></list></block><block s="reportNewList"><list><l>211</l><l>211</l><l>211</l><l>lightgrey</l></list></block><block s="reportNewList"><list><l>211</l><l>211</l><l>211</l><l>lightgray</l></list></block><block s="reportNewList"><list><l>25</l><l>25</l><l>112</l><l>midnightblue</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>128</l><l>navy</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>128</l><l>navyblue</l></list></block><block s="reportNewList"><list><l>100</l><l>149</l><l>237</l><l>cornflowerblue</l></list></block><block s="reportNewList"><list><l>72</l><l>61</l><l>139</l><l>darkslateblue</l></list></block><block s="reportNewList"><list><l>106</l><l>90</l><l>205</l><l>slateblue</l></list></block><block s="reportNewList"><list><l>123</l><l>104</l><l>238</l><l>mediumslateblue</l></list></block><block s="reportNewList"><list><l>132</l><l>112</l><l>255</l><l>lightslateblue</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>205</l><l>mediumblue</l></list></block><block s="reportNewList"><list><l>65</l><l>105</l><l>225</l><l>royalblue</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l><l>blue</l></list></block><block s="reportNewList"><list><l>30</l><l>144</l><l>255</l><l>dodgerblue</l></list></block><block s="reportNewList"><list><l>0</l><l>191</l><l>255</l><l>deepskyblue</l></list></block><block s="reportNewList"><list><l>135</l><l>206</l><l>235</l><l>skyblue</l></list></block><block s="reportNewList"><list><l>135</l><l>206</l><l>250</l><l>lightskyblue</l></list></block><block s="reportNewList"><list><l>70</l><l>130</l><l>180</l><l>steelblue</l></list></block><block s="reportNewList"><list><l>176</l><l>196</l><l>222</l><l>lightsteelblue</l></list></block><block s="reportNewList"><list><l>173</l><l>216</l><l>230</l><l>lightblue</l></list></block><block s="reportNewList"><list><l>176</l><l>224</l><l>230</l><l>powderblue</l></list></block><block s="reportNewList"><list><l>175</l><l>238</l><l>238</l><l>paleturquoise</l></list></block><block s="reportNewList"><list><l>0</l><l>206</l><l>209</l><l>darkturquoise</l></list></block><block s="reportNewList"><list><l>72</l><l>209</l><l>204</l><l>mediumturquoise</l></list></block><block s="reportNewList"><list><l>64</l><l>224</l><l>208</l><l>turquoise</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l><l>cyan</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l><l>aqua</l></list></block><block s="reportNewList"><list><l>224</l><l>255</l><l>255</l><l>lightcyan</l></list></block><block s="reportNewList"><list><l>95</l><l>158</l><l>160</l><l>cadetblue</l></list></block><block s="reportNewList"><list><l>102</l><l>205</l><l>170</l><l>mediumaquamarine</l></list></block><block s="reportNewList"><list><l>127</l><l>255</l><l>212</l><l>aquamarine</l></list></block><block s="reportNewList"><list><l>0</l><l>100</l><l>0</l><l>darkgreen</l></list></block><block s="reportNewList"><list><l>85</l><l>107</l><l>47</l><l>darkolivegreen</l></list></block><block s="reportNewList"><list><l>143</l><l>188</l><l>143</l><l>darkseagreen</l></list></block><block s="reportNewList"><list><l>46</l><l>139</l><l>87</l><l>seagreen</l></list></block><block s="reportNewList"><list><l>60</l><l>179</l><l>113</l><l>mediumseagreen</l></list></block><block s="reportNewList"><list><l>32</l><l>178</l><l>170</l><l>lightseagreen</l></list></block><block s="reportNewList"><list><l>152</l><l>251</l><l>152</l><l>palegreen</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>127</l><l>springgreen</l></list></block><block s="reportNewList"><list><l>124</l><l>252</l><l>0</l><l>lawngreen</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l><l>green(X11)</l></list></block><block s="reportNewList"><list><l>0</l><l>128</l><l>0</l><l>green(W3C)</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l><l>lime</l></list></block><block s="reportNewList"><list><l>127</l><l>255</l><l>0</l><l>chartreuse</l></list></block><block s="reportNewList"><list><l>0</l><l>250</l><l>154</l><l>mediumspringgreen</l></list></block><block s="reportNewList"><list><l>173</l><l>255</l><l>47</l><l>greenyellow</l></list></block><block s="reportNewList"><list><l>50</l><l>205</l><l>50</l><l>limegreen</l></list></block><block s="reportNewList"><list><l>154</l><l>205</l><l>50</l><l>yellowgreen</l></list></block><block s="reportNewList"><list><l>34</l><l>139</l><l>34</l><l>forestgreen</l></list></block><block s="reportNewList"><list><l>107</l><l>142</l><l>35</l><l>olivedrab</l></list></block><block s="reportNewList"><list><l>189</l><l>183</l><l>107</l><l>darkkhaki</l></list></block><block s="reportNewList"><list><l>240</l><l>230</l><l>140</l><l>khaki</l></list></block><block s="reportNewList"><list><l>238</l><l>232</l><l>170</l><l>palegoldenrod</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l><l>210</l><l>lightgoldenrodyellow</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>224</l><l>lightyellow</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l><l>yellow</l></list></block><block s="reportNewList"><list><l>255</l><l>215</l><l>0</l><l>gold</l></list></block><block s="reportNewList"><list><l>238</l><l>221</l><l>130</l><l>lightgoldenrod</l></list></block><block s="reportNewList"><list><l>218</l><l>165</l><l>32</l><l>goldenrod</l></list></block><block s="reportNewList"><list><l>184</l><l>134</l><l>11</l><l>darkgoldenrod</l></list></block><block s="reportNewList"><list><l>188</l><l>143</l><l>143</l><l>rosybrown</l></list></block></list></block></block></script><list></list></block><block s="doSetVar"><l>value</l><custom-block s="✐ remove appearences of %txt in %txt"><block var="value"/><l></l></custom-block></block><custom-block s="use case-independent comparisons %b"><l><bool>true</bool></l></custom-block><custom-block s="catch %upvar %cs"><l>x11w3c</l><script><block s="doIf"><custom-block s="✐ subset %predRing %l %cmdRing %upvar"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="value"/><block s="reportListItem"><l>4</l><l/></block></list></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>exact matches</l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>?? multiple exact matches for </l><block var="value"/></list></block></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="✐ subset %predRing %l %cmdRing %upvar"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><l/></block><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><l/></block><block var="value"/></custom-block></list></block></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>partial matches</l></custom-block></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Color name </l><block var="value"/><l> not found.</l></list></block></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><block var="match"/></block><block var="value"/></custom-block><l></l></list></block></autolambda><list><l>match</l></list></block><block var="partial matches"/><block var="x11w3c"/><l>head matches</l></custom-block><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="head matches"/><block var="x11w3c"/><l>non-numbered matches</l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="head matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="partial matches"/><block var="x11w3c"/><l>non-numbered matches</l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="partial matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script></block></script><comment w="294.6666666666667" collapsed="true">SUBSET throws here if it handles a unique match</comment></custom-block></script><list></list></block><custom-block s="✐ initialize variables"></custom-block></script></block-definition><block-definition s="✐ subset %&apos;pred&apos; %&apos;data&apos; %&apos;catchtag&apos; %&apos;result&apos;" type="predicate" category="pen"><comment x="0" y="0" w="228" collapsed="false">Don&apos;t ask.&#xD;Only for internal use by the SET PEN block.</comment><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input><input type="%cmdRing"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>best match</l></list></block><block s="doSetVar"><l>result</l><block s="reportKeep"><block var="pred"/><block var="data"/></block></block><block s="doIf"><block s="reportListIsEmpty"><block var="result"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="result"/></block></block><script><block s="doSetVar"><l>best match</l><block s="reportListItem"><l>1</l><block var="result"/></block></block><custom-block s="$brush set pen %s to %s"><l>red</l><block s="reportListItem"><l>1</l><block var="best match"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>green</l><block s="reportListItem"><l>2</l><block var="best match"/></block></custom-block><custom-block s="$brush set pen %s to %s"><l>blue</l><block s="reportListItem"><l>3</l><block var="best match"/></block></custom-block><block s="doSetVar"><l>✐ last X11</l><block s="reportListItem"><l>4</l><block var="best match"/></block></block><block s="doSetVar"><l>✐ last set as</l><l>X11</l></block><custom-block s="throw %s"><block var="catchtag"/></custom-block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="✐ remove appearences of %&apos;symbols&apos; in %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportTextSplit"><block s="reportJoinWords"><block var="text"/></block><block s="reportJoinWords"><block var="symbols"/></block></block></block></block></script></block-definition><block-definition s="for %&apos;variable&apos; = %&apos;s&apos; to %&apos;e&apos; %&apos;action&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doFor"><l>i</l><block var="s"/><block var="e"/><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block var="i"/></block></script><list></list></block><list><block var="variable"/></list></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="round %&apos;number&apos; to the nearest %&apos;to the nearest&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="reportIfElse"><block s="reportIsA"><block var="number"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="round %n to the nearest %n"><l></l><block var="to the nearest"/></custom-block></autolambda><list></list></block><block var="number"/></block><block s="reportVariadicProduct"><list><block s="reportRound"><block s="reportQuotient"><block var="number"/><block var="to the nearest"/></block></block><block var="to the nearest"/></list></block></block></block></script></block-definition><block-definition s="set rotation style %&apos;which&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">left-right<options>don&apos;t rotate&#xD;all around&#xD;left-right</options></input></inputs><script><block s="doSetVar"><l><option>my rotation style</option></l><block s="reportDifference"><block s="reportListIndex"><block var="which"/><block s="reportNewList"><list><l>don&apos;t rotate</l><l>all around</l><l>left-right</l></list></block></block><l>1</l></block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="☠︎ linked? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>#</l><l>1</l></block><block s="doUntil"><block s="reportListIsEmpty"><block var="data"/></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><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script><script><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="data"/></block></block><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><script><block s="doSetVar"><l>#</l><block var="i"/></block><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><block var="i"/><block var="data"/></block></list></block></script></block></script><list></list></block></script></block></script></block></script></block-definition><block-definition s="$flash zip %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="192" collapsed="false">ZIP takes any number of lists as inputs.  The lists should all be the same length.  ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.&#xD;Viewing the inputs as the rows of a matrix, ZIP reports its transpose.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="lists"/></block><custom-block s="$flash zip %mult%l"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block var="lists"/></block></custom-block></block></block></script></block-definition><block-definition s="is %&apos;n&apos; even?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="n"/><l>2</l></block><l>0</l></list></block></block></script></block-definition><block-definition s="category of %&apos;block&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>block</l></list><l>return block.expression.category</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="%&apos;bool&apos;" type="predicate" category="other"><comment x="0" y="0" w="90" collapsed="false">for use with the when &lt;&gt; hat block. it will have the effect of checking if the boolean is true, then waits until it is false.</comment><variables><list struct="atomic" id="17943">old</list></variables><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input></inputs><script><block s="doIfElse"><block var="old"/><script><block s="doSetVar"><l>old</l><block s="evaluate"><block var="bool"/><list></list></block></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>old</l><block s="evaluate"><block var="bool"/><list></list></block></block><block s="doReport"><block var="old"/></block></script></block></script></block-definition><block-definition s="Undefined!" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reifyReporter"><script><block s="errorObsolete"></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="errorObsolete"></block></autolambda><list></list></block></list></block></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="pipe %&apos;value&apos; $arrowRight %&apos;pipe&apos;" type="reporter" category="control"><comment x="0" y="0" w="339.3333333333333" collapsed="false">The inputs are a starting value and one or more monadic functions.&#xD;The first function is called with the starting value as its input.&#xD;The second function is called with the value reported by the first function as its input, and so on.  PIPE reports the value reported by the last function.  PIPE provides an alternative notation for function composition instead of the usual nesting.&#xD;&#xD;nested acronym:                                                                 &#xD;report (combine (keep items (capital-letter? ( )) from&#xD;                  (map (letter (1) of ( )) over&#xD;                                                 (sentence→list (phrase)))) using (join ( ) ( )))&#xD;&#xD;piped acronym:                                             &#xD;report (pipe (phrase) → (sentence→list ( ))&#xD;                                     (map (letter (1) of ( )) over ( ))&#xD;                                                    (keep items (capital-letter? ( )) from ( ))&#xD;                                      (combine ( ) using (join ( ) ( )))&#xD;&#xD;Some people find PIPE easier to read because the functions are called in the same order in which you read them, whereas in nested composition the innermost function is called first. </comment><header></header><code></code><translations>pt:a aplicação a _ de _&#xD;</translations><inputs><input type="%s"></input><input type="%mult%repRing"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="pipe"/></block><script><block s="doReport"><block var="value"/></block></script><list></list></block><block s="doReport"><custom-block s="pipe %s $arrowRight %mult%repRing"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="pipe"/></block><list><block var="value"/></list></block><block s="reportCDR"><block var="pipe"/></block></custom-block></block></script></block-definition><block-definition s="average color of costume %&apos;costume&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>function</l></list></block><block s="doSetVar"><l>function</l><custom-block s="pipe %s $arrowRight %mult%repRing"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block><list><block s="reifyReporter"><autolambda><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>4</l><l/></block><l>0</l></list></block></autolambda><list></list></block><l/></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportCombine"><l/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><l/></block></block></autolambda><list></list></block></list></custom-block></block><block s="doReport"><custom-block s="color with RGBA %l"><block s="reportConcatenatedLists"><list><custom-block s="all but last of %l"><block var="function"/></custom-block><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportListItem"><l><option>last</option></l><block var="function"/></block><l>255</l></block><l>100</l></list></block></list></block></list></block></custom-block></block></script></block-definition><block-definition s="a %&apos;clone/sprite&apos; of myself" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">creates a permanent clone or sprite with the same scripts as the parent, and reports it.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>clones={&#xD;changed clones={&#xD;permanent clone&#xD;deleted clone&#xD;}&#xD;temporary clone&#xD;}&#xD;duplicate sprite</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="clone/sprite"/><l>temporary clone</l></list></block><script><block s="doReport"><block s="newClone"><l><option>myself</option></l></block></block></script><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="clone/sprite"/><l>permanent clone</l></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="clone/sprite"/><l>deleted clone</l></list></block><block s="reportVariadicEquals"><list><block var="clone/sprite"/><l>duplicate sprite</l></list></block></list></block></list></block><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doRun"><block s="reportAttributeOf"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="clone/sprite"/><l>deleted clone</l></list></block><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l><option>my temporary?</option></l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="clone/sprite"/><l>duplicate sprite</l></list></block><script><block s="doSetVar"><l><option>my parent</option></l><l></l></block></script><list></list></block></script><list></list></block></block><block var="clone"/></block><list></list></block><block s="doReport"><block var="clone"/></block></script><script><block s="doReport"><l></l></block></script></block></script></block></script></block-definition><block-definition s="date" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Date()</l></block><list></list></block></block></script></block-definition><block-definition s="open website %&apos;text&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt">https://snap.berkeley.edu</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l> window.open(a)</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="delete sprite %&apos;sprite&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><custom-block s="delete sprites %mult%s"><list><block var="sprite"/></list></custom-block></script></block-definition><block-definition s="delete sprites %&apos;sprites&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>a</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><block var="value"/><l><option>sprite</option></l></block><block var="value"/><block s="evaluate"><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>self</option></l></block></autolambda><list></list></block><block var="value"/></block><list></list></block></block></autolambda><list><l>value</l></list></block><block var="sprites"/></block></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="a"/><script><block s="doRun"><block s="reportAttributeOf"><block s="reifyScript"><script><block s="doSetVar"><l><option>my parent</option></l><block var="#1"/></block><block s="doSetVar"><l><option>my temporary?</option></l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="removeClone"></block></script><list><l>#1</l></list></block><block var="item"/></block><list><block s="reportGet"><l><option>self</option></l></block></list></block></script></block></script></block></script></block-definition><block-definition s="is %&apos;num&apos; prime?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">17</input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="num"/><l>3</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="num"/><l>2</l></list></block></block></script><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>num</l></list><l>for (var i = 2; i &lt; num^0.5; i++) {&#xD;        if (num % i === 0) {&#xD;            return false;&#xD;        }&#xD;}&#xD;return true;</l></block><list><block var="num"/></list></block></block></script></block></script></block-definition><block-definition s="send %&apos;thing&apos; to clipboard" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="thing"/><l><option>text</option></l></block><block s="reportIsA"><block var="thing"/><l><option>number</option></l></block></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>thing</l></list><l>if("clipboard" in navigator) {&#xD;  navigator.clipboard.writeText(thing)&#xD;} else {alert("I can&apos;t send thing to clipboard.")}</l></block><list><block var="thing"/></list></block></script><list></list></block></script></block-definition><block-definition s="put %&apos;thing&apos; into slot %&apos;slot&apos; of %&apos;target&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Puts a block/value inside a specified input of another block.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>thing</l><l>slot</l><l>target</l></list><l>//if empty&#xD;if (!(target.expression instanceof BlockMorph)) return thing;&#xD;if (!(thing.expression instanceof BlockMorph || thing.expression instanceof ReporterBlockMorph || typeof(thing) == "string" || typeof(thing) == "number" || typeof(thing) == "boolean")) return target;&#xD;&#xD;var type = typeof(thing);&#xD;var slotNum = 1;&#xD;//console.log();&#xD;&#xD;var outExpr = target.expression;  //.fullCopy();&#xD;var outCtx = new Context(undefined, outExpr);&#xD;//outCtx.inputs = thing.inputs || [];&#xD;&#xD;var block;&#xD;&#xD;if (thing.expression instanceof Morph) block = thing.expression;   //.fullCopy();&#xD;&#xD;for (let i in outExpr.children) {&#xD; let child = outExpr.children[i];&#xD;&#xD; if (type == "boolean") {&#xD;  if (child instanceof BooleanSlotMorph) {&#xD;   child.value = thing;&#xD;   return outCtx;&#xD;  }&#xD; } else&#xD; if (child instanceof InputSlotMorph || child instanceof RingMorph || child instanceof CSlotMorph || child instanceof ArgMorph) {&#xD;  if (slotNum == slot) {&#xD;   //console.log(child);&#xD;&#xD;   if (type == "string" || type == "number") {&#xD;    if (!(child.children[0] instanceof InputSlotStringMorph)) return target;&#xD;&#xD;    child.setContents(thing);&#xD;    delete child.bindingID;&#xD;    return outCtx;     &#xD;   }&#xD;&#xD;   if (child instanceof RingMorph) {&#xD;    child.embed(block, thing.inputs);&#xD;&#xD;    return outCtx;&#xD;   } if (child instanceof CSlotMorph) {&#xD;    let input = child;&#xD;&#xD;    //clear children&#xD;    while (input.children[0] !== undefined) input.removeChild(input.children[0]);&#xD;&#xD;    input.children.push(block);&#xD;    block.parent = input;&#xD;    input.fixLayout(); &#xD;   } else {&#xD;    if (child instanceof InputSlotMorph) {&#xD;     thing.expression.isNumeric = child.isNumeric;&#xD;     thing.expression.fixLayout();&#xD;    }&#xD;&#xD;    outExpr.children.splice(i, 1, block);&#xD;    block.parent = outExpr;&#xD;    outExpr.fixLayout();&#xD;   }&#xD;&#xD;   //target.expression.fixLayout();&#xD;   //outCtx.inputs = thing.inputs; &#xD;   return outCtx;&#xD;  }&#xD;&#xD;  slotNum++;&#xD; }&#xD;}&#xD;&#xD;return target; </l></block><list><block var="thing"/><block var="slot"/><block var="target"/></list></block></block></script></block-definition><block-definition s="infinite list" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><block var="a"/><block var="a"/></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="I am right-clicked?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (!window.rightclick){&#xD;rightclick = false;&#xD;onmousedown = (e) =&gt; {window.rightclick = (e.button == 2)};&#xD;onmouseup = () =&gt; {window.rightclick = false};&#xD;}&#xD;return rightclick;</l></block><list></list></block></block></script></block-definition><block-definition s="forever if %&apos;boolUE&apos; %&apos;c&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%ca"></input></inputs><script><block s="doForever"><script><block s="doIf"><block s="evaluate"><block var="boolUE"/><list></list></block><script><block s="doRun"><block var="c"/><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="new custom block $nl $- type: %&apos;type&apos; $nl $- category: %&apos;category&apos; $nl $- spec: %&apos;blockSpec&apos; $nl $- %&apos;vars&apos; %&apos;script&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">command<options>command&#xD;reporter&#xD;predicate</options></input><input type="%s" readonly="true">control<options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;lists&#xD;control&#xD;sensing&#xD;operators&#xD;variables&#xD;others</options></input><input type="%mult%txt"></input><input type="%scriptVars"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>inputs</l><l>spec</l></list></block><block s="doSetVar"><l>spec</l><l></l></block><block s="doSetVar"><l>inputs</l><custom-block s="xml tag %txt"><l>inputs</l></custom-block></block><block s="doForEach"><l>param</l><block var="blockSpec"/><script><block s="doIfElse"><block s="reportIsA"><block var="param"/><l><option>list</option></l></block><script><custom-block s="add XML child %l %l"><block var="inputs"/><custom-block s="mapParam %l"><block var="param"/></custom-block></custom-block><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><l>%&apos;</l><block s="reportListItem"><l>1</l><block var="param"/></block><l>&apos;</l><l> </l></list></block></block></script><script><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><block var="param"/><l> </l></list></block></block></script></block></script></block><block s="doSetVar"><l>inputs</l><custom-block s="compile XML %l"><block var="inputs"/></custom-block></block><block s="doReport"><block s="reportJoinWords"><list><l>&lt;block-definition s="</l><custom-block s="substr %mlt from %n to %n"><block var="spec"/><l></l><l>-1</l></custom-block><l>" type="</l><block var="type"/><l>" category="</l><block var="category"/><l>"&gt;&#xD;&lt;header/&gt;&#xD;&lt;code/&gt;&#xD;&lt;translations/&gt;&#xD;</l><block var="inputs"/><custom-block s="Script : Export %cmdRing"><block var="script"/></custom-block><l>&lt;/block-definition&gt;</l></list></block></block></script></block-definition><block-definition s="Script : Export %&apos;script&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>script</l></list><l>var ide = this.parentThatIsA(IDE_Morph),&#xD;    blockEditor = this.parentThatIsA(BlockEditorMorph);&#xD;if (!ide &amp;&amp; blockEditor) {&#xD;   ide = blockEditor.target.parentThatIsA(IDE_Morph);&#xD;}&#xD;if (ide) {&#xD;   return ide.serializer.serialize( script.expression);&#xD;}</l></block><list><block var="script"/></list></block></block></script></block-definition><block-definition s="instrument" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.instrument || 1;</l></block><list></list></block></block></script></block-definition><block-definition s="attribute %&apos;attribute&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">general reporter that serves lots of purposes.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>sensing={&#xD;draggable?&#xD;name&#xD;rotation style&#xD;anchor&#xD;children&#xD;parent&#xD;parts&#xD;synchronous?&#xD;}&#xD;motion={&#xD;direction&#xD;positions={&#xD;x position&#xD;y position&#xD;}&#xD;}&#xD;looks={&#xD;costume attributes={&#xD;costume #&#xD;costume name&#xD;costumes&#xD;}&#xD;effects={&#xD;brightness effect&#xD;color effect&#xD;fisheye effect&#xD;ghost effect&#xD;mosaic effect&#xD;pixelate effect&#xD;negative effect&#xD;comic effect&#xD;confetti effect&#xD;duplicate effect&#xD;saturation effect&#xD;}&#xD;hidden?&#xD;layer #&#xD;size&#xD;}&#xD;sound={&#xD;instrument&#xD;tempo&#xD;volume&#xD;sounds&#xD;}&#xD;pen={&#xD;pen hue&#xD;pen saturation&#xD;pen brightness&#xD;pen transparency&#xD;pen size&#xD;pen down?&#xD;}&#xD;control={&#xD;clones={&#xD;a permanent clone of myself=permanent clone&#xD;a deleted clone of myself=deleted clone&#xD;a duplicate sprite of myself=duplicate sprite&#xD;a temporary clone of myself=temporary clone &#xD;}&#xD;message&#xD;}</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>direction</l></list></block><script><block s="doReport"><block s="direction"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>x position</l></list></block><script><block s="doReport"><block s="xPosition"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>y position</l></list></block><script><block s="doReport"><block s="yPosition"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>costume #</l></list></block><script><block s="doReport"><block s="getCostumeIdx"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>hidden?</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportShown"></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>layer #</l></list></block><script><block s="doReport"><block s="reportListIndex"><block s="reportObject"><l><option>myself</option></l></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>size</l></list></block><script><block s="doReport"><block s="getScale"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>instrument</l></list></block><script><block s="doReport"><custom-block s="instrument"></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>tempo</l></list></block><script><block s="doReport"><block s="getTempo"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>volume</l></list></block><script><block s="doReport"><block s="getVolume"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>pen down?</l></list></block><script><block s="doReport"><block s="getPenDown"></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block><l>pen</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block><l>effect</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="getEffect"><l></l></block></autolambda><list></list></block><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>synchronous?</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportGet"><l><option>dangling?</option></l></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>costume name</l></list></block><script><block s="doReport"><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportGet"><l><option>self</option></l></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="attribute"/><l>message</l></list></block><script><block s="doReport"><block s="getLastMessage"></block></block></script><list></list></block><block s="doIf"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="#1"/></block><l>clone</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="#1"/></block><l>sprite</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="#1"/></block><l>2</l></list></block></list></block></autolambda><list><l>#1</l></list></block><list><block s="reportTextSplit"><block var="attribute"/><l> </l></block></list></block><script><block s="doReport"><custom-block s="a %s of myself"><block var="attribute"/></custom-block></block></script><list></list></block><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportGet"><l></l></block></autolambda><list></list></block><list><block var="attribute"/></list></block></block></script></block-definition><block-definition s="expand %&apos;v&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doSetVar"><l>v</l><block s="reportVariadicSum"><list><block var="v"/><l>0</l></list></block></block><block s="doDeclareVariables"><list><l>digits</l><l>scale</l></list></block><block s="doSetVar"><l>digits</l><block s="reportTextSplit"><block s="reportJoinWords"><list><block s="reportMonadic"><l><option>abs</option></l><block var="v"/></block><l>.</l></list></block><l><option>letter</option></l></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block s="reportListIndex"><l>.</l><block var="digits"/></block><l>1</l></block></block><block s="doSetVar"><l>digits</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l>.</l></list></block></autolambda><list></list></block><block s="reportMonadic"><l><option>id</option></l><block var="digits"/></block></block></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sign</option></l><block var="v"/></block><block s="reportVariadicProduct"><list><block var="value"/><block s="reportMonadic"><l><option>10^</option></l><block s="reportDifference"><block var="scale"/><block var="index"/></block></block></list></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block var="digits"/></block></block></script></block-definition><block-definition s="%&apos;which&apos; decimals %&apos;num&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>no&#xD;only</options></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportKeep"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>no</l></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block var="value"/><l>1</l></list></block></autolambda><list><l>value</l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>only</l></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block var="value"/><l>1</l></list></block></autolambda><list><l>value</l></list></block><block s="reifyReporter"><script></script><list></list></block></block></block><custom-block s="expand %n"><block var="num"/></custom-block></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="make every %&apos;thing&apos; effect in Snap! %&apos;amount&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>careful with these effects!=&#xD;hue (out of 360)=hue&#xD;saturation&#xD;brightness&#xD;contrast&#xD;invert&#xD;blur&#xD;sepia</options></input><input type="%n"><options>everything normal</options></input></inputs><script><block s="doRun"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="amount"/><l>everything normal</l></list></block><block s="reportJSFunction"><list></list><l>document.querySelector("canvas").style.filter = ""</l></block><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>document.querySelector("canvas").style.filter = "</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="thing"/><l>blur</l></list></block><block s="reportJoinWords"><list><l>blur</l><l>(</l><block var="amount"/><l>px)"</l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="thing"/><l>hue</l></list></block><block s="reportJoinWords"><list><l>hue-rotate</l><l>(</l><block var="amount"/><l>deg)"</l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="thing"/><l>saturation</l></list></block><block s="reportJoinWords"><list><l>saturate</l><l>(</l><block s="reportVariadicSum"><list><block var="amount"/><l>99</l></list></block><l>)"</l></list></block><block s="reportJoinWords"><list><block var="thing"/><l>(</l><block var="amount"/><l>)"</l></list></block></block></block></block></list></block></block></block><list></list></block></script></block-definition><block-definition s="$flag-1.5-0-200-0" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="delete all clones of %s"><l>all sprites</l></custom-block><block s="doStopThis"><l><option>all but this script</option></l></block><block s="doBroadcast"><l><option>__shout__go__</option></l><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block-definition><block-definition s="split %&apos;text&apos; by %&apos;things&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="things"/></block><l>1</l></list></block><block s="reportTextSplit"><block var="text"/><block s="reportListItem"><l>1</l><block var="things"/></block></block><custom-block s="split %s by %mult%s"><block s="reportJoinWords"><block s="reportTextSplit"><block var="text"/><block s="reportListItem"><l>1</l><block var="things"/></block></block></block><block s="reportCDR"><block var="things"/></block></custom-block></block></block></script></block-definition><block-definition s="clear my scripts" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>this.scripts.children = [];</l></block><list></list></block></script></block-definition><block-definition s="scripts" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Reports all the current sprite&apos;s scripts in a list.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return new List(this.scripts.children.map(&#xD;function (e) {if (e instanceof RingMorph){&#xD;return new Context(null,[e]);&#xD;} else {&#xD;return new Context(null,e.fullCopy());}&#xD;}).filter(function (e) {&#xD;return e.expression.constructor.name !== &#xD;"CommentMorph";}));</l></block><list></list></block></block></script></block-definition><block-definition s="when $flag-1.5-0-200-0-1 clicked" type="reporter" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reifyScript"><script><block s="receiveGo"></block></script><list></list></block></block></script></block-definition><block-definition s="when I am %&apos;condition&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">clicked<options>clicked&#xD;pressed&#xD;dropped&#xD;mouse-entered&#xD;mouse-departed&#xD;scrolled-up&#xD;scrolled-down&#xD;stopped</options></input></inputs><script><block s="doReport"><custom-block s="put %s into slot %n of %cmdRing"><block var="condition"/><l>1</l><block s="reifyScript"><script><block s="receiveInteraction"><l></l></block></script><list></list></block></custom-block></block></script></block-definition><block-definition s="when %&apos;condition&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input></inputs><script><block s="doReport"><custom-block s="put %s into slot %n of %cmdRing"><block s="reportIfElse"><custom-block s="text %txt contains %txt"><block s="reportJoinWords"><list><block var="condition"/></list></block><l>BooleanSlotMorph</l></custom-block><block s="evaluate"><block var="condition"/><list></list></block><block var="condition"/></block><l>1</l><block s="reifyScript"><script><block s="receiveCondition"><l/></block></script><list></list></block></custom-block></block></script></block-definition><block-definition s="when I start as a clone" type="reporter" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reifyScript"><script><block s="receiveOnClone"></block></script><list></list></block></block></script></block-definition><block-definition s="when I receive %&apos;message&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"><options>§_messagesMenu</options></input></inputs><script><block s="doReport"><custom-block s="put %s into slot %n of %cmdRing"><block var="message"/><l>1</l><block s="reifyScript"><script><block s="receiveMessage"><l></l><list></list></block></script><list></list></block></custom-block></block></script></block-definition><block-definition s="when %&apos;key&apos; key pressed" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%key">space<options>0&#xD;1&#xD;2&#xD;3&#xD;4&#xD;5&#xD;6&#xD;7&#xD;8&#xD;9&#xD;any key&#xD;up arrow&#xD;down arrow&#xD;left arrow&#xD;right arrow&#xD;space&#xD;+&#xD;-&#xD;a&#xD;b&#xD;c&#xD;d&#xD;e&#xD;f&#xD;g&#xD;h&#xD;i&#xD;j&#xD;k&#xD;l&#xD;m&#xD;n&#xD;o&#xD;p&#xD;q&#xD;r&#xD;s&#xD;t&#xD;u&#xD;v&#xD;w&#xD;x&#xD;y&#xD;z</options></input></inputs><script><block s="doReport"><custom-block s="put %s into slot %n of %cmdRing"><block var="key"/><l>1</l><block s="reifyScript"><script><block s="receiveKey"><l></l><list></list></block></script><list></list></block></custom-block></block></script></block-definition><block-definition s="rename costume %&apos;data&apos; to %&apos;name&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="name"/><l><option>list</option></l></block><script><block s="doRun"><block s="reifyReporter"><autolambda><block s="reportAtomicMap"><block s="reifyReporter"><script><custom-block s="rename costume %s to %s"><block var="data"/><block var="costume"/></custom-block><block s="doReport"><l></l></block></script><list><l>costume</l></list></block><block var="name"/></block></autolambda><list></list></block><list></list></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doRun"><block s="reifyReporter"><autolambda><block s="reportAtomicMap"><block s="reifyReporter"><script><custom-block s="rename costume %s to %s"><block var="costume"/><block var="name"/></custom-block><block s="doReport"><l></l></block></script><list><l>costume</l></list></block><block var="data"/></block></autolambda><list></list></block><list></list></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="data"/><l><option>text</option></l></block><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSwitchToCostume"><block var="data"/></block><block s="doSetVar"><l>data</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSwitchToCostume"><block var="a"/></block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>data</l><l>name</l></list><l>data.name = name;</l></block><list><block var="data"/><block var="name"/></list></block></script></block-definition><block-definition s="set web title to %&apos;text&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt">Snap! 6.9.0 Build Your Own Blocks</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>document.title = a;</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="web title" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return document.title;</l></block><list></list></block></block></script></block-definition><block-definition s="set answer to %&apos;thing&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>newAnswer</l></list><l>var ide = world.children[0];&#xD;ide.stage.lastAnswer = newAnswer;&#xD;return ide.stage.lastAnswer</l></block><list><block var="thing"/></list></block></script></block-definition><block-definition s="categories" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return new List(SpriteMorph.prototype.categories)</l></block><list></list></block></block></script></block-definition><block-definition s="run function ( %&apos;params&apos; ) { %&apos;body&apos; } with %&apos;inputs&apos;" type="command" category="operators"><header></header><code></code><translations>es:ejecutar función ( _ ) { _ } con _&#xD;</translations><inputs><input type="%mult%s"></input><input type="%code"></input><input type="%mult%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><block var="params"/><block var="body"/></block><block var="inputs"/></block></script></block-definition><block-definition s="call function ( %&apos;params&apos; ) { %&apos;body&apos; } with %&apos;inputs&apos;" type="reporter" category="operators"><header></header><code></code><translations>es:llamar función ( _ ) { _ } con _&#xD;</translations><inputs><input type="%mult%s"></input><input type="%code"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><block var="params"/><block var="body"/></block><block var="inputs"/></block></block></script></block-definition><block-definition s="ide" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list><l></l></list><l>return this.parentThatIsA(IDE_Morph);</l><list><l></l></list></custom-block></block></script></block-definition><block-definition s="save project" type="command" category="other"><header></header><code></code><translations>es:guadar proyecto&#xD;</translations><inputs></inputs><script><custom-block s="run function ( %mult%s ) { %code } with %mult%s"><list><l>ide</l></list><l>ide.save();</l><list><custom-block s="ide"></custom-block></list></custom-block></script></block-definition><block-definition s="this process" type="reporter" category="sensing"><header></header><code></code><translations>es:este proceso&#xD;</translations><inputs></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list><l>proc</l></list><l>proc.toString = function() {return "a SnapProcess";};&#xD;return proc;</l><list></list></custom-block></block></script></block-definition><block-definition s="this script is clicked?" type="predicate" category="sensing"><header></header><code></code><translations>es:¿esta secuencia tiene clic?&#xD;</translations><inputs></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list><l>proc</l></list><l>return proc.isClicked;</l><list><custom-block s="this process"></custom-block></list></custom-block></block></script></block-definition><block-definition s="is %&apos;thing&apos; deleted?" type="predicate" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="thing"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="is %s deleted?"><l></l></custom-block></autolambda><list></list></block><block var="thing"/></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>result</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><block s="reportBoolean"><l><bool>false</bool></l></block></autolambda><list></list></block><block var="thing"/></block><list></list></block></block></script><l>error</l><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></custom-block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="pen color" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="color with RGBA %l"><custom-block s="%s of color %n"><l>RGBA</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return (this.color);</l></block><list></list></block></custom-block></custom-block></block></script></block-definition><block-definition s="touching color %&apos;Color&apos; ?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block s="reportJSFunction"><list><l>R</l><l>V</l></list><l>R.expression.children[1] = new ColorSlotMorph (V.color);&#xD;R.expression.fixLayout();&#xD;return (R);</l></block><list><block s="reifyPredicate"><autolambda><block s="reportTouchingColor"><color>145,26,68,1</color></block></autolambda><list></list></block><block var="Color"/></list></block><list></list></block></block></script></block-definition><block-definition s="color I am touching $nl only pen trails" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>Sprite</l><l>Show</l></list><l>var Stage = this.parentThatIsA (StageMorph);&#xD;var PenTrails = Stage.penTrails ();&#xD;var Costume = Stage.costume;&#xD;&#xD;var CheckCanvas = function (C, P)&#xD;{&#xD;    if (P.x &lt; 0 || P.y &lt; 0 || P.x &gt; C.width || P.y &gt; C.height)&#xD;    {&#xD;        return ([ 0, 0, 0, 0 ]);&#xD;    }&#xD;&#xD;    var Src = C&#xD;        .getContext ("2d")&#xD;        .getImageData (P.x, P.y, 1, 1).data;&#xD;&#xD;    return ([ Src[0], Src[1], Src[2], (Src[3] / 255) * 100 ]);&#xD;};&#xD;&#xD;var Center = new Point (Stage.width () / 2, Stage.height () / 2);&#xD;var RealSpritePos = new Point (Center.x + Sprite.xPosition(), Center.y - Sprite.yPosition());&#xD;&#xD;var Clr = CheckCanvas (PenTrails, RealSpritePos);&#xD;&#xD;if (Clr[0] === 0 &amp;&amp; Clr[1] === 0 &amp;&amp; Clr[2] === 0 &amp;&amp; Clr[3] === 0 &amp;&amp; Costume !== null &amp;&amp; Costume !== undefined)&#xD;{&#xD;    Clr = CheckCanvas (Costume.contents, RealSpritePos);&#xD;}&#xD;&#xD;return (invoke (Show, new List (Clr)));</l></block><list><block s="reportGet"><l><option>self</option></l></block><block s="reifyReporter"><script></script><list></list></block></list></block></block></script></block-definition><block-definition s="JS color layout from RGBA %&apos;r&apos; %&apos;g&apos; %&apos;b&apos; %&apos;a&apos;" type="reporter" category="other"><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="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l><l>c</l><l>d</l></list><l>return new Color(a,b,c,d)</l></block><list><block var="r"/><block var="g"/><block var="b"/><block var="a"/></list></block></block></script></block-definition><block-definition s="is %&apos;thing&apos; a %&apos;type&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true">color<options>number&#xD;text&#xD;Boolean&#xD;list&#xD;sprite&#xD;costume&#xD;sound&#xD;command&#xD;reporter&#xD;predicate&#xD;color</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>color</l></list></block><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return (a instanceof ColorSlotMorph) &amp;&amp; !(a instanceof Color)</l></block><list><block var="thing"/></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportIsA"><l></l><l></l></block></autolambda><list></list></block><list><block var="thing"/><block var="type"/></list></block></block></block></script></block-definition><block-definition s="new costume with RGBA color %&apos;R&apos; %&apos;G&apos; %&apos;B&apos; %&apos;A&apos; $nl width %&apos;width&apos; height %&apos;height&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">255</input><input type="%n">255</input><input type="%n">255</input><input type="%n">100</input><input type="%n">200</input><input type="%n">30</input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block var="R"/><block var="G"/><block var="B"/><block var="A"/></list></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block s="reportVariadicProduct"><list><block var="width"/><block var="height"/></list></block></block></block><block var="width"/><block var="height"/></block></block></script></block-definition><block-definition s="combine pixels from costume %&apos;Costume 1&apos; and %&apos;Costume 2&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>4</l><block s="reportListItem"><l>1</l><l/></block></block><l>0</l></list></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><l/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><l/></block></block></block><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>4</l><block s="reportListItem"><l>1</l><l/></block></block><l>0</l></list></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><l/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><l/></block></block></block><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>4</l><block s="reportListItem"><l>1</l><l/></block></block><l>0</l></list></block><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><l/></block></block><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><l/></block></block></block><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>4</l><block s="reportListItem"><l>1</l><l/></block></block><l>0</l></list></block><block s="reportListItem"><l>4</l><block s="reportListItem"><l>1</l><l/></block></block><block s="reportListItem"><l>4</l><block s="reportListItem"><l>2</l><l/></block></block></block></list></block></autolambda><list></list></block><custom-block s="$flash zip %mult%l"><list><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="Costume 1"/></block><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="Costume 2"/></block></list></custom-block></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="Costume 1"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="Costume 1"/></block></block></block></script></block-definition><block-definition s="restore categories" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>if( world._catg){&#xD; let ide = this.parentThatIsA( IDE_Morph); &#xD; SpriteMorph.prototype.categories = Array.from( world._catg);&#xD; ide.createCategories();&#xD; ide.fixLayout();&#xD;}</l></block><list></list></block></script></block-definition><block-definition s="delete category %&apos;category&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>cat</l></list><l>if( !world._catg){ world._catg = Array.from(SpriteMorph.prototype.categories)};&#xD;let ide = this.parentThatIsA( IDE_Morph);&#xD;let idx = SpriteMorph.prototype.categories.findIndex( el =&gt; el==cat);&#xD;if( idx &lt; 0){ return};&#xD;SpriteMorph.prototype.categories.splice( idx, 1);&#xD;ide.createCategories();&#xD;ide.fixLayout();</l></block><list><block var="category"/></list></block></script></block-definition><block-definition s="the %&apos;cat&apos; category $nl only primitives" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;control&#xD;sensing&#xD;operators&#xD;variables</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="cat"/><l></l></list></block><block s="reportNewList"><list></list></block><block s="evaluate"><block s="reportJSFunction"><list><l>cat</l></list><l>return new List(this.blockTemplates(cat))</l></block><list><block var="cat"/></list></block></block></block></script></block-definition><block-definition s="keys %&apos;keys&apos; pressed in order?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%mult%key"></input></inputs><script><block s="doForEach"><l>item</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><block var="value"/><l></l></list></block></autolambda><list><l>value</l></list></block><block var="keys"/></block><script><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>any key</option></l></block></block><block s="doIfElse"><block s="reportKeyPressed"><block var="item"/></block><script></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="%&apos;kind&apos; mouse down?" type="predicate" category="sensing"><comment x="0" y="0" w="227" collapsed="false">Version of mouse down? block with left, middle or right</comment><header></header><code></code><translations>el:είναι το _ ποντίκι κάτω;&#xD;de:_ Maustaste-gedrückt?&#xD;</translations><inputs><input type="%s" readonly="true">left<options>left&#xD;middle&#xD;right</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>btn</l></list><l>if (!window.rightclick){&#xD;rightclick = false;&#xD;onmousedown = (e) =&gt; {window.rightclick = (e.button == btn)};&#xD;onmouseup = () =&gt; {window.rightclick = false};&#xD;}&#xD;return rightclick;</l></block><list><block s="reportDifference"><block s="reportListIndex"><block var="kind"/><block s="reportNewList"><list><l>left</l><l>middle</l><l>right</l></list></block></block><l>1</l></block></list></block></block></script></block-definition><block-definition s="what I am saying/asking/thinking" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var contents = this.talkBubble();&#xD;if (!contents) return &apos;&apos;;&#xD;contents = contents.contentsMorph;&#xD;if (!(contents instanceof TextMorph)){&#xD;return contents;&#xD;} else {&#xD;return contents.text;&#xD;}</l></block><list></list></block></block></script></block-definition><block-definition s="alter costume %&apos;costume&apos; r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>c</l></list></block><block s="doSetVar"><l>c</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>list</option></l></block><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>pixels</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block><block var="costume"/></block></block><block s="doReport"><block s="reportNewCostume"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportQuotient"><block s="reportNewList"><list><block var="r"/><block var="g"/><block var="b"/><l>100</l></list></block><l>100</l></block></list></block></autolambda><list></list></block><list><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>list</option></l></block><block var="costume"/><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block></block></list></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="c"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="c"/></block></block></block></script></block-definition><block-definition s="flip costume %&apos;cos&apos; %&apos;w&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">current<options>§_costumesMenu</options></input><input type="%s" readonly="true"><options>horizontally&#xD;vertically</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="w"/><l>horizontally</l></list></block><block s="reportNewCostumeStretched"><block var="cos"/><l>-100</l><l>100</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="w"/><l>vertically</l></list></block><block s="reportNewCostumeStretched"><block var="cos"/><l>100</l><l>-100</l></block><l></l></block></block></block></script></block-definition><block-definition s="window %&apos;which&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">title<options>url&#xD;hash&#xD;title&#xD;origin</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>var result = &apos;&apos;;&#xD;switch (which){&#xD;case &apos;url&apos;:&#xD;result = location.href;&#xD;break;&#xD;case &apos;title&apos;:&#xD;result = document.title;&#xD;break;&#xD;case &apos;origin&apos;:&#xD;result = location.origin;&#xD;break;&#xD;case &apos;hash&apos;:&#xD;result = location.hash;&#xD;}&#xD;return result;</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="snap! Prompt %&apos;body&apos; titled %&apos;title&apos; (2)" type="command" category="Prompt"><comment x="0" y="0" w="90" collapsed="false">Informs something AND waits until the user has pressed OK.</comment><header></header><code></code><translations></translations><inputs><input type="%s">This is some content!</input><input type="%s">!</input></inputs><script><custom-block s="let %upvar be %s"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.inform(title, body, this.world());&#xD;return () =&gt; (isDone);</l></block><list><block var="body"/><block var="title"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block var="test"/><list></list></block></block></script></block-definition><block-definition s="snap! Prompt %&apos;body&apos; titled %&apos;title&apos;" type="predicate" category="Prompt"><comment x="0" y="0" w="90" collapsed="false">Asks the user a yes/no question, then reports true or false based on whether they clicked yes.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Are you sure?</input><input type="%s">?</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    result = this.buttons.children[0].userState == &apos;highlight&apos;;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.askYesNo(title, body, this.world());&#xD;return new List([() =&gt; (isDone), () =&gt; (result)]);</l></block><list><block var="body"/><block var="title"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="snap! Prompt %&apos;title&apos; default %&apos;default&apos;" type="reporter" category="Prompt"><comment x="0" y="0" w="90" collapsed="false">Waits for user input, then reports the thing they typed. If you press cancel, however, it reports false instead.</comment><header></header><code></code><translations></translations><inputs><input type="%s">What&apos;s your name?</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list><l>origin</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    result = this.buttons.children[1].userState&#xD;    == &apos;highlight&apos; ? false:this.getInput();&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.prompt(title, origin, this.world());&#xD;return new List([() =&gt; (isDone), () =&gt; (result)]);</l></block><list><block var="default"/><block var="title"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="%&apos;c&apos; % chance true" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">50</input></inputs><script><block s="doReport"><block s="reportVariadicLessThanOrEquals"><list><block s="reportRandom"><l>1</l><l>100</l></block><block var="c"/></list></block></block></script></block-definition><block-definition s="set %&apos;which&apos; to %&apos;data&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">title<options>title&#xD;location</options></input><input type="%s">Snap!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>data</l></list><l>switch (which) {&#xD;case &apos;title&apos;:&#xD;document.title = data;&#xD;break;&#xD;case &apos;location&apos;:&#xD;location.href = data;&#xD;break;&#xD;}</l></block><list><block var="which"/><block var="data"/></list></block></script></block-definition><block-definition s="pause %&apos;which&apos; $pause-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="98" collapsed="false">Pause a selected range of processes.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">all<options>all&#xD;this script&#xD;all but this script</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>this script</l></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>proc</l></list><l>proc.isPaused = true;</l></block><list></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>all but this script</l></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>x</l></list><l>var procs = world.children[0].stage.threads.processes;&#xD;if (procs.length &lt; 1) return;&#xD;x.pauseShieldFlag = null;&#xD;procs.forEach(&#xD;function (proc) {&#xD;if (!("pauseShieldFlag" in proc)){&#xD;proc.pause();&#xD;}})&#xD;delete x.pauseShieldFlag;</l></block><list></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>all</l></list></block><script><block s="doPauseAll"></block></script><script></script></block></script></block></script></block></script></block-definition><block-definition s="unpause all $pointRight-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Unpause each paused process.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>world.children[0].stage.threads.processes.forEach(&#xD;function (proc) {&#xD;proc.isPaused = false;&#xD;})</l></block><list></list></block></script></block-definition><block-definition s="color with RGBA %&apos;RGBA&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%l">0</input></inputs><script><block s="doReport"><custom-block s="color with RGBA %n %n %n %n"><block s="reportListItem"><l>1</l><block var="RGBA"/></block><block s="reportListItem"><l>2</l><block var="RGBA"/></block><block s="reportListItem"><l>3</l><block var="RGBA"/></block><block s="reportListItem"><l>4</l><block var="RGBA"/></block></custom-block></block></script></block-definition><block-definition s="layer #" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListIndex"><block s="reportGet"><l><option>self</option></l></block><block s="evaluate"><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><l>Stage</l></block><list></list></block></block></block></script></block-definition><block-definition s="delete all clones of %&apos;which&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>all sprites&#xD;this sprite</options></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportAskFor"><l></l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>temporary?</option></l></block></autolambda><list></list></block><list></list></block></autolambda><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>all sprites</l></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>this sprite</l></list></block><block s="reportGet"><l><option>clones</option></l></block><l></l></block></block></block><script><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block></script></block></script></block-definition><block-definition s="stage image" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return new Costume(world.children[0].stage.fullImage());</l></block><list></list></block></block></script></block-definition><block-definition s="all but last of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block var="list"/></block></block></block></block></script></block-definition><block-definition s="tell all clones of this sprite to %&apos;which&apos; %&apos;inputs&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%inputs"></input></inputs><script><block s="doRun"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><script><block s="doTellTo"><l></l><block var="which"/><block var="inputs"/></block><block s="doReport"><l></l></block></script><list></list></block><block s="reportGet"><l><option>clones</option></l></block></block></autolambda><list></list></block><list></list></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><list></list></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><list></list></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="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block></block></script></block-definition><block-definition s="$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="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><block var="data"/><block var="function"/></list></block></block></script><scripts><script x="12" y="147.55555555555554"><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="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><list></list></block></script></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="#1"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="#2"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="#2"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="#1"/></block></script><list></list></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="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="data"/></block></script><list></list></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></scripts></block-definition><block-definition s="☠︎ linked? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l></list><l>return data.isLinked;</l></block><list><block var="data"/></list></block></block></script></block-definition><block-definition s="%&apos;s&apos; digits of PI" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">reports a JS string so you see all the didgits.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="s"/><l>0</l></list></block><block s="reportVariadicSum"><list><l>3</l><l>0</l></list></block><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block s="reportModulus"><block var="s"/><l>1</l></block><l>0</l></list></block><custom-block s="%n digits of PI"><block s="reportRound"><block var="s"/></block></custom-block><block s="evaluate"><block s="reportJSFunction"><list><l>digits</l></list><l>let i = 1n;&#xD;let x = 3n * (10n ** (BigInt(digits)+20n));&#xD;let pi = x;&#xD;while (x &gt; 0) {&#xD;        x = x * i / ((i + 1n) * 4n);&#xD;        pi += x / (i + 2n);&#xD;        i += 2n;&#xD;}&#xD;return "3."+((pi / (10n ** 20n)).toString().slice(1));</l></block><list><block var="s"/></list></block></block></block></block></script></block-definition><block-definition s="%&apos;num1&apos; in %&apos;num2&apos; chance" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><block s="reportNumbers"><l>1</l><block var="num1"/></block><block s="reportListItem"><block s="reportRandom"><l>1</l><block var="num2"/></block><block s="reportNumbers"><l>1</l><block var="num2"/></block></block></block></block></script></block-definition><block-definition s="SendMessageToSoundScope %&apos;message&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>message</l></list><l>window.parent.postMessage(message, "*");</l></block><list><block var="message"/></list></block><block s="doBroadcast"><block var="message"/><list></list></block></script><scripts><script x="322.1865234375" y="52.833333333333314"><block s="reportNot"><l/></block></script></scripts></block-definition><block-definition s="Show Block %&apos;ID&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>showGuideFrame(</l><block var="ID"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Hide Block %&apos;ID&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>hideGuideFrame(</l><block var="ID"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="shape of $⍴-1-255-255-0 %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="310" collapsed="false">Reports a flat list of the maximum size of the input array along&#xD;each dimension: number of rows, number of columns, etc.&#xD;&quot;Maximum&quot; because it works even if the array isn&apos;t uniformly shaped.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>sublists</l></list></block><block s="doIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doSetVar"><l>sublists</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListIsEmpty"><l/></block></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="shape of $⍴-1-255-255-0 %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block></block></block><block s="doIfElse"><block s="reportListIsEmpty"><block var="sublists"/></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><custom-block s="flatten (ravel) $,-1-255-255-0 %l"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block var="number"/><l/></block></autolambda><list></list></block><block var="sublists"/></block><block s="reifyReporter"><autolambda><custom-block s="max %s $⌈-1-255-255-0 %s"><l></l><l></l></custom-block></autolambda><list></list></block></block></autolambda><list><l>number</l></list></block><block s="reportNumbers"><l>1</l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>length</option></l><l/></block></autolambda><list></list></block><block var="sublists"/></block><block s="reifyReporter"><autolambda><custom-block s="max %s $⌈-1-255-255-0 %s"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></block></custom-block></block></block></script></block></script><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block></script></block-definition><block-definition s="flatten (ravel) $,-1-255-255-0 %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="216" collapsed="false">Reports a flat list of all the atomic elements &#xD;of sublists of the input list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="flatten (ravel) $,-1-255-255-0 %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block var="data"/></list></block></block></script></block></script></block-definition><block-definition s="rank of $⍴⍴-1-255-255-0 %&apos;array&apos;" type="reporter" category="lists"><comment x="0" y="0" w="240" collapsed="true">Reports the number of dimensions of the input.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="shape of $⍴-1-255-255-0 %l"><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="array"/></custom-block></custom-block></block></block></script></block-definition><block-definition s="multimap %&apos;function&apos; %&apos;data&apos;" type="reporter" category="other"><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="doIf"><custom-block s="combine in rows (reduce by column vectors) %repRing $/-1-255-255-0 %l"><block s="reifyReporter"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListIsEmpty"><l/></block></autolambda><list></list></block><block var="data"/></block></custom-block><script><block s="doIfElse"><custom-block s="combine in rows (reduce by column vectors) %repRing $/-1-255-255-0 %l"><block s="reifyReporter"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListIsEmpty"><l/></block></autolambda><list></list></block><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><custom-block s="error %txt"><l>Non-conforming shapes.</l></custom-block></script></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="data"/></block></block><custom-block s="multimap %repRing %mult%l"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="combine in rows (reduce by column vectors) %&apos;func&apos; $/-1-255-255-0 %&apos;stuff&apos;" type="reporter" category="lists"><comment x="0" y="0" w="288.6666666666667" collapsed="false">This function has two names because there are two ways&#xD;to understand it.&#xD;&#xD;Lisp way:  A matrix is a list of rows.  This block combines the numbers in each row, producing one value for the entire row.&#xD;&#xD;APL way:  A matrix is made of vectors.  This block takes each column as a vector, and does vector arithmetic on the columns, producing one column as the result.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><custom-block s="rank of $⍴⍴-1-255-255-0 %l"><block var="stuff"/></custom-block><l>1</l></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="combine in rows (reduce by column vectors) %repRing $/-1-255-255-0 %l"><block var="func"/><l/></custom-block></autolambda><list></list></block><block var="stuff"/></block></block></script><script><block s="doReport"><block s="reportCombine"><block var="stuff"/><block var="func"/></block></block></script></block></script></block-definition><block-definition s="scalar -&gt; hyper %&apos;func&apos;" type="reporter" category="control"><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.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>hyper func</l></list></block><block s="doSetVar"><l>hyper func</l><block s="reifyReporter"><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="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="hyper func"/><list><custom-block s="scalar-value helper %s"><block var="a"/></custom-block><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="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="hyper func"/><list><l></l><custom-block s="scalar-value helper %s"><block var="b"/></custom-block></list></block></autolambda><list></list></block><block var="a"/></block></block></script><script><block s="doReport"><custom-block s="multimap %repRing %mult%l"><block var="hyper func"/><list><block var="a"/><block var="b"/></list></custom-block></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="scalar? %&apos;x&apos;" type="predicate" category="other"><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><list></list></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportCombine"><custom-block s="shape of $⍴-1-255-255-0 %l"><block var="x"/></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>1</l></list></block></block></script></block-definition><block-definition s="scalar-value helper %&apos;x&apos;" type="reporter" category="other"><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><list></list></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="Palette visible %&apos;onoff&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">0<options>-1 force off&#xD;0 switch&#xD;1 force on</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>enable</l></list><l>/** Enable/disable */&#xD;console.log( world._width);&#xD;if(enable == 0){&#xD; if( world._width){ enable = 1}&#xD; else { enable = -1};&#xD;}&#xD;&#xD;console.log( enable);&#xD;let ide = world.children[ 0];&#xD;if( enable &lt; 0){ /** Hide palette **/&#xD;  world._width = ide.paletteWidth;&#xD;  ide.paletteWidth = 35;&#xD;  ide.fixLayout();&#xD; }&#xD;else{ /** Show palette **/&#xD; ide.paletteWidth = world._width || 200;&#xD; ide.fixLayout();&#xD; delete world._width;&#xD;}</l></block><list><block var="onoff"/></list></block></script></block-definition><block-definition s="copy %&apos;pat&apos; as %&apos;prefix&apos; $nl %&apos;isGlobal&apos; %&apos;type&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%txt"></input><input type="%b">true<options>command&#xD;reporter&#xD;predicate</options></input><input type="%txt"><options>command&#xD;reporter&#xD;predicate</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>pat</l><l>prefix</l><l>isGlobal</l><l>type</l></list><l>let def=new CustomBlockDefinition( prefix+pat.expression.definition.spec);&#xD;//copy properties of pat&#xD;let def_pat = pat.expression.definition;&#xD;def.category = def_pat.category;&#xD;def.declarations = def_pat.declarations;&#xD;def.isGlobal = isGlobal;&#xD;def.type = type;&#xD;console.log( def_pat.body);&#xD;//start procedure body&#xD;def.body = def_pat.body;&#xD;&#xD;//register with IDE&#xD;if( def.isGlobal){&#xD;  this.parentThatIsA(StageMorph).globalBlocks.push( def);&#xD;}else{&#xD;  this.customBlocks.push(def)&#xD;};&#xD;&#xD;world.children[0].flushPaletteCache();&#xD;world.children[0].refreshPalette();</l></block><list><block var="pat"/><block var="prefix"/><block var="isGlobal"/><block var="type"/></list></block></script></block-definition><block-definition s="my coordinates" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block></script></block-definition><block-definition s="glide %&apos;n&apos; seconds to %&apos;object&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%s" readonly="true">mouse-pointer<options>function () {&#xD;var object = {&#xD;&quot;random position&quot; : &quot;random position&quot;,&#xD;&quot;mouse-pointer&quot; : &quot;mouse-pointer&quot;,&#xD;&quot;center&quot; : &quot;center&quot;,&#xD;&quot;&#126;&quot;: &quot;&#126;&quot;,&#xD;};&#xD;var spritesObj = {&#xD;},&#xD;homeSprite = world.children[0].sprites.itemsArray().find(e =&gt; (e.scripts == this.parent.parent))&#xD;world.children[0].sprites.itemsArray().map(e=&gt;e.name).forEach(&#xD;function (spriteName){&#xD;if (spriteName != (homeSprite||{name:null}).name){&#xD;spritesObj[spriteName] = spriteName;&#xD;}})&#xD;if (Object.keys(spritesObj).length &lt; 1){&#xD;delete object[&quot;&#126;&quot;];&#xD;}&#xD;return Object.assign(object, spritesObj);&#xD;}</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="object"/><l>mouse-pointer</l></list></block><script><block s="doSetVar"><l>object</l><block s="reportNewList"><list><block s="reportMouseX"></block><block s="reportMouseY"></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="object"/><l>random position</l></list></block><script><block s="doSetVar"><l>object</l><block s="reportNewList"><list><block s="reportRandom"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block></block><block s="reportRandom"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>bottom</option></l><l>Stage</l></block></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="object"/><l>center</l></list></block><script><block s="doSetVar"><l>object</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></block></script><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportConcatenatedLists"><list><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportAskFor"><l></l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block></autolambda><list></list></block><block s="reportAskFor"><block s="reportObject"><l>Stage</l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block><block s="reportAskFor"><block s="reportObject"><l>Stage</l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></list></block><block var="object"/></block><script><block s="doSetVar"><l>object</l><block s="evaluate"><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><custom-block s="my coordinates"></custom-block></autolambda><list></list></block><block var="object"/></block><list></list></block></block></script><script><block s="doSetVar"><l>object</l><custom-block s="my coordinates"></custom-block></block></script></block></script></block></script></block></script></block><block s="doGlide"><block var="n"/><block s="reportListItem"><l>1</l><block var="object"/></block><block s="reportListItem"><l>2</l><block var="object"/></block></block></script></block-definition><block-definition s="xml tag %&apos;name&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="149" collapsed="false">Creates a new XML tag</comment><header></header><code></code><translations></translations><inputs><input type="%txt">name</input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>XML</l><block var="name"/><block s="reportNewList"><list></list></block><l></l></list></block></block></script></block-definition><block-definition s="compile XML %&apos;xmldata&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="230" collapsed="false">Compiles an XML tag into its plain-text version</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l>tag</l></custom-block></block></block><block s="doForEach"><l>item</l><custom-block s="sub %l from %n to %n"><block var="xmldata"/><l>5</l><l></l></custom-block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> </l><custom-block s="%mlt in pair %l"><l>first</l><block var="item"/></custom-block><l>="</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="%mlt in pair %l"><l>second</l><block var="item"/></custom-block></block><l>"</l></list></block></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><l>&lt;</l><block var="result"/><l>&gt;</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l>contents</l></custom-block></block></list></block></block><block s="doForEach"><l>item</l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l></l></custom-block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><custom-block s="compile XML %l"><block var="item"/></custom-block></list></block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>&lt;/</l><block s="reportTextFunction"><l><option>XML escape</option></l><custom-block s="XML attribute %l %txt"><block var="xmldata"/><l>tag</l></custom-block></block><l>&gt;</l></list></block></block></script></block-definition><block-definition s="pair %&apos;first&apos; %&apos;second&apos;" type="reporter" category="variables"><comment x="0" y="0" w="146" collapsed="false">Makes a pair from two values</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>pair</l><block var="first"/><block var="second"/></list></block></block></script></block-definition><block-definition s="%&apos;which&apos; in pair %&apos;pair&apos;" type="reporter" category="variables"><comment x="0" y="0" w="112" collapsed="false">Getter for pair values</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">first<options>first&#xD;second&#xD;&#126;&#xD;random</options></input><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>first</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="pair"/></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>second</l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="pair"/></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="which"/><l>random</l></list></block><script><block s="doReport"><block s="reportListItem"><block s="reportRandom"><l>2</l><l>3</l></block><block var="pair"/></block></block></script><list></list></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="set %&apos;which&apos; of pair %&apos;pair&apos; to %&apos;value&apos;" type="command" category="variables"><comment x="0" y="0" w="103" collapsed="false">Setter for pair values</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">first<options>first&#xD;second&#xD;&#126;&#xD;random</options></input><input type="%l"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>first</l></list></block><script><block s="doReplaceInList"><l>2</l><block var="pair"/><block var="value"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>second</l></list></block><script><block s="doReplaceInList"><l>3</l><block var="pair"/><block var="value"/></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="which"/><l>random</l></list></block><script><block s="doReplaceInList"><block s="reportRandom"><l>2</l><l>3</l></block><block var="pair"/><block var="value"/></block></script><list></list></block></script></block></script></block></script></block-definition><block-definition s="XML attribute %&apos;xml&apos; %&apos;name&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="169" collapsed="false">Get an attribute from an XML tag&#xD;empty -&gt; children&#xD;tag -&gt; tag name&#xD;contents -&gt; contents of tag</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"><options>tag&#xD;contents</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="name"/><l><option>word</option></l></block></block><l></l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="xml"/></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="name"/><l>tag</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="xml"/></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>contents</l></list></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="xml"/></block></block></script><list></list></block></script></block></script></block><block s="doDeclareVariables"><list><l>find</l></list></block><block s="doSetVar"><l>find</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="%mlt in pair %l"><l>first</l><l/></custom-block><block var="name"/></list></block></autolambda><list></list></block><custom-block s="sub %l from %n to %n"><block var="xml"/><l>5</l><l></l></custom-block></block></block><block s="doIf"><block var="find"/><script><block s="doReport"><custom-block s="%mlt in pair %l"><l>second</l><block var="find"/></custom-block></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="set XML attribute %&apos;xml&apos; %&apos;name&apos; %&apos;value&apos;" type="command" category="sensing"><comment x="0" y="0" w="196" collapsed="false">Set the value of an XML tag&apos;s attributestag -&gt; tag namecontents -&gt; contents of tag</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="name"/><l>tag</l></list></block><script><block s="doReplaceInList"><l>2</l><block var="xml"/><block var="value"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="name"/><l>contents</l></list></block><script><block s="doReplaceInList"><l>4</l><block var="xml"/><block var="value"/></block></script><script><block s="doDeclareVariables"><list><l>find</l></list></block><block s="doSetVar"><l>find</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="%mlt in pair %l"><l>first</l><l/></custom-block><block var="name"/></list></block></autolambda><list></list></block><custom-block s="sub %l from %n to %n"><block var="xml"/><l>5</l><l></l></custom-block></block></block><block s="doIfElse"><block var="find"/><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block><script><block s="doDeleteFromList"><custom-block s="index of %s in %l"><block var="find"/><block var="xml"/></custom-block><block var="xml"/></block></script><script><custom-block s="set %mlt of pair %l to %s"><l>second</l><block var="find"/><block var="value"/></custom-block></script></block></script><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block></block><script><block s="doAddToList"><custom-block s="pair %s %s"><block var="name"/><block var="value"/></custom-block><block var="xml"/></block></script><list></list></block></script></block></script></block></script></block></script></block-definition><block-definition s="index of %&apos;item&apos; in %&apos;list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="124" collapsed="false">Finds the index of an item within an array</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="item"/></list></block><script><block s="doReport"><block var="i"/></block></script><list></list></block></script></block><block s="doReport"><l>0</l></block></script></block-definition><block-definition s="sub %&apos;list&apos; from %&apos;indexStart&apos; to %&apos;indexEnd&apos;" type="reporter" category="lists"><comment x="0" y="0" w="170" collapsed="false">Creates a new list from the range specified by the parameters&#xD;start empty -&gt; 1&#xD;end empty -&gt; #list</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="indexStart"/><l>0</l></list></block><script><block s="doSetVar"><l>indexStart</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="indexEnd"/><l>0</l></list></block><script><block s="doSetVar"><l>indexEnd</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="indexStart"/><block var="indexEnd"/></list></block></block><script><block s="doFor"><l>i</l><block var="indexStart"/><block var="indexEnd"/><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="result"/></block></script></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="add XML child %&apos;xml&apos; %&apos;child&apos;" type="command" category="sensing"><comment x="0" y="0" w="136" collapsed="false">Adds a child to an XML tag</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doAddToList"><block var="child"/><block s="reportListItem"><l>3</l><block var="xml"/></block></block></script></block-definition><block-definition s="ez set XML attribute $nl $- %&apos;xml&apos; $nl $- %&apos;name&apos; %&apos;value&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="243" collapsed="false">See [set XML attribute]Messy form, designed for quick setting of attributes</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><custom-block s="set XML attribute %l %txt %txt"><block var="xml"/><block var="name"/><block var="value"/></custom-block></script><list></list></block><list></list></block><block s="doReport"><block var="xml"/></block></script></block-definition><block-definition s="mapParam %&apos;paramData&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="204" collapsed="false">Used in [new custom block]&#xD;Converts  [variable parameter] to XML tags</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>input</l></custom-block><l>type</l><block s="reportListItem"><l>2</l><block var="paramData"/></block></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="paramData"/></block><l></l></list></block></block><script><custom-block s="set XML attribute %l %txt %txt"><block var="result"/><l>contents</l><block s="reportListItem"><l>3</l><block var="paramData"/></block></custom-block></script><list></list></block><block s="doIf"><block s="reportListItem"><l>5</l><block var="paramData"/></block><script><custom-block s="set XML attribute %l %txt %txt"><block var="result"/><l>readonly</l><l>true</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><block var="paramData"/></block><l></l></list></block></block><script><custom-block s="add XML child %l %l"><block var="result"/><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>options</l></custom-block><l>contents</l><block s="reportListItem"><l>4</l><block var="paramData"/></block></custom-block></custom-block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="substr %&apos;string&apos; from %&apos;s&apos; to %&apos;e&apos;" type="reporter" category="operators"><comment x="0" y="0" w="253" collapsed="false">Gets a section of a string based on its parameters&#xD;Negative values are offsets from the end of the string&#xD;start empty -&gt; 1&#xD;last empty -&gt; #string</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="s"/><l>0</l></list></block><script><block s="doSetVar"><l>s</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="s"/><l>0</l></list></block><script><block s="doSetVar"><l>s</l><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><block var="s"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="e"/><l>0</l></list></block><script><block s="doSetVar"><l>e</l><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="e"/><l>0</l></list></block><script><block s="doSetVar"><l>e</l><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><block var="e"/></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><l></l></block><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="s"/><block var="e"/></list></block></block><script><block s="doFor"><l>i</l><block var="s"/><block var="e"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block></script></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="Obsolete!" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="errorObsolete"></block></autolambda><list></list></block></block></script></block-definition><block-definition s="color %&apos;Value&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%clr"></input></inputs><script><block s="doDeclareVariables"><list><l>parts</l></list></block><block s="doSetVar"><l>parts</l><custom-block s="%s of color %n"><l>RGBA</l><block var="Value"/></custom-block></block><block s="doReport"><custom-block s="color with RGBA %n %n %n %n"><block s="reportListItem"><l>1</l><block var="parts"/></block><block s="reportListItem"><l>2</l><block var="parts"/></block><block s="reportListItem"><l>3</l><block var="parts"/></block><block s="reportListItem"><l>4</l><block var="parts"/></block></custom-block></block></script></block-definition><block-definition s="color with RGBA %&apos;red&apos; %&apos;green&apos; %&apos;blue&apos; %&apos;alpha&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%n">100</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>r</l><l>g</l><l>b</l><l>a</l></list><l>var Clr = new Color(r, g, b, a / 100);&#xD;var M = new ColorSlotMorph (Clr);&#xD;&#xD;M.r = r;&#xD;M.g = g;&#xD;M.b = b;&#xD;M.a = a / 100;&#xD;&#xD;M.eq = Clr.eq;&#xD;&#xD;var C = undefined;&#xD;&#xD;window.$ = M;&#xD;&#xD;var Size = 30;&#xD;&#xD;M.bounds.corner.x = Size;&#xD;M.bounds.corner.y = Size;&#xD;&#xD;M.fullImage = function ()&#xD;{&#xD;    if (C !== undefined)&#xD;    {&#xD;        return (C);&#xD;    }&#xD;&#xD;    C = document.createElement("canvas");&#xD;    C.width = 50;&#xD;    C.height = 50;&#xD;&#xD;    var E = C.getContext("2d");&#xD;&#xD;    E.fillStyle = Clr.toString ();&#xD;    E.fillRect(0, 0, +C.width, +C.height);&#xD;&#xD;    return (C);&#xD;};&#xD;&#xD;M.image = M.fullImage(Size);&#xD;&#xD;return (M);</l></block><list><block var="red"/><block var="green"/><block var="blue"/><block var="alpha"/></list></block></block></script></block-definition><block-definition s="gradient costume %&apos;width&apos; × %&apos;height&apos; $nl with colors %&apos;colors&apos; meeting %&apos;which&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">256</input><input type="%n">256</input><input type="%mult%clr"></input><input type="%s" readonly="true">horizontally<options>horizontally&#xD;vertically</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>w</l><l>h</l><l>c</l><l>v</l><l>b</l></list><l>var canvas = document.createElement(&apos;canvas&apos;),&#xD;    ctx = canvas.getContext(&apos;2d&apos;),&#xD;    grd = ctx.createLinearGradient(0, 0, v?0:w, v?h:0);&#xD;canvas.width = w;&#xD;canvas.height = h;&#xD;c = c.itemsArray();&#xD;if (c.length &gt; 0){&#xD;grd.addColorStop(0, c[0]);&#xD;c.shift();&#xD;c.forEach(function (clr, idx) {&#xD; grd.addColorStop((1/c.length*(idx+1)), clr);&#xD;})}&#xD;ctx.fillStyle = grd;&#xD;ctx.fillRect(0, 0, w, h);&#xD;return new Costume(canvas);</l></block><list><block var="width"/><block var="height"/><block var="colors"/><block s="reportVariadicEquals"><list><block var="which"/><l>vertically</l></list></block></list></block></block></script></block-definition><block-definition s="gradient costume %&apos;width&apos; × %&apos;height&apos; $nl with colors %&apos;colors&apos; meeting %&apos;which&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">256</input><input type="%n">256</input><input type="%mult%n"></input><input type="%s" readonly="true">horizontally<options>horizontally&#xD;vertically</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>horizontally</l><l>vertically</l></list></block><block var="which"/></block><block s="evaluate"><block s="reportJSFunction"><list><l>w</l><l>h</l><l>c</l><l>v</l><l>b</l></list><l>var canvas = document.createElement(&apos;canvas&apos;),&#xD;    ctx = canvas.getContext(&apos;2d&apos;),&#xD;    grd = ctx.createLinearGradient(0, 0, v?0:w, v?h:0);&#xD;canvas.width = w;&#xD;canvas.height = h;&#xD;c = c.itemsArray();&#xD;if (c.length &gt; 0){&#xD;grd.addColorStop(0, c[0]);&#xD;c.shift();&#xD;c.forEach(function (clr, idx) {&#xD; grd.addColorStop((1/c.length*(idx+1)), clr);&#xD;})}&#xD;ctx.fillStyle = grd;&#xD;ctx.fillRect(0, 0, w, h);&#xD;return new Costume(canvas);</l></block><list><block var="width"/><block var="height"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="JS color layout from RGBA %n %n %n %n"><l></l><l></l><l></l><l></l></custom-block></autolambda><list></list></block><custom-block s="%s of color %n"><l>RGBA</l><block var="value"/></custom-block></block></autolambda><list><l>value</l></list></block><block var="colors"/></block><block s="reportVariadicEquals"><list><block var="which"/><l>vertically</l></list></block></list></block><l></l></block></block></script></block-definition><block-definition s="unsaved changes?" type="predicate" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return world.children[0].unsavedChanges()</l></block><list></list></block></block></script></block-definition><block-definition s="closest sprite" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportRelationTo"><l><option>distance</option></l><l></l></block><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRelationTo"><l><option>distance</option></l><l></l></block></autolambda><list></list></block><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>other sprites</option></l></block></block></block></script></block-definition><block-definition s="closest sprites with range %&apos;r&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="$flash sort %l ordering with %predRing"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block s="reportListItem"><block s="reportNumbers"><l>1</l><block var="r"/></block><custom-block s="$flash sort %l ordering with %predRing"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRelationTo"><l><option>distance</option></l><l></l></block></autolambda><list></list></block><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></block><block s="reportRelationTo"><l><option>distance</option></l><l></l></block></block></autolambda><list></list></block><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></block></script></block-definition><block-definition s="%&apos;text&apos; %&apos;type&apos; %&apos;text2&apos;" type="predicate" category="operators"><comment x="0" y="0" w="298" collapsed="false">CONTAINS = True if the 2nd string is included in the 1st one&#xD;STARTS WITH = True if the 1st string starts with the 2nd one&#xD;ENDS WITH = True if the 1st string ends with the 2nd one</comment><header></header><code></code><translations></translations><inputs><input type="%s">raincoat</input><input type="%s" readonly="true">contains<options>contains&#xD;starts with&#xD;ends with</options></input><input type="%s">coat</input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block var="type"/><block s="reportNewList"><list><l>contains</l><l>starts with</l><l>ends with</l></list></block></block><block s="reportNewList"><list><custom-block s="%s ≠ %s"><custom-block s="find %s in %s"><block var="text2"/><block var="text"/></custom-block><l>0</l></custom-block><block s="reportVariadicEquals"><list><custom-block s="find %s in %s"><block var="text2"/><block var="text"/></custom-block><l>1</l></list></block><block s="reportVariadicEquals"><list><custom-block s="letters %n to %n of %s"><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="text2"/></block></block><l>1</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><block var="text"/></custom-block><block var="text2"/></list></block></list></block></block></block></script></block-definition><block-definition s="find %&apos;search&apos; in %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211" collapsed="false">Finds the position of the the 1st string in the 2nd ones.</comment><header></header><code></code><translations>el:εύρεση του _ στο _&#xD;de:_ finden in _&#xD;</translations><inputs><input type="%s">Your</input><input type="%s">Build Your Own Blocks</input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="find %s in %s starting from %n"><block var="search"/><block var="string"/><l>1</l></custom-block></block></script></block></script></block-definition><block-definition s="find %&apos;search&apos; in %&apos;string&apos; starting from %&apos;num&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211" collapsed="false">Finds the position of the the 1st string in the 2nd ones.</comment><header></header><code></code><translations>el:εύρεση του _ στο _  αρχίζοντας από το _&#xD;de:_ finden in _ ab _&#xD;</translations><inputs><input type="%s">l</input><input type="%s">Hello World</input><input type="%n">3</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>comparison idx</l><l>found pos</l><l>loop idx</l></list></block><block s="doSetVar"><l>comparison idx</l><l>0</l></block><block s="doSetVar"><l>found pos</l><l>0</l></block><block s="doSetVar"><l>loop idx</l><block s="reportDifference"><block var="num"/><l>1</l></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="found pos"/><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block var="loop idx"/><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="search"/></block></block></list></block></list></block><script><block s="doChangeVar"><l>loop idx</l><l>1</l></block><block s="doSetVar"><l>comparison idx</l><l>1</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="comparison idx"/><block var="search"/></block><block s="reportLetter"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="loop idx"/><l>1</l></block><block var="comparison idx"/></list></block><block var="string"/></block></list></block></block><block s="reportVariadicEquals"><list><block var="comparison idx"/><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="search"/></block><l>1</l></list></block></list></block></list></block><script><block s="doChangeVar"><l>comparison idx</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="comparison idx"/><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="search"/></block><l>1</l></list></block></list></block><script><block s="doSetVar"><l>found pos</l><block var="loop idx"/></block></script><list></list></block></script></block><block s="doReport"><block var="found pos"/></block></script></block></script></block-definition><block-definition s="letters %&apos;n1&apos; to %&apos;n2&apos; of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211" collapsed="false">Returns letters from X to X from the word</comment><header></header><code></code><translations>el:γράμματα _ ως _ του _&#xD;de:Buchstaben _ bis _ von _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">3</input><input type="%s">World</input></inputs><script><block s="doReport"><custom-block s="%l as spaceless text"><custom-block s="items %n to %n of %l"><block var="n1"/><block var="n2"/><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></custom-block></custom-block></block></script></block-definition><block-definition s="items %&apos;num&apos; to %&apos;num2&apos; of %&apos;list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="174" collapsed="false">Returns a list with the items from X to Y from a list</comment><header></header><code></code><translations>el:στοιχεία _ ως _ του _&#xD;de:Elementen _ bis _ von _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">3</input><input type="%l"></input></inputs><script><custom-block s="let %upvar be %s"><l>var</l><block s="reportNumbers"><block var="num"/><block var="num2"/></block></custom-block><block s="doReport"><block s="reportIfElse"><custom-block s="setting %s"><l>Hyper blocks support</l></custom-block><block s="reportListItem"><block var="var"/><block var="list"/></block><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block var="τιμή"/><block var="list"/></block></autolambda><list><l>τιμή</l></list></block><block var="var"/></block></block></block></script></block-definition><block-definition s="setting %&apos;which&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="254.66666666666666" collapsed="false">Allows reading global settings programmatically.&#xD;&#xD;Eisenberg&apos;s Law:  Anything you can do from the user interface you should be able to do in your program, and vice versa.  This library is just a beginning; there are many UI controls outside of the Settings menu.</comment><header></header><code></code><translations>pt:o valor da configuração _&#xD;el:ρύθμιση _&#xD;de:Einstellung _&#xD;</translations><inputs><input type="%s" readonly="true"><options>Project notes&#xD;Project name&#xD;User&#xD;Presentation mode&#xD;Language&#xD;Zoom blocks&#xD;Stage size&#xD;Stage scale&#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;Visible stepping&#xD;Thread safe scripts&#xD;Prefer smooth animations&#xD;Flat line ends&#xD;Codification support&#xD;Inheritance support&#xD;Hyper blocks support&#xD;Visible palette</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    ide = stage.parentThatIsA(IDE_Morph),&#xD;    world = stage.parentThatIsA(WorldMorph);&#xD;&#xD;switch (which) {&#xD;    case &apos;Project notes&apos;:&#xD;        return ide.projectNotes;&#xD;    case &apos;Project name&apos;:&#xD;        return ide.projectName;&#xD;    case &apos;User&apos;:&#xD;        return ide.cloud.username;&#xD;    case &apos;Presentation mode&apos;:&#xD;        return ide.isAppMode;&#xD;    case &apos;Language&apos;:&#xD;        return SnapTranslator.language;&#xD;    case &apos;Zoom blocks&apos;:&#xD;        return SyntaxElementMorph.prototype.scale;&#xD;    case &apos;Stage size&apos;:&#xD;        return new List([StageMorph.prototype.dimensions.x,&#xD;                                   StageMorph.prototype.dimensions.y]);&#xD;    case &apos;Stage scale&apos;:&#xD;       return stage.scale;&#xD;    case &apos;Retina display support&apos;:&#xD;        return isRetinaEnabled();&#xD;    case &apos;Long form input dialog&apos;:&#xD;        return InputSlotDialogMorph.prototype.isLaunchingExpanded;&#xD;    case &apos;Plain prototype labels&apos;:&#xD;        return BlockLabelPlaceHolderMorph.prototype.plainLabel;&#xD;    case &apos;Input sliders&apos;:&#xD;        return MorphicPreferences.useSliderForInput;&#xD;    case &apos;Execute on slider change&apos;:&#xD;        return ArgMorph.prototype.executeOnSliderEdit;&#xD;    case &apos;Clicking sound&apos;:&#xD;        return !!BlockMorph.prototype.snapSound;&#xD;    case &apos;Turbo mode&apos;:&#xD;        return stage.isFastTracked;&#xD;    case &apos;Flat design&apos;:&#xD;        return MorphicPreferences.isFlat;&#xD;    case &apos;Keyboard editing&apos;:&#xD;        return !!this.scripts.focus;&#xD;    case &apos;Visible stepping&apos;:&#xD;        return Process.prototype.enableSingleStepping;&#xD;    case &apos;Thread safe scripts&apos;:&#xD;        return stage.isThreadSafe;&#xD;    case &apos;Prefer smooth animations&apos;:&#xD;        return StageMorph.prototype.frameRate &gt; 0;&#xD;    case &apos;Flat line ends&apos;:&#xD;        return SpriteMorph.prototype.useFlatLineEnds;&#xD;    case &apos;Codification support&apos;:&#xD;        return StageMorph.prototype.enableCodeMapping;&#xD;    case &apos;Inheritance support&apos;:&#xD;        return StageMorph.prototype.enableInheritance;&#xD;    case &apos;Hyper blocks support&apos;:&#xD;        return Process.prototype.enableHyperOps;&#xD;    default: return which;&#xD;    case &apos;Visible palette&apos;:&#xD;        return ide.currentCategory;&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><comment x="0" y="0" w="183.33333333333334" collapsed="false">LET (FOO) BE (5)&#xD;is equivalent to&#xD;SCRIPT VARIABLES (FOO)&#xD;SET (FOO) TO (5)</comment><header></header><code></code><translations>pt:cria a variável de guião _ com valor _&#xD;el:άφησε το _ να είναι _&#xD;de:lassen _ auf _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="%&apos;list&apos; as spaceless text" type="reporter" category="lists"><comment x="0" y="0" w="174" collapsed="false">Returns the list as sentence without spaces</comment><header></header><code></code><translations>el:_ ως αχώριστο κείμενο&#xD;de:_ als untrennen Text&#xD;</translations><inputs><input type="%l" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="%&apos;RGBA&apos; of color %&apos;Color&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">RGBA<options>R (red)=R&#xD;G (green)=G&#xD;B (blue)=B&#xD;A (alpha/transparency)=A&#xD;RGBA&#xD;RGB&#xD;name</options></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="RGBA"/><l>name</l></list></block><block s="evaluate"><block s="reportJSFunction"><list><l>colour</l></list><l>function rgbToHex(r, g, b) {&#xD;  return "#" + ((1 &lt;&lt; 24) + (r &lt;&lt; 16) + (g &lt;&lt; 8) + b).toString(16).slice(1);&#xD;}&#xD;colour = rgbToHex(colour.r, colour.g, colour.b);&#xD;    var colours = {"#f0f8ff":"aliceblue","#faebd7":"antiquewhite","#00ffff":"cyan","#7fffd4":"aquamarine","#f0ffff":"azure","#f5f5dc":"beige","#ffe4c4":"bisque","#000000":"black","#ffebcd":"blanchedalmond","#0000ff":"blue","#8a2be2":"blueviolet","#a52a2a":"brown","#deb887":"burlywood","#5f9ea0":"cadetblue","#7fff00":"chartreuse","#d2691e":"chocolate","#ff7f50":"coral","#6495ed":"cornflowerblue","#fff8dc":"cornsilk","#dc143c":"crimson","#00008b":"darkblue","#008b8b":"darkcyan","#b8860b":"darkgoldenrod","#a9a9a9":"darkgray","#006400":"darkgreen","#bdb76b":"darkkhaki","#8b008b":"darkmagenta","#556b2f":"darkolivegreen","#ff8c00":"darkorange","#9932cc":"darkorchid","#8b0000":"darkred","#e9967a":"darksalmon","#8fbc8f":"darkseagreen","#483d8b":"darkslateblue","#2f4f4f":"darkslategray","#00ced1":"darkturquoise","#9400d3":"darkviolet","#ff1493":"deeppink","#00bfff":"deepskyblue","#696969":"dimgray","#1e90ff":"dodgerblue","#b22222":"firebrick","#fffaf0":"floralwhite","#228b22":"forestgreen","#ff00ff":"magenta","#dcdcdc":"gainsboro","#f8f8ff":"ghostwhite","#ffd700":"gold","#daa520":"goldenrod","#808080":"gray","#008000":"green","#adff2f":"greenyellow","#f0fff0":"honeydew","#ff69b4":"hotpink","#cd5c5c":"indianred ","#4b0082":"indigo","#fffff0":"ivory","#f0e68c":"khaki","#e6e6fa":"lavender","#fff0f5":"lavenderblush","#7cfc00":"lawngreen","#fffacd":"lemonchiffon","#add8e6":"lightblue","#f08080":"lightcoral","#e0ffff":"lightcyan","#fafad2":"lightgoldenrodyellow","#d3d3d3":"lightgrey","#90ee90":"lightgreen","#ffb6c1":"lightpink","#ffa07a":"lightsalmon","#20b2aa":"lightseagreen","#87cefa":"lightskyblue","#778899":"lightslategray","#b0c4de":"lightsteelblue","#ffffe0":"lightyellow","#00ff00":"lime","#32cd32":"limegreen","#faf0e6":"linen","#800000":"maroon","#66cdaa":"mediumaquamarine","#0000cd":"mediumblue","#ba55d3":"mediumorchid","#9370d8":"mediumpurple","#3cb371":"mediumseagreen","#7b68ee":"mediumslateblue","#00fa9a":"mediumspringgreen","#48d1cc":"mediumturquoise","#c71585":"mediumvioletred","#191970":"midnightblue","#f5fffa":"mintcream","#ffe4e1":"mistyrose","#ffe4b5":"moccasin","#ffdead":"navajowhite","#000080":"navy","#fdf5e6":"oldlace","#808000":"olive","#6b8e23":"olivedrab","#ffa500":"orange","#ff4500":"orangered","#da70d6":"orchid","#eee8aa":"palegoldenrod","#98fb98":"palegreen","#afeeee":"paleturquoise","#d87093":"palevioletred","#ffefd5":"papayawhip","#ffdab9":"peachpuff","#cd853f":"peru","#ffc0cb":"pink","#dda0dd":"plum","#b0e0e6":"powderblue","#800080":"purple","#663399":"rebeccapurple","#ff0000":"red","#bc8f8f":"rosybrown","#4169e1":"royalblue","#8b4513":"saddlebrown","#fa8072":"salmon","#f4a460":"sandybrown","#2e8b57":"seagreen","#fff5ee":"seashell","#a0522d":"sienna","#c0c0c0":"silver","#87ceeb":"skyblue","#6a5acd":"slateblue","#708090":"slategray","#fffafa":"snow","#00ff7f":"springgreen","#4682b4":"steelblue","#d2b48c":"tan","#008080":"teal","#d8bfd8":"thistle","#ff6347":"tomato","#40e0d0":"turquoise","#ee82ee":"violet","#f5deb3":"wheat","#ffffff":"white","#f5f5f5":"whitesmoke","#ffff00":"yellow","#9acd32":"yellowgreen"}&#xD;&#xD;    if (typeof colours[colour.toLowerCase()] != &apos;undefined&apos;)&#xD;        return colours[colour.toLowerCase()];&#xD;&#xD;    return false;</l></block><list><block var="Color"/></list></block><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block var="RGBA"/><l>RGBA</l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="RGBA"/><l>RGB</l></list></block><l></l><block s="reportListItem"><block s="reportListIndex"><block var="RGBA"/><block s="reportNewList"><list><l>R</l><l>G</l><l>B</l><l>A</l></list></block></block><custom-block s="%s of color %n"><l>RGBA</l><block var="Color"/></custom-block></block></block><block s="evaluate"><block s="reportJSFunction"><list><l>C</l></list><l>return (new List([ C.r, C.g, C.b, C.a * 100 ]));</l></block><list><block var="Color"/></list></block></block></block></block></script></block-definition><block-definition s="$brush set pen %&apos;dimension&apos; to %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><comment x="0" y="0" w="265.3333333333333" collapsed="false">This block allows you to set the pen&apos;s color, transparency (on a scale from 0=opaque to 100=invisible), or size (in pixels).  The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), color number, crayon, or X11/W3C color name.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>color&#xD;color number&#xD;crayon&#xD;fair hue&#xD;&#126;1&#xD;size&#xD;transparency&#xD;X11/W3C name&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB(A) vector&#xD;RGB(A) hex&#xD;}&#xD;}</options></input><input type="%s"><options>function () {&#xD;&#xD;// add/edit menus but don&apos;t forget to edit other slot manual menu options to match&#xD;&#xD;var color_number=[&#xD;&quot;0 black=0&quot;, &quot;14 white=14&quot;,&#xD;&quot;20 spectral red=20&quot;, &quot;25 darkest red=25&quot;,&#xD;&quot;30 saddle brown=30&quot;, &quot;35 darkest brown=35&quot;,&#xD;&quot;40 spectral orange=40&quot;, &quot;45 darkest orange=45&quot;,&#xD;&quot;50 spectral yellow=50&quot;, &quot;55 darkest yellow=55&quot;,&#xD;&quot;60 spectral green=60&quot;, &quot;65 darkest green=65&quot;,&#xD;&quot;70 spectral cyan=70&quot;, &quot;75 darkest cyan=75&quot;,&#xD;&quot;80 spectral blue=80&quot;, &quot;85 darkest blue=85&quot;,&#xD;&quot;90 spectral violet=90&quot;, &quot;95 magenta=95&quot;];&#xD;&#xD;var fair_hue=[&#xD;&quot;0 red=0&quot;, &quot;12.5 brown=12.5&quot;, &quot;25 orange=25&quot;, &quot;37.5 yellow=37.5&quot;,&#xD;&quot;50 green=50&quot;, &quot;62.5 cyan=62.5&quot;, &quot;75 blue=75&quot;, &quot;87.5 violet=87.5&quot;];&#xD;&#xD;var crayon=[&#xD;&quot;grays&quot;,[&#xD;&quot;0 black #000000=0&quot;,&#xD;&quot;1 gray7 #121212=1&quot;,&#xD;&quot;2 gray14 #242424=2&quot;,&#xD;&quot;3 gray21 #363636=3&quot;,&#xD;&quot;4 gray28 #484848=4&quot;,&#xD;&quot;5 gray36 #5c5c5c=5&quot;,&#xD;&quot;6 gray43 #6d6d6d=6&quot;,&#xD;&quot;7 gray50 #7f7f7f=7&quot;,&#xD;&quot;8 gray57 #919191=8&quot;,&#xD;&quot;9 gray64 #a3a3a3=9&quot;,&#xD;&quot;10 gray71 #b5b5b5=10&quot;,&#xD;&quot;11 gray78 #c8c8c8=11&quot;,&#xD;&quot;12 gray85 #dadada=12&quot;,&#xD;&quot;13 gray92 #ececec=13&quot;,&#xD;&quot;14 white #ffffff=14&quot;],&#xD;&quot;pinks&quot;,[&#xD;&quot;15 deep pink #ff1493=15&quot;,&#xD;&quot;16 hot pink #ff69b4=16&quot;,&#xD;&quot;17 bright pink #ff007f=17&quot;,&#xD;&quot;18 raspberry #e30b5d=18&quot;,&#xD;&quot;19 amaranth #e52b50=19&quot;],&#xD;&quot;reds&quot;,[&#xD;&quot;20 red #ff0000=20&quot;,&#xD;&quot;21 burgundy #900020=21&quot;,&#xD;&quot;22 cherry #990000=22&quot;,&#xD;&quot;23 dark candy apple red #a40000=23&quot;,&#xD;&quot;24 sanguine #c00000=24&quot;,&#xD;&quot;25 maroon #800000=25&quot;,&#xD;&quot;26 crimson #c90016=26&quot;,&#xD;&quot;27 Lists #d94d11=27&quot;,&#xD;&quot;28 candy apple red #ff0800=28&quot;,&#xD;&quot;29 coquelicot #ff3800=29&quot;],&#xD;&quot;browns&quot;,[&#xD;&quot;30 saddle brown #8b4513=30&quot;,&#xD;&quot;31 chocolate #7b3f00=31&quot;,&#xD;&quot;32 kobicha #6b4423=32&quot;,&#xD;&quot;33 sepia #704214=33&quot;,&#xD;&quot;34 chestnut #954535=34&quot;,&#xD;&quot;35 dark brown #654321=35&quot;,&#xD;&quot;36 brown #964b00=36&quot;,&#xD;&quot;37 golden brown #996515=37&quot;,&#xD;&quot;38 cinnamon #b87333=38&quot;,&#xD;&quot;39 copper #d2691e=39&quot;],&#xD;&quot;oranges&quot;,[&#xD;&quot;40 orange #ff7f00=40&quot;,&#xD;&quot;41 Pantone orange #ff5800=41&quot;,&#xD;&quot;42 pumpkin #ff7518=42&quot;,&#xD;&quot;43 Variables #f3761d=43&quot;,&#xD;&quot;44 Spanish orange #e86100=44&quot;,&#xD;&quot;45 burnt orange #cc5500=45&quot;,&#xD;&quot;46 sinopia #cb410b=46&quot;,&#xD;&quot;47 ochre #cc7722=47&quot;,&#xD;&quot;48 carrot #ed9121=48&quot;,&#xD;&quot;49 tangerine #f28500=49&quot;],&#xD;&quot;yellows&quot;,[&#xD;&quot;50 yellow #ffff00=50&quot;,&#xD;&quot;51 Control #e6a822=51&quot;,&#xD;&quot;52 dark goldenrod #b8860b=52&quot;,&#xD;&quot;53 goldenrod #daa520=53&quot;,&#xD;&quot;54 saffron #f4c430=54&quot;,&#xD;&quot;55 sandstorm #ecd540=55&quot;,&#xD;&quot;56 mustard #ffdb58=56&quot;,&#xD;&quot;57 gold #ffd700=57&quot;,&#xD;&quot;58 egg yolk #fee33e=58&quot;,&#xD;&quot;59 rubber duck #fbe108=59&quot;],&#xD;&quot;greens&quot;,[&#xD;&quot;60 lime #00ff00=60&quot;,&#xD;&quot;61 apple green #8db600=61&quot;,&#xD;&quot;62 Operators #62c213=62&quot;,&#xD;&quot;63 forest green #228b22=63&quot;,&#xD;&quot;64 green #008000=64&quot;,&#xD;&quot;65 dark green #006400=65&quot;,&#xD;&quot;66 dark pastel green #03c03c=66&quot;,&#xD;&quot;67 emerald #50c878=67&quot;,&#xD;&quot;68 mint #3eb489=68&quot;,&#xD;&quot;69 Pen #00a178=69&quot;],&#xD;&quot;cyans&quot;,[&#xD;&quot;70 aqua (cyan) #00ffff=70&quot;,&#xD;&quot;71 dark cyan #008b8b=71&quot;,&#xD;&quot;72 cerulean #007ba7=72&quot;,&#xD;&quot;73 iceberg #71a6d2=73&quot;,&#xD;&quot;74 Sensing #0494dc=74&quot;,&#xD;&quot;75 teal #008080=75&quot;,&#xD;&quot;76 light sky blue #87cefa=76&quot;,&#xD;&quot;77 deep sky blue #00bfff=77&quot;,&#xD;&quot;78 dodger blue #1e90ff=78&quot;,&#xD;&quot;79 azure #007fff=79&quot;],&#xD;&quot;blues&quot;,[&#xD;&quot;80 blue #0000ff=80&quot;,&#xD;&quot;81 midnight blue #191970=81&quot;,&#xD;&quot;82 dark powder blue #003399=82&quot;,&#xD;&quot;83 cobalt #0047ab=83&quot;,&#xD;&quot;84 denim #1560bd=84&quot;,&#xD;&quot;85 navy blue #000080=85&quot;,&#xD;&quot;86 steel blue #4682b4=86&quot;,&#xD;&quot;87 Motion #4a6cd4=87&quot;,&#xD;&quot;88 cornflower #6495ed=88&quot;,&#xD;&quot;89 slate blue #6a5acd=89&quot;],&#xD;&quot;purples&quot;,[&#xD;&quot;90 violet #8000ff=90&quot;,&#xD;&quot;91 Looks #8f56e3=91&quot;,&#xD;&quot;92 grape #6f2da8=92&quot;,&#xD;&quot;93 indigo #4b0082=93&quot;,&#xD;&quot;94 x11 purple #a020f0=94&quot;,&#xD;&quot;95 magenta (fuchia) #ff00ff=95&quot;,&#xD;&quot;96 dark orchid #9932cc=96&quot;,&#xD;&quot;97 Sound #cf4ad9=97&quot;,&#xD;&quot;98 purple #7f007f=98&quot;,&#xD;&quot;99 dark magenta #8b008b=99&quot;]];&#xD;&#xD;function makeMenuHelper(items, output) {&#xD;    // in an array, walk through the items in pairs&#xD;    var i = 0;&#xD;    while (i &lt; items.length) {&#xD;        var label = items[i];&#xD;        var possiblyNested = items[i+1];&#xD;        // if possiblyNested is array, it is a nest under label&#xD;        // if possiblyNested is string, it is just a sibling&#xD;        if (possiblyNested === undefined) {&#xD;          // label is actually the last element of the list&#xD;          var hasEquals = label.split(&quot;=&quot;);&#xD;          if (hasEquals.length == 2) {&#xD;            output[hasEquals[0]] = hasEquals[1];&#xD;            i += 1;&#xD;          } else if (hasEquals.length == 3) {&#xD;            output[hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2]] = hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2];&#xD;            i += 1;&#xD;          } else {&#xD;            output[label] = label;&#xD;            i += 1;&#xD;          }&#xD;        } else if (typeof possiblyNested == &quot;string&quot;) {&#xD;          var hasEquals = label.split(&quot;=&quot;);&#xD;          if (hasEquals.length == 2) {&#xD;            output[hasEquals[0]] = hasEquals[1];&#xD;            i += 1;&#xD;          } else if (hasEquals.length == 3) {&#xD;            output[hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2]] = hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2];&#xD;            i += 1;&#xD;          } else {&#xD;            output[label] = label;&#xD;            i += 1;&#xD;          }&#xD;        } else if (Array.isArray(possiblyNested)) {&#xD;          var nestingOutput = {};&#xD;          makeMenuHelper(possiblyNested, nestingOutput);&#xD;          output[label] = nestingOutput;&#xD;          i += 2&#xD;        } else {&#xD;          throw new Error(&quot;Bad value at index &quot; + i);&#xD;        }&#xD;    }&#xD;}&#xD;&#xD;var ide = world.children[0];&#xD;var menuVarName = this.parent.blockSpec;&#xD;try {&#xD;    menuVarName = this.parent.cachedInputs[0].children[0].text;&#xD;} catch(err) {&#xD;    menuPoss = this.parent.children;&#xD;    menuPoss = menuPoss.filter(function (e) { return (e instanceof InputSlotMorph)});&#xD;    menuVarName = menuPoss[0].children[0].text;&#xD;}&#xD;&#xD;menuVarName = menuVarName.replace(&quot; &quot;,&quot;_&quot;);&#xD;&#xD;try {&#xD;    var menu = eval(menuVarName);&#xD;    var output = {};&#xD;    makeMenuHelper(menu, output);&#xD;    return output;&#xD;} catch(err) {&#xD;}&#xD;}</options></input><input type="%mult%s"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doRun"><block s="reportListItem"><block s="reportListIndex"><block var="dimension"/><block var="✐ dimension names"/></block><block var="✐ dimension dispatch"/></block><list><block var="value"/><block var="more value"/></list></block></script><scripts><comment x="460.0888671875" y="4175.599999999967" w="251.33333333333334" collapsed="false">Note to myself:  When the user sets a fair dimension, say fair HSL, variable HSL contains the corresponding &quot;unfair&quot; values, and &quot;raw HSL&quot; contains the numbers the user actually gave.  It has to be this way because in the case of HSV, there is no &quot;HSV&quot; variable; rather, we use the pen&apos;s actual remembered-by-Javascript color&apos;s HSV coordinates.  So our HSL variable has to be analogous to that.  In both cases &quot;raw&quot; means the numbers the user gave us.</comment><script x="32.333333333333336" y="187.66666666666666"><block s="evaluate"><block s="reportJSFunction"><list><l>spec</l><l>proc</l></list><l>   var foo = this.parentThatIsA(StageMorph).globalBlocks.find(definition =&gt; {&#xD;                return (definition.localizedSpec() == spec);});&#xD;   return proc.reify(foo.blockInstance(),new List([]));&#xD;</l></block><list><block s="reportJoinWords"><list><l>✐ set pen to </l><block var="dimension"/><l> %s %mult%s</l></list></block></list></block></script></scripts></block-definition><block-definition s="mmap %&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="doIf"><block s="reportListIsEmpty"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="lists"/></block></block><custom-block s="mmap %repRing over %mult%l"><block var="function"/><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block var="lists"/></block></custom-block></block></block></script></block-definition><block-definition s="✐ update HSL" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>L</l></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block></block><script><block s="doSetVar"><l>✐ HSL</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><block s="evaluate"><block s="reifyReporter"><script><block s="doSetVar"><l>L</l><block s="reportDifference"><block var="V"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="V"/><block var="S"/></list></block><l>2</l></block></block></block><block s="doReport"><block s="reportNewList"><list><block var="H"/><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="L"/><l>0</l></list></block><block s="reportVariadicEquals"><list><block var="L"/><l>1</l></list></block></list></block><l>0</l><block s="reportQuotient"><block s="reportDifference"><block var="V"/><block var="L"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></block></block><block var="L"/></list></block></block></script><list><l>H</l><l>S</l><l>V</l></list></block><custom-block s="HSV color"></custom-block></block></block></block><block s="doSetVar"><l>✐ raw HSL</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><block s="evaluate"><block s="reifyReporter"><script><block s="doSetVar"><l>L</l><block s="reportDifference"><block var="V"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="V"/><block var="S"/></list></block><l>2</l></block></block></block><block s="doReport"><block s="reportNewList"><list><block var="H"/><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="L"/><l>0</l></list></block><block s="reportVariadicEquals"><list><block var="L"/><l>1</l></list></block></list></block><l>0</l><block s="reportQuotient"><block s="reportDifference"><block var="V"/><block var="L"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></block></block><block var="L"/></list></block></block></script><list><l>H</l><l>S</l><l>V</l></list></block><block s="reportIfElse"><block var="✐ fair?"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l>100</l></block></autolambda><list></list></block><block var="✐ raw HSV"/></block><custom-block s="HSV color"></custom-block></block></block></block></block></script><list></list></block></script></block-definition><block-definition s="✐ update HSV" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>V</l><l>L</l><l>HSL 0-1</l><l>raw HSL 0-1</l></list></block><block s="doSetVar"><l>HSL 0-1</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l>100</l></block></autolambda><list></list></block><block var="✐ HSL"/></block></block><block s="doSetVar"><l>L</l><block s="reportListItem"><l>3</l><block var="HSL 0-1"/></block></block><block s="doSetVar"><l>V</l><block s="reportVariadicSum"><list><block var="L"/><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="HSL 0-1"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></list></block></list></block></block><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="HSL 0-1"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="V"/><l>0</l></list></block><l>0</l><block s="reportDifference"><l>2</l><block s="reportVariadicProduct"><list><l>2</l><block s="reportQuotient"><block var="L"/><block var="V"/></block></list></block></block></block><block var="V"/></custom-block><block s="doIfElse"><block var="✐ fair?"/><script><block s="doSetVar"><l>raw HSL 0-1</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><l>100</l></block></autolambda><list></list></block><block var="✐ raw HSL"/></block></block><block s="doSetVar"><l>L</l><block s="reportListItem"><l>3</l><block var="raw HSL 0-1"/></block></block><block s="doSetVar"><l>V</l><block s="reportVariadicSum"><list><block var="L"/><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="raw HSL 0-1"/></block><block s="reportVariadicMin"><list><block var="L"/><block s="reportDifference"><l>1</l><block var="L"/></block></list></block></list></block></list></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="raw HSL 0-1"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="V"/><l>0</l></list></block><l>0</l><block s="reportDifference"><l>2</l><block s="reportVariadicProduct"><list><l>2</l><block s="reportQuotient"><block var="L"/><block var="V"/></block></list></block></block></block><block var="V"/></list></block></block></block></script><script><block s="doSetVar"><l>✐ raw HSV</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l>100</l></list></block></autolambda><list></list></block><custom-block s="HSV color"></custom-block></block></block></script></block></script></block-definition><block-definition s="$brush pen %&apos;dimension&apos;" type="reporter" category="pen"><comment x="0" y="0" w="380.6666666666667" collapsed="false">This block reports the pen size, color, or transparency, in all the same ways that the SET PEN block allows you to set those pen properties. (It will also report the current crayon number, if the pen color was most recently set with SET PEN TO CRAYON.)&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details. </comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>color&#xD;color number&#xD;crayon&#xD;fair hue&#xD;&#126;1&#xD;size&#xD;transparency&#xD;X11/W3C name&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGBA vector&#xD;RGB(A) hex&#xD;}&#xD;}</options></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>size</l></list></block><script><block s="doReport"><block s="getPenAttribute"><l><option>size</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>hue</l></list></block><script><block s="doReport"><block s="getPenAttribute"><l><option>hue</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>saturation (HSV)</l></list></block><script><block s="doReport"><block s="getPenAttribute"><l><option>saturation</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>value (brightness)</l></list></block><script><block s="doReport"><block s="getPenAttribute"><l><option>brightness</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>transparency</l></list></block><script><block s="doReport"><block s="getPenAttribute"><l><option>transparency</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>RGB vector</l></list></block><script><block s="doReport"><custom-block s="RGB color"></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>RGBA vector</l></list></block><script><block s="doReport"><block s="reportConcatenatedLists"><list><custom-block s="RGB color"></custom-block><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><block s="getPenAttribute"><l><option>transparency</option></l></block></block><l>255</l></list></block><l>100</l></block></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>red</l></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="RGB color"></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>green</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><custom-block s="RGB color"></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>blue</l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><custom-block s="RGB color"></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>RGB(A) hex</l></list></block><script><block s="doDeclareVariables"><list><l>rgb</l></list></block><block s="doSetVar"><l>rgb</l><custom-block s="RGB color"></custom-block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="getPenAttribute"><l><option>transparency</option></l></block><l>0</l></list></block><script><block s="doAddToList"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><block s="getPenAttribute"><l><option>transparency</option></l></block></block><l>255</l></list></block><l>100</l></block><block var="rgb"/></block></script><list></list></block><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><custom-block s="✐ hexchar %s"><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><l></l><l>16</l></block></block></custom-block><custom-block s="✐ hexchar %s"><block s="reportModulus"><l></l><l>16</l></block></custom-block></list></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRound"><l></l></block></autolambda><list></list></block><block var="rgb"/></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>HSV vector</l></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l>100</l><l></l></list></block></autolambda><list></list></block><custom-block s="HSV color"></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>HSL vector</l></list></block><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block var="✐ HSL"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>saturation (HSL)</l></list></block><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>2</l><block var="✐ HSL"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>lightness</l></list></block><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>3</l><block var="✐ HSL"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>color number</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>color</l></list></block><block var="✐ color scale"/><l>not set</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>color</l></list></block><script><block s="doReport"><custom-block s="✐ current pen color"></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair hue</l></list></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="✐ raw HSL"/></block></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="✐ raw HSV"/></block></block></script></block></script><list></list></block><block s="doReport"><l>not set</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair saturation (HSL)</l></list></block><script><block s="doIf"><block var="✐ fair?"/><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>2</l><block var="✐ raw HSL"/></block></block></script><list></list></block><block s="doReport"><l>not set</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair lightness</l></list></block><script><block s="doIf"><block var="✐ fair?"/><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block s="reportListItem"><l>3</l><block var="✐ raw HSL"/></block></block></script><list></list></block><block s="doReport"><l>not set</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair HSL vector</l></list></block><script><block s="doIf"><block var="✐ fair?"/><script><custom-block s="✐ update HSL"></custom-block><block s="doReport"><block var="✐ raw HSL"/></block></script><list></list></block><block s="doReport"><l>not set</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair saturation (HSV)</l></list></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="doReport"><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></block></script><list></list></block><block s="doReport"><l>not set</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair value (brightness)</l></list></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="doReport"><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></block></script><list></list></block><block s="doReport"><l>not set</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair HSV vector</l></list></block><script><block s="doIf"><block var="✐ fair?"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="doReport"><block var="✐ raw HSV"/></block></script><list></list></block><block s="doReport"><l>not set</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>crayon</l></list></block><script><block s="doReport"><custom-block s="✐ crayon number of color %s"><custom-block s="✐ current pen color"></custom-block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>X11/W3C name</l></list></block><script><block s="doReport"><custom-block s="✐ X11 name of color %s"><custom-block s="✐ current pen color"></custom-block></custom-block></block></script><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg);</l></block><list><block var="msg"/></list></block></script></block-definition><block-definition s="✐ make integer RGB" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRound"><l></l></block></autolambda><list></list></block><custom-block s="RGB color"></custom-block></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;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><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;pt:lança _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="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;pt:ignora _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="✐ no spaces %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportTextSplit"><block var="text"/><l> </l></block></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="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>varName</l><l>proc</l></list><l>if ((typeof varName) != "string" || varName === "") {&#xD;    throw new Error("name isn&apos;t a string: " + varName);&#xD;}&#xD;return proc.homeContext.variables.silentFind(varName)? true:false;</l></block><list><block var="name"/></list></block></block></script></block-definition><block-definition s="$brush color %&apos;newcolor&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%clr"></input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block s="reportTextSplit"><custom-block s="substring of %txt before %txt"><custom-block s="substring of %txt after %txt"><block var="newcolor"/><l>(</l></custom-block><l>)</l></custom-block><l><option>csv</option></l></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l><l>255</l></list></block></list></block></list></block><l>1</l><l>1</l></block></block></script></block-definition><block-definition s="$brush mix colors %&apos;weighted colors&apos; using %&apos;flavor&apos; rules" type="reporter" category="pen"><comment x="0" y="0" w="304" collapsed="false">combines any number of colors, reporting the result of mixing them, either additively (like colored light beams) or subtractively (like paints).  If the result is too bright (additive) or too dark (subtractive), try the &quot;averaged&quot; versions, which will make the brightness more like the brightnesses of the input colors.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%obj"></input><input type="%s" readonly="true"><options>additive (light)&#xD;additive (averaged)&#xD;subtractive (ideal)&#xD;subtractive (averaged)&#xD;simulated paint&#xD;paint (sRGB corrected)</options></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doDeclareVariables"><list><l>new</l><l>max</l><l>colors</l><l>weights</l></list></block><block s="doSetVar"><l>colors</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportListItem"><l>1</l><l/></block><l></l></block></autolambda><list></list></block><block var="weighted colors"/></block></block><block s="doSetVar"><l>weights</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportListItem"><l>2</l><l/></block><l>1</l></block></autolambda><list></list></block><block var="weighted colors"/></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>paint</l></custom-block><script><block s="doDeclareVariables"><list><l>rho-r</l><l>rho-g</l><l>rho-b</l><l>waveforms</l></list><comment w="152.66666666666666" collapsed="true">convert RGB to waveform</comment></block><block s="doSetVar"><l>rho-r</l><block s="reportTextSplit"><l>0.021592459, 0.020293111, 0.021807906, 0.023803297, 0.025208132, 0.025414957, 0.024621282, 0.020973705, 0.015752802, 0.01116804, 0.008578277, 0.006581877, 0.005171723, 0.004545205, 0.00414512, 0.004343112, 0.005238155, 0.007251939, 0.012543656, 0.028067132, 0.091342277, 0.484081092, 0.870378324, 0.939513128, 0.960926994, 0.968623763, 0.971263883, 0.972285819, 0.971898742, 0.972691859, 0.971734812, 0.97234454, 0.97150339, 0.970857997, 0.970553866, 0.969671404</l><l>, </l></block></block><block s="doSetVar"><l>rho-g</l><block s="reportTextSplit"><l>0.010542406, 0.010878976, 0.011063512, 0.010736566, 0.011681813, 0.012434719, 0.014986907, 0.020100392, 0.030356263, 0.063388962, 0.173423837, 0.568321142, 0.827791998, 0.916560468, 0.952002841, 0.964096452, 0.970590861, 0.972502542, 0.969148203, 0.955344651, 0.892637233, 0.5003641, 0.116236717, 0.047951391, 0.027873526, 0.020057963, 0.017382174, 0.015429109, 0.01543808, 0.014546826, 0.015197773, 0.014285896, 0.015069123, 0.015506263, 0.015545797, 0.016302839</l><l>, </l></block></block><block s="doSetVar"><l>rho-b</l><block s="reportTextSplit"><l>0.967865135, 0.968827912, 0.967128582, 0.965460137, 0.963110055, 0.962150324, 0.960391811, 0.958925903, 0.953890935, 0.925442998, 0.817997886, 0.42509696, 0.167036273, 0.078894327, 0.043852038, 0.031560435, 0.024170984, 0.020245519, 0.01830814, 0.016588218, 0.01602049, 0.015554808, 0.013384959, 0.012535491, 0.011199484, 0.011318274, 0.011353953, 0.012285073, 0.012663188, 0.012761325, 0.013067426, 0.013369566, 0.013427487, 0.01363574, 0.013893597, 0.014025757</l><l>, </l></block></block><block s="doSetVar"><l>waveforms</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><custom-block s="✐ RGB from color %s"><l></l></custom-block><l>255</l></block></autolambda><list></list></block><block var="colors"/></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>sRGB</l></custom-block><script><block s="doSetVar"><l>waveforms</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>0.04045</l></list></block><block s="reportQuotient"><l></l><l>12.92</l></block><block s="reportPower"><block s="reportQuotient"><block s="reportVariadicSum"><list><l></l><l>0.055</l></list></block><l>1.055</l></block><l>2.4</l></block></block></autolambda><list></list></block><l/></block></autolambda><list></list></block><block var="waveforms"/></block></block></script><list></list></block><block s="doSetVar"><l>waveforms</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block><list><l/><block s="reportNewList"><list><block var="rho-r"/><block var="rho-g"/><block var="rho-b"/></list></block></list></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block var="waveforms"/></block></block><block s="doDeclareVariables"><list><l>sum of weights</l><l>combined waveform</l></list><comment w="214" collapsed="true">weighted geometric mean of waveforms</comment></block><block s="doSetVar"><l>sum of weights</l><block s="reportCombine"><block var="weights"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>combined waveform</l><block s="reportCombine"><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportPower"><l></l><block s="reportQuotient"><l></l><block var="sum of weights"/></block></block></autolambda><list></list></block><list><block var="waveforms"/><block var="weights"/></list></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doDeclareVariables"><list><l>T</l></list><comment w="90" collapsed="true">back to RGB</comment></block><block s="doSetVar"><l>T</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>word</option></l></block></autolambda><list></list></block><block s="reportNewList"><list><l>5.47813E-05	0.000184722	0.000935514	0.003096265	0.009507714	0.017351596	0.022073595	0.016353161	0.002002407	-0.016177731	-0.033929391	-0.046158952	-0.06381706	-0.083911194	-0.091832385	-0.08258148	-0.052950086	-0.012727224	0.037413037	0.091701812	0.147964686	0.181542886	0.210684154	0.210058081	0.181312094	0.132064724	0.093723787	0.057159281	0.033469657	0.018235464	0.009298756	0.004023687	0.002068643	0.00109484	0.000454231	0.000255925</l><l>-4.65552E-05	-0.000157894	-0.000806935	-0.002707449	-0.008477628	-0.016058258	-0.02200529	-0.020027434	-0.011137726	0.003784809	0.022138944	0.038965605	0.063361718	0.095981626	0.126280277	0.148575844	0.149044804	0.14239936	0.122084916	0.09544734	0.067421931	0.035691251	0.01313278	-0.002384996	-0.009409573	-0.009888983	-0.008379513	-0.005606153	-0.003444663	-0.001921041	-0.000995333	-0.000435322	-0.000224537	-0.000118838	-4.93038E-05	-2.77789E-05</l><l>0.00032594	0.001107914	0.005677477	0.01918448	0.060978641	0.121348231	0.184875618	0.208804428	0.197318551	0.147233899	0.091819086	0.046485543	0.022982618	0.00665036	-0.005816014	-0.012450334	-0.015524259	-0.016712927	-0.01570093	-0.013647887	-0.011317812	-0.008077223	-0.005863171	-0.003943485	-0.002490472	-0.001440876	-0.000852895	-0.000458929	-0.000248389	-0.000129773	-6.41985E-05	-2.71982E-05	-1.38913E-05	-7.35203E-06	-3.05024E-06	-1.71858E-06</l></list></block></block></block><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><block s="reportVariadicProduct"><list><block var="combined waveform"/><l></l></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block var="T"/></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>sRGB</l></custom-block><script><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>0.0031308</l></list></block><block s="reportVariadicProduct"><list><l>12.92</l><l></l></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>1.055</l><block s="reportPower"><l></l><block s="reportQuotient"><l>1</l><l>2.4</l></block></block></list></block><l>0.055</l></block></block></autolambda><list></list></block><block var="new"/></block></block></script><list></list></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicProduct"><list><l>255</l><block var="new"/></list></block><list><l></l></list></custom-block></block></script><list></list></block><block s="doIfElse"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>add</l></custom-block><script><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><l/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>columns</option></l><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><custom-block s="✐ RGB from color %s"><l></l></custom-block><l></l></list></block></autolambda><list></list></block><list><block var="colors"/><block var="weights"/></list></custom-block></block></block></block><block s="doIf"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>aver</l></custom-block><script><block s="doSetVar"><l>new</l><block s="reportQuotient"><block var="new"/><block s="reportCombine"><block var="weights"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></block></script><list></list></block><block s="doSetVar"><l>max</l><block s="reportCombine"><block var="new"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="max"/><l>255</l></list></block><script><block s="doSetVar"><l>new</l><block s="reportVariadicProduct"><list><block var="new"/><block s="reportQuotient"><l>255</l><block var="max"/></block></list></block></block></script><list></list></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block var="new"/><list><l></l></list></custom-block></block></script><script><block s="doSetVar"><l>new</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCombine"><l/><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>columns</option></l><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><custom-block s="✐ RGB from color %s"><l></l></custom-block><block s="reportQuotient"><l></l><l>255</l></block></list></block></autolambda><list></list></block><list><block var="colors"/><block var="weights"/></list></custom-block></block></block></block><block s="doIfElse"><custom-block s="text %txt contains %txt"><block var="flavor"/><l>aver</l></custom-block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicProduct"><list><block s="reportPower"><block var="new"/><block s="reportQuotient"><l>1</l><block s="reportCombine"><block var="weights"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></block><l>255</l></list></block><list><l></l></list></custom-block></block></script><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicProduct"><list><block var="new"/><l>255</l></list></block><list><l></l></list></custom-block></block></script></block></script></block></script><scripts><script x="512" y="1525.7777777777785"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block s="reportQuotient"><custom-block s="✐ RGB from color %s"><l></l></custom-block><l>255</l></block><block s="reportQuotient"><block s="reportDifference"><l>100</l><custom-block s="$brush %s from color %obj"><l>transparency</l><l/></custom-block></block><l>100</l></block></list></block></autolambda><list></list></block><block var="colors"/></block></script></scripts></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o texto multilinha _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());&#xD;    if (index&lt;0) {return string};&#xD;    return string.slice(0,index);&#xD;} else {&#xD;    var index=string.indexOf(marker);&#xD;    if (index&lt;0) {return string};&#xD;    return string.slice(0,index);&#xD;}</l></block><list><block var="string"/><block var="marker"/></list></block></block></script></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="203.33333333333334" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l><l>markerlength</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;string = string+"";&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());&#xD;    if (index&lt;0) {return ""};&#xD;    return string.slice(index+markerlength);&#xD;} else {&#xD;    var index=string.indexOf(marker);&#xD;    if (index&lt;0) {return ""};&#xD;    return string.slice(index+markerlength);&#xD;}</l></block><list><block var="string"/><block var="marker"/><block s="reportTextAttribute"><l><option>length</option></l><block var="marker"/></block></list></block></block></script></block-definition><block-definition s="use case-independent comparisons %&apos;tf&apos;" type="command" category="operators"><comment x="0" y="0" w="225.33333333333334" collapsed="false">If input is TRUE, comparisons made by functions in the string library will be case-independent (so &quot;FOO&quot; = &quot;foo&quot;).  This is the default.&#xD;If input is FALSE, comparisons will be exact.</comment><header></header><code></code><translations>pt:altera comparações ignorando distinção minúsculas/maiúsculas para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>flag</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;world[&apos;stringLibCaseIndependentComparison&apos;] = flag;</l></block><list><block var="tf"/></list></block></script></block-definition><block-definition s="text %&apos;string&apos; contains %&apos;marker&apos;" type="predicate" category="operators"><comment x="0" y="0" w="218" collapsed="false">Reports True if the first input string contains the second input string, otherwise false.&#xD;&#xD;Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l></list><l>var world=this.parentThatIsA(IDE_Morph);&#xD;if (!("stringLibCaseIndependentComparison" in world)) {&#xD;    world["stringLibCaseIndependentComparison"] = true;&#xD;};&#xD;if (world["stringLibCaseIndependentComparison"]) {&#xD;    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());&#xD;    return !(index&lt;0);&#xD;} else {&#xD;    var index=string.indexOf(marker);&#xD;    return !(index&lt;0);&#xD;}</l></block><list><block var="string"/><block var="marker"/></list></block></block></script></block-definition><block-definition s="$brush color from %&apos;kind&apos; %&apos;value&apos; %&apos;more value&apos;" type="reporter" category="pen"><comment x="0" y="0" w="265.3333333333333" collapsed="false">This block reports a color.  The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), color number, crayon, or X11/W3C color name.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>color&#xD;color number&#xD;crayon&#xD;fair hue&#xD;X11/W3C name&#xD;&#126;&#xD;fair HSL=fair HSL vector&#xD;fair HSV=fair HSV vector&#xD;HSL=HSL vector&#xD;HSV=HSV vector&#xD;RGB (0-255)=RGB vector&#xD;RGB hex</options></input><input type="%s"><options>function () {&#xD;&#xD;// add/edit menus but don&apos;t forget to edit 2nd slot manual menu options as well to match&#xD;var color_number=[&#xD;&quot;0 black=0&quot;, &quot;14 white=14&quot;,&#xD;&quot;20 spectral red=20&quot;, &quot;25 darkest red=25&quot;,&#xD;&quot;30 saddle brown=30&quot;, &quot;35 darkest brown=35&quot;,&#xD;&quot;40 spectral orange=40&quot;, &quot;45 darkest orange=45&quot;,&#xD;&quot;50 spectral yellow=50&quot;, &quot;55 darkest yellow=55&quot;,&#xD;&quot;60 spectral green=60&quot;, &quot;65 darkest green=65&quot;,&#xD;&quot;70 spectral cyan=70&quot;, &quot;75 darkest cyan=75&quot;,&#xD;&quot;80 spectral blue=80&quot;, &quot;85 darkest blue=85&quot;,&#xD;&quot;90 spectral violet=90&quot;, &quot;95 magenta=95&quot;];&#xD;&#xD;var fair_hue=[&#xD;&quot;0 red=0&quot;, &quot;12.5 brown=12.5&quot;, &quot;25 orange=25&quot;, &quot;37.5 yellow=37.5&quot;,&#xD;&quot;50 green=50&quot;, &quot;62.5 cyan=62.5&quot;, &quot;75 blue=75&quot;, &quot;87.5 violet=87.5&quot;];&#xD;&#xD;var crayon=[&#xD;&quot;grays&quot;,[&#xD;&quot;0 black #000000=0&quot;,&#xD;&quot;1 gray7 #121212=1&quot;,&#xD;&quot;2 gray14 #242424=2&quot;,&#xD;&quot;3 gray21 #363636=3&quot;,&#xD;&quot;4 gray28 #484848=4&quot;,&#xD;&quot;5 gray36 #5c5c5c=5&quot;,&#xD;&quot;6 gray43 #6d6d6d=6&quot;,&#xD;&quot;7 gray50 #7f7f7f=7&quot;,&#xD;&quot;8 gray57 #919191=8&quot;,&#xD;&quot;9 gray64 #a3a3a3=9&quot;,&#xD;&quot;10 gray71 #b5b5b5=10&quot;,&#xD;&quot;11 gray78 #c8c8c8=11&quot;,&#xD;&quot;12 gray85 #dadada=12&quot;,&#xD;&quot;13 gray92 #ececec=13&quot;,&#xD;&quot;14 white #ffffff=14&quot;],&#xD;&quot;pinks&quot;,[&#xD;&quot;15 deep pink #ff1493=15&quot;,&#xD;&quot;16 hot pink #ff69b4=16&quot;,&#xD;&quot;17 bright pink #ff007f=17&quot;,&#xD;&quot;18 raspberry #e30b5d=18&quot;,&#xD;&quot;19 amaranth #e52b50=19&quot;],&#xD;&quot;reds&quot;,[&#xD;&quot;20 red #ff0000=20&quot;,&#xD;&quot;21 burgundy #900020=21&quot;,&#xD;&quot;22 cherry #990000=22&quot;,&#xD;&quot;23 dark candy apple red #a40000=23&quot;,&#xD;&quot;24 sanguine #c00000=24&quot;,&#xD;&quot;25 maroon #800000=25&quot;,&#xD;&quot;26 crimson #c90016=26&quot;,&#xD;&quot;27 Lists #d94d11=27&quot;,&#xD;&quot;28 candy apple red #ff0800=28&quot;,&#xD;&quot;29 coquelicot #ff3800=29&quot;],&#xD;&quot;browns&quot;,[&#xD;&quot;30 saddle brown #8b4513=30&quot;,&#xD;&quot;31 chocolate #7b3f00=31&quot;,&#xD;&quot;32 kobicha #6b4423=32&quot;,&#xD;&quot;33 sepia #704214=33&quot;,&#xD;&quot;34 chestnut #954535=34&quot;,&#xD;&quot;35 dark brown #654321=35&quot;,&#xD;&quot;36 brown #964b00=36&quot;,&#xD;&quot;37 golden brown #996515=37&quot;,&#xD;&quot;38 cinnamon #b87333=38&quot;,&#xD;&quot;39 copper #d2691e=39&quot;],&#xD;&quot;oranges&quot;,[&#xD;&quot;40 orange #ff7f00=40&quot;,&#xD;&quot;41 Pantone orange #ff5800=41&quot;,&#xD;&quot;42 pumpkin #ff7518=42&quot;,&#xD;&quot;43 Variables #f3761d=43&quot;,&#xD;&quot;44 Spanish orange #e86100=44&quot;,&#xD;&quot;45 burnt orange #cc5500=45&quot;,&#xD;&quot;46 sinopia #cb410b=46&quot;,&#xD;&quot;47 ochre #cc7722=47&quot;,&#xD;&quot;48 carrot #ed9121=48&quot;,&#xD;&quot;49 tangerine #f28500=49&quot;],&#xD;&quot;yellows&quot;,[&#xD;&quot;50 yellow #ffff00=50&quot;,&#xD;&quot;51 Control #e6a822=51&quot;,&#xD;&quot;52 dark goldenrod #b8860b=52&quot;,&#xD;&quot;53 goldenrod #daa520=53&quot;,&#xD;&quot;54 saffron #f4c430=54&quot;,&#xD;&quot;55 sandstorm #ecd540=55&quot;,&#xD;&quot;56 mustard #ffdb58=56&quot;,&#xD;&quot;57 gold #ffd700=57&quot;,&#xD;&quot;58 egg yolk #fee33e=58&quot;,&#xD;&quot;59 rubber duck #fbe108=59&quot;],&#xD;&quot;greens&quot;,[&#xD;&quot;60 lime #00ff00=60&quot;,&#xD;&quot;61 apple green #8db600=61&quot;,&#xD;&quot;62 Operators #62c213=62&quot;,&#xD;&quot;63 forest green #228b22=63&quot;,&#xD;&quot;64 green #008000=64&quot;,&#xD;&quot;65 dark green #006400=65&quot;,&#xD;&quot;66 dark pastel green #03c03c=66&quot;,&#xD;&quot;67 emerald #50c878=67&quot;,&#xD;&quot;68 mint #3eb489=68&quot;,&#xD;&quot;69 Pen #00a178=69&quot;],&#xD;&quot;cyans&quot;,[&#xD;&quot;70 aqua (cyan) #00ffff=70&quot;,&#xD;&quot;71 dark cyan #008b8b=71&quot;,&#xD;&quot;72 cerulean #007ba7=72&quot;,&#xD;&quot;73 iceberg #71a6d2=73&quot;,&#xD;&quot;74 Sensing #0494dc=74&quot;,&#xD;&quot;75 teal #008080=75&quot;,&#xD;&quot;76 light sky blue #87cefa=76&quot;,&#xD;&quot;77 deep sky blue #00bfff=77&quot;,&#xD;&quot;78 dodger blue #1e90ff=78&quot;,&#xD;&quot;79 azure #007fff=79&quot;],&#xD;&quot;blues&quot;,[&#xD;&quot;80 blue #0000ff=80&quot;,&#xD;&quot;81 midnight blue #191970=81&quot;,&#xD;&quot;82 dark powder blue #003399=82&quot;,&#xD;&quot;83 cobalt #0047ab=83&quot;,&#xD;&quot;84 denim #1560bd=84&quot;,&#xD;&quot;85 navy blue #000080=85&quot;,&#xD;&quot;86 steel blue #4682b4=86&quot;,&#xD;&quot;87 Motion #4a6cd4=87&quot;,&#xD;&quot;88 cornflower #6495ed=88&quot;,&#xD;&quot;89 slate blue #6a5acd=89&quot;],&#xD;&quot;purples&quot;,[&#xD;&quot;90 violet #8000ff=90&quot;,&#xD;&quot;91 Looks #8f56e3=91&quot;,&#xD;&quot;92 grape #6f2da8=92&quot;,&#xD;&quot;93 indigo #4b0082=93&quot;,&#xD;&quot;94 x11 purple #a020f0=94&quot;,&#xD;&quot;95 magenta (fuchia) #ff00ff=95&quot;,&#xD;&quot;96 dark orchid #9932cc=96&quot;,&#xD;&quot;97 Sound #cf4ad9=97&quot;,&#xD;&quot;98 purple #7f007f=98&quot;,&#xD;&quot;99 dark magenta #8b008b=99&quot;]];&#xD;&#xD;function makeMenuHelper(items, output) {&#xD;    // in an array, walk through the items in pairs&#xD;    var i = 0;&#xD;    while (i &lt; items.length) {&#xD;        var label = items[i];&#xD;        var possiblyNested = items[i+1];&#xD;        // if possiblyNested is array, it is a nest under label&#xD;        // if possiblyNested is string, it is just a sibling&#xD;        if (possiblyNested === undefined) {&#xD;          // label is actually the last element of the list&#xD;          var hasEquals = label.split(&quot;=&quot;);&#xD;          if (hasEquals.length == 2) {&#xD;            output[hasEquals[0]] = hasEquals[1];&#xD;            i += 1;&#xD;          } else if (hasEquals.length == 3) {&#xD;            output[hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2]] = hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2];&#xD;            i += 1;&#xD;          } else {&#xD;            output[label] = label;&#xD;            i += 1;&#xD;          }&#xD;        } else if (typeof possiblyNested == &quot;string&quot;) {&#xD;          var hasEquals = label.split(&quot;=&quot;);&#xD;          if (hasEquals.length == 2) {&#xD;            output[hasEquals[0]] = hasEquals[1];&#xD;            i += 1;&#xD;          } else if (hasEquals.length == 3) {&#xD;            output[hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2]] = hasEquals[0]+&quot;\u00A0&quot;+&quot;=&quot;+&quot;\u00A0&quot;+hasEquals[2];&#xD;            i += 1;&#xD;          } else {&#xD;            output[label] = label;&#xD;            i += 1;&#xD;          }&#xD;        } else if (Array.isArray(possiblyNested)) {&#xD;          var nestingOutput = {};&#xD;          makeMenuHelper(possiblyNested, nestingOutput);&#xD;          output[label] = nestingOutput;&#xD;          i += 2&#xD;        } else {&#xD;          throw new Error(&quot;Bad value at index &quot; + i);&#xD;        }&#xD;    }&#xD;}&#xD;&#xD;var ide = world.children[0];&#xD;var menuVarName = this.parent.blockSpec;&#xD;try {&#xD;    menuVarName = this.parent.cachedInputs[0].children[0].text;&#xD;} catch(err) {&#xD;    menuPoss = this.parent.children;&#xD;    menuPoss = menuPoss.filter(function (e) { return (e instanceof InputSlotMorph)});&#xD;    menuVarName = menuPoss[0].children[0].text;&#xD;}&#xD;&#xD;menuVarName = menuVarName.replace(&quot; &quot;,&quot;_&quot;);&#xD;&#xD;try {&#xD;    var menu = eval(menuVarName);&#xD;    var output = {};&#xD;    makeMenuHelper(menu, output);&#xD;    return output;&#xD;} catch(err) {&#xD;}&#xD;}</options></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>index</l><l>scale</l><l>transparency</l></list></block><custom-block s="✐ initialize variables"></custom-block><block s="doSetVar"><l>value</l><block s="reportCONS"><block var="value"/><block var="more value"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair hue</l></list></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="value"/></block><l>100</l><l>50</l><block s="reportListItem"><l>2</l><block var="value"/></block></list></block></block><block s="doSetVar"><l>kind</l><l>fair HSL vector</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>color number</l></list></block><script><block s="doSetVar"><l>color</l><block s="reportModulus"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="value"/></block><l>3</l></list></block><l>300</l></block></block><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="color"/><l>42</l></list><comment w="77.33333333333333" collapsed="true">grayscale</comment></block><script><block s="doSetVar"><l>color</l><block s="reportModulus"><block s="reportVariadicProduct"><list><block var="color"/><block s="reportQuotient"><l>15</l><l>14</l></block></list></block><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="color"/><l>60</l></list><comment w="96.66666666666667" collapsed="true">spread out pink</comment></block><script><block s="doSetVar"><l>color</l><block s="reportVariadicSum"><list><l>45</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="color"/><l>42</l></block><block s="reportQuotient"><l>15</l><l>18</l></block></list></block></list></block></block></script><list></list></block><block s="doSetVar"><l>color</l><block s="reportModulus"><block var="color"/><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><block s="reportRound"><block s="reportVariadicSum"><list><block var="from"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="to"/><block var="from"/></block><block s="reportQuotient"><block var="scale"/><l>15</l></block></list></block></list></block></block><l>255</l></list></block></autolambda><list><l>from</l><l>to</l></list></block><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ colors"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>2</l></list></block><block var="✐ colors"/></block></list></custom-block><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>crayon</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><l/></block><block s="reportListItem"><l>1</l><block var="value"/></block></list></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="color"/><l></l></list></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>No such crayon: </l><block s="reportListItem"><l>1</l><block var="value"/></block></list></block></custom-block></script><list></list></block></script><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="value"/></block><l>100</l></block><l>1</l></list></block><block var="✐ crayon colors"/></block></block></script></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="color"/></block><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>X11/W3C name</l></list></block><script><block s="doReport"><custom-block s="✐ color from X11 name %s"><block var="value"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>RGB hex</l></list></block><script><block s="doReport"><custom-block s="✐ color from RGB hex %s"><block var="value"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>color</l></list></block><script><block s="doReplaceInList"><l>1</l><block var="value"/><custom-block s="✐ RGB from color %s"><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block></block><block s="doSetVar"><l>kind</l><l>RGB vector</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>RGB vector</l></list></block><script><block s="doSetVar"><l>color</l><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block><l>0</l></list></block><l>255</l></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>number</option></l></block><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="value"/></block></block><l>3</l></list></block></list></block><script><block s="doIf"><block s="reportIsA"><block var="transparency"/><l><option>number</option></l></block><script><block s="doSetVar"><l>transparency</l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="transparency"/><l>100</l></list></block><l>255</l></block></block></block></script><list></list></block></script><list></list></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>HSV vector</l></list></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSV %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>HSL vector</l></list></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSL %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSV vector</l></list></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ limits %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><l>1</l><block var="color"/></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block var="value"/></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>scale</l><block s="reportQuotient"><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ pivots"/></block><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block></block></block><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block s="reportListItem"><block var="index"/><block var="✐ HSV brights"/></block><block s="reportVariadicProduct"><list><block var="scale"/><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ HSV brights"/></block><block s="reportListItem"><block var="index"/><block var="✐ HSV brights"/></block></block></list></block></list></block></block><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSV %l"><block s="reportVariadicProduct"><list><block s="reportCONS"><l>100</l><block s="reportCDR"><block var="color"/></block></block><block var="index"/></list></block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSL vector</l></list></block><script><block s="doSetVar"><l>color</l><custom-block s="✐ limits %l"><custom-block s="✐ extract rgba values %l %upvar"><block var="value"/><l>transparency</l></custom-block></custom-block></block><block s="doSetVar"><l>value</l><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block var="value"/></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>scale</l><block s="reportQuotient"><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ pivots"/></block><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block></block></block><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block><block s="reportVariadicProduct"><list><block var="scale"/><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ HSL brights"/></block><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block></block></list></block></list></block></block><block s="doSetVar"><l>color</l><custom-block s="✐ RGB from HSL %l"><block s="reportVariadicProduct"><list><block s="reportCONS"><l>1</l><block s="reportQuotient"><block s="reportCDR"><block var="color"/></block><block s="reportNewList"><list><l>100</l><l>50</l></list></block></block></block><block var="index"/></list></block></custom-block></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="color"/><block var="transparency"/></custom-block></block></script><list></list></block></script></block-definition><block-definition s="$brush %&apos;kind&apos; from color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>nearest color number&#xD;crayon number&#xD;fair hue&#xD;&#126;1&#xD;transparency&#xD;X11/W3C name&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGBA vector&#xD;RGB hex&#xD;}&#xD;}</options></input><input type="%obj"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>crayon number</l></list></block><script><block s="doReport"><custom-block s="✐ crayon number of color %s"><block var="color"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>X11/W3C name</l></list></block><script><block s="doReport"><custom-block s="✐ X11 name of color %s"><block var="color"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>nearest color number</l></list></block><script><block s="doReport"><custom-block s="✐ color number near color %s"><block var="color"/></custom-block></block></script><list></list></block><block s="doDeclareVariables"><list><l>rgb</l><l>hsl</l><l>hsv</l></list></block><block s="doSetVar"><l>rgb</l><custom-block s="✐ extract rgba values %l %upvar"><block var="color"/><l>transparency</l></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>transparency</l></list></block><script><block s="doReport"><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="transparency"/><l>100</l></list></block><l>255</l></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>RGB vector</l></list></block><script><block s="doReport"><block var="rgb"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>RGBA vector</l></list></block><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="rgb"/><block s="reportNewList"><list><block var="transparency"/></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>RGB hex</l></list></block><script><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="✐ byte to hex %n"><l></l></custom-block></autolambda><list></list></block><block var="rgb"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>red</l></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="rgb"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>green</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="rgb"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>blue</l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="rgb"/></block></block></script><list></list></block><block s="doSetVar"><l>hsv</l><custom-block s="✐ HSL/HSV (hsl? %b ) from RGB %s"><l><bool>false</bool></l><block var="rgb"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>HSV vector</l></list></block><script><block s="doReport"><block var="hsv"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>hue</l></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="hsv"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>saturation (HSV)</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsv"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>value (brightness)</l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsv"/></block></block></script><list></list></block><block s="doSetVar"><l>hsl</l><custom-block s="✐ HSL/HSV (hsl? %b ) from RGB %s"><l><bool>true</bool></l><block var="rgb"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>HSL vector</l></list></block><script><block s="doReport"><block var="hsl"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>saturation (HSL)</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsl"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>lightness</l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsl"/></block></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><custom-block s="text %txt contains %txt"><block var="kind"/><l>HSL</l></custom-block><custom-block s="text %txt contains %txt"><block var="kind"/><l>lightness</l></custom-block></list></block><script><block s="doDeclareVariables"><list><l>fair hue</l><l>fair lightness</l><l>fair saturation (HSL)</l></list><comment w="53.333333333333336" collapsed="true">HSL</comment></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>3</l><block var="hsl"/></block><l>34</l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>1.96</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>8.82353</l></list></block></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>6.94444445</l></list></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair hue</l></list></block><script><block s="doReport"><block var="fair hue"/></block></script><list></list></block><block s="doSetVar"><l>fair lightness</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>30.98</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>33.3333333</l><l>30.98</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair lightness</l></list></block><script><block s="doReport"><block var="fair lightness"/></block></script><list></list></block><block s="doSetVar"><l>fair saturation (HSL)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>75.94936</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>75.94936</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair saturation (HSL)</l></list></block><script><block s="doReport"><block var="fair saturation (HSL)"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSL vector</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSL)"/><block var="fair lightness"/></list></block></block></script><list></list></block></script><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>18</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair hue</l></list></block><script><block s="doReport"><block var="fair hue"/></block></script><list></list></block><block s="doSetVar"><l>fair lightness</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>30.98</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>33.3333333</l><l>30.98</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair lightness</l></list></block><script><block s="doReport"><block var="fair lightness"/></block></script><list></list></block><block s="doSetVar"><l>fair saturation (HSL)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsl"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>75.94936</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>75.94936</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair saturation (HSL)</l></list></block><script><block s="doReport"><block var="fair saturation (HSL)"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSL vector</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSL)"/><block var="fair lightness"/></list></block></block></script><list></list></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>5.5</l></list><comment w="53.333333333333336" collapsed="true">reds</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>0</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>0</l></block><block s="reportQuotient"><block s="reportDifference"><l>5.5</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="reportDifference"><l>5.5</l><l>0</l></block></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>8.3</l></list><comment w="90" collapsed="true">early orange</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>18</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>25</l><l>18</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsl"/></block><l>5.5</l></block><block s="reportDifference"><l>8.3</l><l>5.5</l></block></block></list></block></list></block></block></script><script><block s="doDeclareVariables"><list><l>index</l></list><comment w="144.66666666666666" collapsed="true">center orange and up</comment></block><block s="doSetVar"><l>index</l><l>6</l></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="hsl"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsl"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ HSL brights"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="✐ HSL brights"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ HSL brights"/></block></block></block></block></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair hue</l></list></block><script><block s="doReport"><block var="fair hue"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair saturation (HSL)</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsl"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair lightness</l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsl"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSL vector</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block s="reportListItem"><l>2</l><block var="hsl"/></block><block s="reportListItem"><l>3</l><block var="hsl"/></block></list></block></block></script><list></list></block></script><comment w="53.333333333333336" collapsed="true">brown</comment></block></script><script><block s="doDeclareVariables"><list><l>fair hue</l><l>fair saturation (HSV)</l><l>fair value (brightness)</l><l>scaled HSV brights</l></list><comment w="53.333333333333336" collapsed="true">HSV</comment></block><block s="doSetVar"><l>scaled HSV brights</l><block s="reportVariadicProduct"><list><l>100</l><block var="✐ HSV brights"/></list></block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>3</l><block var="hsv"/></block><l>67</l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>1.96</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>8.82353</l></list></block></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>6.94444445</l></list><comment w="90" collapsed="true">early brown</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair hue</l></list></block><script><block s="doReport"><block var="fair hue"/></block></script><list></list></block><block s="doSetVar"><l>fair value (brightness)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>54.51</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>66.666666667</l><l>54.51</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair value (brightness)</l></list></block><script><block s="doReport"><block var="fair value (brightness)"/></block></script><list></list></block><block s="doSetVar"><l>fair saturation (HSV)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>86.33</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>86.33</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair saturation (HSV)</l></list></block><script><block s="doReport"><block var="fair saturation (HSV)"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSV vector</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSV)"/><block var="fair value (brightness)"/></list></block></block></script><list></list></block></script><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>12.5</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>18</l><l>12.5</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>8.823529</l></block></block></list></block></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair hue</l></list></block><script><block s="doReport"><block var="fair hue"/></block></script><list></list></block><block s="doSetVar"><l>fair value (brightness)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>54.51</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>66.666666667</l><l>54.51</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair value (brightness)</l></list></block><script><block s="doReport"><block var="fair value (brightness)"/></block></script><list></list></block><block s="doSetVar"><l>fair saturation (HSV)</l><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="hsv"/></block><block s="reportQuotient"><l>100</l><block s="reportVariadicSum"><list><l>86.33</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><l>86.33</l></block><block s="reportQuotient"><block s="reportDifference"><l>6.94444445</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>6.94444445</l><l>1.96</l></block></block></list></block></list></block></block></list></block><l>100</l></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair saturation (HSV)</l></list></block><script><block s="doReport"><block var="fair saturation (HSV)"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSV vector</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block var="fair saturation (HSV)"/><block var="fair value (brightness)"/></list></block></block></script><list></list></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>5.5</l></list><comment w="53.333333333333336" collapsed="true">reds</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>0</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>5.8</l><l>0</l></block><block s="reportQuotient"><block s="reportDifference"><l>5.5</l><block s="reportListItem"><l>1</l><block var="hsv"/></block></block><block s="reportDifference"><l>5.5</l><l>0</l></block></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>8.3</l></list><comment w="53.333333333333336" collapsed="true">orange</comment></block><script><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><l>18</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>25</l><l>18</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsv"/></block><l>5.5</l></block><block s="reportDifference"><l>8.3</l><l>5.5</l></block></block></list></block></list></block></block></script><script><block s="doDeclareVariables"><list><l>index</l></list><comment w="144.66666666666666" collapsed="true">center orange and up</comment></block><block s="doSetVar"><l>index</l><l>6</l></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="hsv"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="scaled HSV brights"/></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doSetVar"><l>fair hue</l><block s="reportVariadicSum"><list><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="✐ pivots"/></block></block><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="hsv"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="scaled HSV brights"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="scaled HSV brights"/></block></block><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportDifference"><block var="index"/><l>1</l></block><block var="scaled HSV brights"/></block></block></block></block></list></block></list></block></block></script></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair hue</l></list></block><script><block s="doReport"><block var="fair hue"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair saturation (HSV)</l></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="hsv"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair value (brightness)</l></list></block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="hsv"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="kind"/><l>fair HSV vector</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="fair hue"/><block s="reportListItem"><l>2</l><block var="hsv"/></block><block s="reportListItem"><l>3</l><block var="hsv"/></block></list></block></block></script><list></list></block></script><comment w="53.333333333333336" collapsed="true">brown</comment></block></script><comment w="98.66666666666667" collapsed="true">fair something</comment></block><custom-block s="error %txt"><l>Can&apos;t get here -- please post project and screenshot to forum.</l></custom-block></script></block-definition><block-definition s="✐ current pen color" type="reporter" category="pen"><comment x="0" y="0" w="172.66666666666666" collapsed="false">This block reports the pen color&#xD;(as a color, not as a list of numbers).</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><custom-block s="RGB color"></custom-block><list><l></l></list></custom-block></block></script></block-definition><block-definition s="✐ set pen to crayon %&apos;which&apos; %&apos;more&apos;" type="command" category="pen"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Sets the pen color &#xD;to one of 100 preselected colors, like a box of 100 crayons.&#xD;The colors have names that are meant to be evocative.&#xD;They are organized in families, more or less corresponding&#xD;to spectral (rainbow) colors; the input slot has a two-level menu&#xD;in which you can hover over a family name to see the colors&#xD;of that family, each including a crayon number and an RGB value. &#xD;See Appendix A of the Snap! Reference Manual for more details.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>grays={&#xD;0 black #000000=0&#xD;1 gray7 #121212=1&#xD;2 gray14 #242424=2&#xD;3 gray21 #363636=3&#xD;4 gray28 #484848=4&#xD;5 gray36 #5c5c5c=5&#xD;6 gray43 #6d6d6d=6&#xD;7 gray50 #7f7f7f=7&#xD;8 gray57 #919191=8&#xD;9 gray64 #a3a3a3=9&#xD;10 gray71 #b5b5b5=10&#xD;11 gray78 #c8c8c8=11&#xD;12 gray85 #dadada=12&#xD;13 gray92 #ececec=13&#xD;14 white #ffffff=14&#xD;}&#xD;pinks={&#xD;15 deep pink #ff1493=15&#xD;16 hot pink #ff69b4=16&#xD;17 bright pink #ff007f=17&#xD;18 raspberry #e30b5d=18&#xD;19 amaranth #e52b50=19&#xD;}&#xD;reds={&#xD;20 red #ff0000=20&#xD;21 burgundy #900020=21&#xD;22 cherry #990000=22&#xD;23 dark candy apple red #a40000=23&#xD;24 sanguine #c00000=24&#xD;25 maroon #800000=25&#xD;26 crimson #c90016=26&#xD;27 Lists #d94d11=27&#xD;28 candy apple red #ff0800=28&#xD;29 coquelicot #ff3800=29&#xD;}&#xD;browns={&#xD;30 saddle brown #8b4513=30&#xD;31 chocolate #7b3f00=31&#xD;32 kobicha #6b4423=32&#xD;33 sepia #704214=33&#xD;34 chestnut #954535=34&#xD;35 dark brown #654321=35&#xD;36 brown #964b00=36&#xD;37 golden brown #996515=37&#xD;38 cinnamon #b87333=38&#xD;39 copper #d2691e=39&#xD;}&#xD;oranges={&#xD;40 orange #ff7f00=40&#xD;41 Pantone orange #ff5800=41&#xD;42 pumpkin #ff7518=42&#xD;43 Variables #f3761d=43&#xD;44 Spanish orange #e86100=44&#xD;45 burnt orange #cc5500=45&#xD;46 sinopia #cb410b=46&#xD;47 ochre #cc7722=47&#xD;48 carrot #ed9121=48&#xD;49 tangerine #f28500=49&#xD;}&#xD;yellows={&#xD;50 yellow #ffff00=50&#xD;51 Control #e6a822=51&#xD;52 dark goldenrod #b8860b=52&#xD;53 goldenrod #daa520=53&#xD;54 saffron #f4c430=54&#xD;55 sandstorm #ecd540=55&#xD;56 mustard #ffdb58=56&#xD;57 gold #ffd700=57&#xD;58 egg yolk #fee33e=58&#xD;59 rubber duck #fbe108=59&#xD;}&#xD;greens={&#xD;60 lime #00ff00=60&#xD;61 apple green #8db600=61&#xD;62 Operators #62c213=62&#xD;63 forest green #228b22=63&#xD;64 green #008000=64&#xD;65 dark green #006400=65&#xD;66 dark pastel green #03c03c=66&#xD;67 emerald #50c878=67&#xD;68 mint #3eb489=68&#xD;69 Pen #00a178=69&#xD;}&#xD;cyans={&#xD;70 aqua (cyan) #00ffff=70&#xD;71 dark cyan #008b8b=71&#xD;72 cerulean #007ba7=72&#xD;73 iceberg #71a6d2=73&#xD;74 Sensing #0494dc=74&#xD;75 teal #008080=75&#xD;76 light sky blue #87cefa=76&#xD;77 deep sky blue #00bfff=77&#xD;78 dodger blue #1e90ff=78&#xD;79 azure #007fff=79&#xD;}&#xD;blues={&#xD;80 blue #0000ff=80&#xD;81 midnight blue #191970=81&#xD;82 dark powder blue #003399=82&#xD;83 cobalt #0047ab=83&#xD;84 denim #1560bd=84&#xD;85 navy blue #000080=85&#xD;86 steel blue #4682b4=86&#xD;87 Motion #4a6cd4=87&#xD;88 cornflower #6495ed=88&#xD;89 slate blue #6a5acd=89&#xD;}&#xD;purples={&#xD;90 violet #8000ff=90&#xD;91 Looks #8f56e3=91&#xD;92 grape #6f2da8=92&#xD;93 indigo #4b0082=93&#xD;94 x11 purple #a020f0=94&#xD;95 magenta (fuchia) #ff00ff=95&#xD;96 dark orchid #9932cc=96&#xD;97 Sound #cf4ad9=97&#xD;98 purple #7f007f=98&#xD;99 dark magenta #8b008b=99&#xD;}</options></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l></list></block><custom-block s="✐ initialize variables"></custom-block><block s="doIfElse"><block s="reportIsA"><block var="which"/><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><l/></block><block var="which"/></list></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block var="color"/><l></l></list></block><script><block s="doSetVar"><l>✐ last crayon</l><block s="reportListItem"><l>5</l><block var="color"/></block></block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>No such crayon: </l><block var="which"/></list></block></custom-block></script></block></script><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="which"/><l>100</l></block><l>1</l></list></block><block var="✐ crayon colors"/></block></block><block s="doSetVar"><l>✐ last crayon</l><block var="which"/></block></script></block><block s="doSetVar"><l>✐ last set as</l><l>crayon</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="color"/></block><block s="reportListItem"><l>2</l><block var="color"/></block><block s="reportListItem"><l>3</l><block var="color"/></block></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="set pen color to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;" type="command" category="pen"><comment x="0" y="0" w="220.66666666666666" collapsed="false">Takes three inputs for red, green, and blue&#xD;values, each between 0 and 255.  0,0,0 is black; 255,255,255 is white.  255,255,0 is yellow, and so on.&#xD;&#xD;The SET PEN block in this library lets you set individual red, green, or blue without changing the others, lets you provide a list of three RGB color components, and lets you provide a six-digit hexadecimal number, the form in which RGB color values are usually found online.&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:altera a cor da tua caneta para vermelho _ , verde _ e azul _ (0 a 255)&#xD;</translations><inputs><input type="%n">255</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>r</l><l>g</l><l>b</l></list><l>this.setColor(new Color(r, g, b, this.color.a));</l></block><list><block var="r"/><block var="g"/><block var="b"/></list></block></script></block-definition><block-definition s="set pen color to h: %&apos;h&apos; s: %&apos;s&apos; v: %&apos;v&apos;" type="command" category="pen"><comment x="0" y="0" w="283.3333333333333" collapsed="false">Takes three inputs for hue, saturation, and value (&quot;brightness&quot;)&#xD;values, each between 0 and 1.  0,0,0 is black; 0,0,1 is white.  0.15,1,1 is yellow, and so on.&#xD;&#xD;The SET PEN block in this library lets you set individual hue, saturation, or value without changing the others, lets you provide a list of three HSV color components, and lets you&#xD;use the very much superior HSL (hue, saturation, lightness)&#xD;color space.&#xD;&#xD;See Appendix A of the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:altera a cor da caneta para matiz _ , saturação _ e brilho _ (0 a 1)&#xD;</translations><inputs><input type="%n">0.3</input><input type="%n">0.7</input><input type="%n">0.6</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>h</l><l>s</l><l>v</l></list><l>var col = new Color();&#xD;col.set_hsv(h, s, v);&#xD;this.setColor(col);</l></block><list><block var="h"/><block var="s"/><block var="v"/></list></block></script></block-definition><block-definition s="RGB color" type="reporter" category="pen"><comment x="0" y="0" w="266" collapsed="false">Reports the current pen color as a list of three RGB values in the range 0-255.  The PEN block in this library provides a large set of ways to examine the color.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:a cor da caneta em RGB (vermelho, verde e azul; 0 a 255)&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return new List([this.color.r, this.color.g, this.color.b]);</l></block><list></list></block></block></script></block-definition><block-definition s="HSV color" type="reporter" category="pen"><comment x="0" y="0" w="312" collapsed="false">Reports the current pen color as a list of three HSV values&#xD;in the range 0-1.&#xD;&#xD;See Appendix A in the Snap! Reference Manual for details.</comment><header></header><code></code><translations>pt:a cor da caneta em HSV (matiz, saturação e brilho, 0 a 1)&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return new List(this.color.hsv());</l></block><list></list></block></block></script></block-definition><block-definition s="✐ hexchar %&apos;nybble&apos;" type="reporter" category="pen"><comment x="0" y="0" w="245.33333333333334" collapsed="false">Takes a value from 0 to 15 and reports&#xD;the corresponding hexadecimal digit.&#xD;&#xD;For internal use of the color library.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="nybble"/><l>10</l></list></block><block var="nybble"/><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block s="reportUnicode"><l>a</l></block><block s="reportDifference"><block var="nybble"/><l>10</l></block></list></block></block></block></block></script></block-definition><block-definition s="✐ subset %&apos;pred&apos; %&apos;data&apos; %&apos;catchtag&apos; %&apos;result&apos; %&apos;set pen?&apos;" type="predicate" category="pen"><comment x="0" y="0" w="228" collapsed="false">Don&apos;t ask.&#xD;Only for internal use by the SET PEN block.</comment><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input><input type="%cmdRing"></input><input type="%upvar"></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>best match</l></list></block><block s="doSetVar"><l>result</l><block s="reportKeep"><block var="pred"/><block var="data"/></block></block><block s="doIf"><block s="reportListIsEmpty"><block var="result"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="result"/></block></block><script><block s="doSetVar"><l>best match</l><block s="reportListItem"><l>1</l><block var="result"/></block></block><block s="doIfElse"><block var="set pen?"/><script><custom-block s="$brush set pen %s to %s %mult%s"><l>red</l><block s="reportListItem"><l>1</l><block var="best match"/></block><list><l></l></list></custom-block><custom-block s="$brush set pen %s to %s %mult%s"><l>green</l><block s="reportListItem"><l>2</l><block var="best match"/></block><list><l></l></list></custom-block><custom-block s="$brush set pen %s to %s %mult%s"><l>blue</l><block s="reportListItem"><l>3</l><block var="best match"/></block><list><l></l></list></custom-block><block s="doSetVar"><l>✐ last X11</l><block s="reportListItem"><l>4</l><block var="best match"/></block></block><block s="doSetVar"><l>✐ last set as</l><l>X11</l></block><custom-block s="throw %s"><block var="catchtag"/></custom-block></script><script><block s="doSetVar"><l>✐ X11 catch</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="best match"/></block></block><custom-block s="throw %s"><block var="catchtag"/></custom-block></script></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="✐ initialize variables" type="command" category="pen"><comment x="0" y="0" w="180" collapsed="false">Creates a bunch of global variables.&#xD;For internal use by Color library.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><custom-block s="does var %s exist?"><l>✐ last set as</l></custom-block><script><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><custom-block s="create %s var %mult%txt"><l>global</l><list><l>✐ last set as</l><l>✐ fair?</l><l>✐ color scale</l><l>✐ HSL</l><l>✐ last crayon</l><l>✐ last X11</l><l>✐ raw HSL</l><l>✐ raw HSV</l><l>✐ X11</l><l>✐ crayon colors</l><l>✐ fair hue table</l><l>✐ colors</l><l>✐ brights</l><l>✐ pivots</l><l>✐ HSV brights</l><l>✐ HSL brights</l><l>✐ HSV colors</l><l>✐ HSL colors</l><l>✐ X11 catch</l><l>✐ dimension names</l><l>✐ dimension dispatch</l></list></custom-block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block><block s="doSetVar"><l>✐ HSL</l><block s="reportNewList"><list><l>0</l><l>100</l><l>50</l></list></block></block><block s="doSetVar"><l>✐ raw HSL</l><block s="reportNewList"><list><l>0</l><l>100</l><l>50</l></list></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ X11"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ X11</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>255,250,250,snow&#xD;248,248,255,ghostwhite&#xD;245,245,245,whitesmoke&#xD;220,220,220,gainsboro&#xD;255,250,240,floralwhite&#xD;253,245,230,oldlace&#xD;250,240,230,linen&#xD;250,235,215,antiquewhite&#xD;255,239,213,papayawhip&#xD;255,235,205,blanchedalmond&#xD;255,228,196,bisque&#xD;255,218,185,peachpuff&#xD;255,222,173,navajowhite&#xD;255,228,181,moccasin&#xD;255,248,220,cornsilk&#xD;255,255,240,ivory&#xD;255,250,205,lemonchiffon&#xD;255,245,238,seashell&#xD;240,255,240,honeydew&#xD;245,255,250,mintcream&#xD;240,255,255,azure&#xD;240,248,255,aliceblue&#xD;230,230,250,lavender&#xD;255,240,245,lavenderblush&#xD;255,228,225,mistyrose&#xD;255,255,255,white&#xD;0,0,0,black&#xD;47,79,79,darkslategray&#xD;47,79,79,darkslategrey&#xD;105,105,105,dimgray&#xD;105,105,105,dimgrey&#xD;112,128,144,slategray&#xD;112,128,144,slategrey&#xD;119,136,153,lightslategray&#xD;119,136,153,lightslategrey&#xD;190,190,190,gray(X11)&#xD;190,190,190,grey(X11)&#xD;128,128,128,gray(W3C)&#xD;128,128,128,grey(W3C)&#xD;211,211,211,lightgrey&#xD;211,211,211,lightgray&#xD;25,25,112,midnightblue&#xD;0,0,128,navy&#xD;0,0,128,navyblue&#xD;100,149,237,cornflowerblue&#xD;72,61,139,darkslateblue&#xD;106,90,205,slateblue&#xD;123,104,238,mediumslateblue&#xD;132,112,255,lightslateblue&#xD;0,0,205,mediumblue&#xD;65,105,225,royalblue&#xD;0,0,255,blue&#xD;30,144,255,dodgerblue&#xD;0,191,255,deepskyblue&#xD;135,206,235,skyblue&#xD;135,206,250,lightskyblue&#xD;70,130,180,steelblue&#xD;176,196,222,lightsteelblue&#xD;173,216,230,lightblue&#xD;176,224,230,powderblue&#xD;175,238,238,paleturquoise&#xD;0,206,209,darkturquoise&#xD;72,209,204,mediumturquoise&#xD;64,224,208,turquoise&#xD;0,255,255,cyan&#xD;0,255,255,aqua&#xD;224,255,255,lightcyan&#xD;95,158,160,cadetblue&#xD;102,205,170,mediumaquamarine&#xD;127,255,212,aquamarine&#xD;0,100,0,darkgreen&#xD;85,107,47,darkolivegreen&#xD;143,188,143,darkseagreen&#xD;46,139,87,seagreen&#xD;60,179,113,mediumseagreen&#xD;32,178,170,lightseagreen&#xD;152,251,152,palegreen&#xD;0,255,127,springgreen&#xD;124,252,0,lawngreen&#xD;0,255,0,green(X11)&#xD;0,128,0,green(W3C)&#xD;0,255,0,lime&#xD;127,255,0,chartreuse&#xD;0,250,154,mediumspringgreen&#xD;173,255,47,greenyellow&#xD;50,205,50,limegreen&#xD;154,205,50,yellowgreen&#xD;34,139,34,forestgreen&#xD;107,142,35,olivedrab&#xD;189,183,107,darkkhaki&#xD;240,230,140,khaki&#xD;238,232,170,palegoldenrod&#xD;250,250,210,lightgoldenrodyellow&#xD;255,255,224,lightyellow&#xD;255,255,0,yellow&#xD;255,215,0,gold&#xD;238,221,130,lightgoldenrod&#xD;218,165,32,goldenrod&#xD;184,134,11,darkgoldenrod&#xD;188,143,143,rosybrown&#xD;205,92,92,indianred&#xD;139,69,19,saddlebrown&#xD;160,82,45,sienna&#xD;205,133,63,peru&#xD;222,184,135,burlywood&#xD;245,245,220,beige&#xD;245,222,179,wheat&#xD;244,164,96,sandybrown&#xD;210,180,140,tan&#xD;210,105,30,chocolate&#xD;178,34,34,firebrick&#xD;165,42,42,brown&#xD;233,150,122,darksalmon&#xD;250,128,114,salmon&#xD;255,160,122,lightsalmon&#xD;255,165,0,orange&#xD;255,140,0,darkorange&#xD;255,127,80,coral&#xD;240,128,128,lightcoral&#xD;255,99,71,tomato&#xD;255,69,0,orangered&#xD;255,0,0,red&#xD;255,105,180,hotpink&#xD;255,20,147,deeppink&#xD;255,192,203,pink&#xD;255,182,193,lightpink&#xD;219,112,147,palevioletred&#xD;176,48,96,maroon(X11)&#xD;128,0,0,maroon(W3C)&#xD;199,21,133,mediumvioletred&#xD;208,32,144,violetred&#xD;255,0,255,magenta&#xD;255,0,255,fuchsia&#xD;238,130,238,violet&#xD;221,160,221,plum&#xD;218,112,214,orchid&#xD;186,85,211,mediumorchid&#xD;153,50,204,darkorchid&#xD;148,0,211,darkviolet&#xD;138,43,226,blueviolet&#xD;160,32,240,purple(X11)&#xD;128,0,128,purple(W3C)&#xD;147,112,219,mediumpurple&#xD;216,191,216,thistle&#xD;255,250,250,snow1&#xD;238,233,233,snow2&#xD;205,201,201,snow3&#xD;139,137,137,snow4&#xD;255,245,238,seashell1&#xD;238,229,222,seashell2&#xD;205,197,191,seashell3&#xD;139,134,130,seashell4&#xD;255,239,219,AntiqueWhite1&#xD;238,223,204,AntiqueWhite2&#xD;205,192,176,AntiqueWhite3&#xD;139,131,120,AntiqueWhite4&#xD;255,228,196,bisque1&#xD;238,213,183,bisque2&#xD;205,183,158,bisque3&#xD;139,125,107,bisque4&#xD;255,218,185,PeachPuff1&#xD;238,203,173,PeachPuff2&#xD;205,175,149,PeachPuff3&#xD;139,119,101,PeachPuff4&#xD;255,222,173,NavajoWhite1&#xD;238,207,161,NavajoWhite2&#xD;205,179,139,NavajoWhite3&#xD;139,121,94,NavajoWhite4&#xD;255,250,205,LemonChiffon1&#xD;238,233,191,LemonChiffon2&#xD;205,201,165,LemonChiffon3&#xD;139,137,112,LemonChiffon4&#xD;255,248,220,cornsilk1&#xD;238,232,205,cornsilk2&#xD;205,200,177,cornsilk3&#xD;139,136,120,cornsilk4&#xD;255,255,240,ivory1&#xD;238,238,224,ivory2&#xD;205,205,193,ivory3&#xD;139,139,131,ivory4&#xD;240,255,240,honeydew1&#xD;224,238,224,honeydew2&#xD;193,205,193,honeydew3&#xD;131,139,131,honeydew4&#xD;255,240,245,LavenderBlush1&#xD;238,224,229,LavenderBlush2&#xD;205,193,197,LavenderBlush3&#xD;139,131,134,LavenderBlush4&#xD;255,228,225,MistyRose1&#xD;238,213,210,MistyRose2&#xD;205,183,181,MistyRose3&#xD;139,125,123,MistyRose4&#xD;240,255,255,azure1&#xD;224,238,238,azure2&#xD;193,205,205,azure3&#xD;131,139,139,azure4&#xD;131,111,255,SlateBlue1&#xD;122,103,238,SlateBlue2&#xD;105,89,205,SlateBlue3&#xD;71,60,139,SlateBlue4&#xD;72,118,255,RoyalBlue1&#xD;67,110,238,RoyalBlue2&#xD;58,95,205,RoyalBlue3&#xD;39,64,139,RoyalBlue4&#xD;0,0,255,blue1&#xD;0,0,238,blue2&#xD;0,0,205,blue3&#xD;0,0,139,blue4&#xD;30,144,255,DodgerBlue1&#xD;28,134,238,DodgerBlue2&#xD;24,116,205,DodgerBlue3&#xD;16,78,139,DodgerBlue4&#xD;99,184,255,SteelBlue1&#xD;92,172,238,SteelBlue2&#xD;79,148,205,SteelBlue3&#xD;54,100,139,SteelBlue4&#xD;0,191,255,DeepSkyBlue1&#xD;0,178,238,DeepSkyBlue2&#xD;0,154,205,DeepSkyBlue3&#xD;0,104,139,DeepSkyBlue4&#xD;135,206,255,SkyBlue1&#xD;126,192,238,SkyBlue2&#xD;108,166,205,SkyBlue3&#xD;74,112,139,SkyBlue4&#xD;176,226,255,LightSkyBlue1&#xD;164,211,238,LightSkyBlue2&#xD;141,182,205,LightSkyBlue3&#xD;96,123,139,LightSkyBlue4&#xD;198,226,255,SlateGray1&#xD;185,211,238,SlateGray2&#xD;159,182,205,SlateGray3&#xD;108,123,139,SlateGray4&#xD;202,225,255,LightSteelBlue1&#xD;188,210,238,LightSteelBlue2&#xD;162,181,205,LightSteelBlue3&#xD;110,123,139,LightSteelBlue4&#xD;191,239,255,LightBlue1&#xD;178,223,238,LightBlue2&#xD;154,192,205,LightBlue3&#xD;104,131,139,LightBlue4&#xD;224,255,255,LightCyan1&#xD;209,238,238,LightCyan2&#xD;180,205,205,LightCyan3&#xD;122,139,139,LightCyan4&#xD;187,255,255,PaleTurquoise1&#xD;174,238,238,PaleTurquoise2&#xD;150,205,205,PaleTurquoise3&#xD;102,139,139,PaleTurquoise4&#xD;152,245,255,CadetBlue1&#xD;142,229,238,CadetBlue2&#xD;122,197,205,CadetBlue3&#xD;83,134,139,CadetBlue4&#xD;0,245,255,turquoise1&#xD;0,229,238,turquoise2&#xD;0,197,205,turquoise3&#xD;0,134,139,turquoise4&#xD;0,255,255,cyan1&#xD;0,238,238,cyan2&#xD;0,205,205,cyan3&#xD;0,139,139,cyan4&#xD;151,255,255,DarkSlateGray1&#xD;141,238,238,DarkSlateGray2&#xD;121,205,205,DarkSlateGray3&#xD;82,139,139,DarkSlateGray4&#xD;127,255,212,aquamarine1&#xD;118,238,198,aquamarine2&#xD;102,205,170,aquamarine3&#xD;69,139,116,aquamarine4&#xD;193,255,193,DarkSeaGreen1&#xD;180,238,180,DarkSeaGreen2&#xD;155,205,155,DarkSeaGreen3&#xD;105,139,105,DarkSeaGreen4&#xD;84,255,159,SeaGreen1&#xD;78,238,148,SeaGreen2&#xD;67,205,128,SeaGreen3&#xD;46,139,87,SeaGreen4&#xD;154,255,154,PaleGreen1&#xD;144,238,144,PaleGreen2&#xD;124,205,124,PaleGreen3&#xD;84,139,84,PaleGreen4&#xD;0,255,127,SpringGreen1&#xD;0,238,118,SpringGreen2&#xD;0,205,102,SpringGreen3&#xD;0,139,69,SpringGreen4&#xD;0,255,0,green1&#xD;0,238,0,green2&#xD;0,205,0,green3&#xD;0,139,0,green4&#xD;127,255,0,chartreuse1&#xD;118,238,0,chartreuse2&#xD;102,205,0,chartreuse3&#xD;69,139,0,chartreuse4&#xD;192,255,62,OliveDrab1&#xD;179,238,58,OliveDrab2&#xD;154,205,50,OliveDrab3&#xD;105,139,34,OliveDrab4&#xD;202,255,112,DarkOliveGreen1&#xD;188,238,104,DarkOliveGreen2&#xD;162,205,90,DarkOliveGreen3&#xD;110,139,61,DarkOliveGreen4&#xD;255,246,143,khaki1&#xD;238,230,133,khaki2&#xD;205,198,115,khaki3&#xD;139,134,78,khaki4&#xD;255,236,139,LightGoldenrod1&#xD;238,220,130,LightGoldenrod2&#xD;205,190,112,LightGoldenrod3&#xD;139,129,76,LightGoldenrod4&#xD;255,255,224,LightYellow1&#xD;238,238,209,LightYellow2&#xD;205,205,180,LightYellow3&#xD;139,139,122,LightYellow4&#xD;255,255,0,yellow1&#xD;238,238,0,yellow2&#xD;205,205,0,yellow3&#xD;139,139,0,yellow4&#xD;255,215,0,gold1&#xD;238,201,0,gold2&#xD;205,173,0,gold3&#xD;139,117,0,gold4&#xD;255,193,37,goldenrod1&#xD;238,180,34,goldenrod2&#xD;205,155,29,goldenrod3&#xD;139,105,20,goldenrod4&#xD;255,185,15,DarkGoldenrod1&#xD;238,173,14,DarkGoldenrod2&#xD;205,149,12,DarkGoldenrod3&#xD;139,101,8,DarkGoldenrod4&#xD;255,193,193,RosyBrown1&#xD;238,180,180,RosyBrown2&#xD;205,155,155,RosyBrown3&#xD;139,105,105,RosyBrown4&#xD;255,106,106,IndianRed1&#xD;238,99,99,IndianRed2&#xD;205,85,85,IndianRed3&#xD;139,58,58,IndianRed4&#xD;255,130,71,sienna1&#xD;238,121,66,sienna2&#xD;205,104,57,sienna3&#xD;139,71,38,sienna4&#xD;255,211,155,burlywood1&#xD;238,197,145,burlywood2&#xD;205,170,125,burlywood3&#xD;139,115,85,burlywood4&#xD;255,231,186,wheat1&#xD;238,216,174,wheat2&#xD;205,186,150,wheat3&#xD;139,126,102,wheat4&#xD;255,165,79,tan1&#xD;238,154,73,tan2&#xD;205,133,63,tan3&#xD;139,90,43,tan4&#xD;255,127,36,chocolate1&#xD;238,118,33,chocolate2&#xD;205,102,29,chocolate3&#xD;139,69,19,chocolate4&#xD;255,48,48,firebrick1&#xD;238,44,44,firebrick2&#xD;205,38,38,firebrick3&#xD;139,26,26,firebrick4&#xD;255,64,64,brown1&#xD;238,59,59,brown2&#xD;205,51,51,brown3&#xD;139,35,35,brown4&#xD;255,140,105,salmon1&#xD;238,130,98,salmon2&#xD;205,112,84,salmon3&#xD;139,76,57,salmon4&#xD;255,160,122,LightSalmon1&#xD;238,149,114,LightSalmon2&#xD;205,129,98,LightSalmon3&#xD;139,87,66,LightSalmon4&#xD;255,165,0,orange1&#xD;238,154,0,orange2&#xD;205,133,0,orange3&#xD;139,90,0,orange4&#xD;255,127,0,DarkOrange1&#xD;238,118,0,DarkOrange2&#xD;205,102,0,DarkOrange3&#xD;139,69,0,DarkOrange4&#xD;255,114,86,coral1&#xD;238,106,80,coral2&#xD;205,91,69,coral3&#xD;139,62,47,coral4&#xD;255,99,71,tomato1&#xD;238,92,66,tomato2&#xD;205,79,57,tomato3&#xD;139,54,38,tomato4&#xD;255,69,0,OrangeRed1&#xD;238,64,0,OrangeRed2&#xD;205,55,0,OrangeRed3&#xD;139,37,0,OrangeRed4&#xD;255,0,0,red1&#xD;238,0,0,red2&#xD;205,0,0,red3&#xD;139,0,0,red4&#xD;255,20,147,DeepPink1&#xD;238,18,137,DeepPink2&#xD;205,16,118,DeepPink3&#xD;139,10,80,DeepPink4&#xD;255,110,180,HotPink1&#xD;238,106,167,HotPink2&#xD;205,96,144,HotPink3&#xD;139,58,98,HotPink4&#xD;255,181,197,pink1&#xD;238,169,184,pink2&#xD;205,145,158,pink3&#xD;139,99,108,pink4&#xD;255,174,185,LightPink1&#xD;238,162,173,LightPink2&#xD;205,140,149,LightPink3&#xD;139,95,101,LightPink4&#xD;255,130,171,PaleVioletRed1&#xD;238,121,159,PaleVioletRed2&#xD;205,104,137,PaleVioletRed3&#xD;139,71,93,PaleVioletRed4&#xD;255,52,179,maroon1&#xD;238,48,167,maroon2&#xD;205,41,144,maroon3&#xD;139,28,98,maroon4&#xD;255,62,150,VioletRed1&#xD;238,58,140,VioletRed2&#xD;205,50,120,VioletRed3&#xD;139,34,82,VioletRed4&#xD;255,0,255,magenta1&#xD;238,0,238,magenta2&#xD;205,0,205,magenta3&#xD;139,0,139,magenta4&#xD;255,131,250,orchid1&#xD;238,122,233,orchid2&#xD;205,105,201,orchid3&#xD;139,71,137,orchid4&#xD;255,187,255,plum1&#xD;238,174,238,plum2&#xD;205,150,205,plum3&#xD;139,102,139,plum4&#xD;224,102,255,MediumOrchid1&#xD;209,95,238,MediumOrchid2&#xD;180,82,205,MediumOrchid3&#xD;122,55,139,MediumOrchid4&#xD;191,62,255,DarkOrchid1&#xD;178,58,238,DarkOrchid2&#xD;154,50,205,DarkOrchid3&#xD;104,34,139,DarkOrchid4&#xD;155,48,255,purple1&#xD;145,44,238,purple2&#xD;125,38,205,purple3&#xD;85,26,139,purple4&#xD;171,130,255,MediumPurple1&#xD;159,121,238,MediumPurple2&#xD;137,104,205,MediumPurple3&#xD;93,71,139,MediumPurple4&#xD;255,225,255,thistle1&#xD;238,210,238,thistle2&#xD;205,181,205,thistle3&#xD;139,123,139,thistle4&#xD;0,0,0,gray0&#xD;0,0,0,grey0&#xD;3,3,3,gray1&#xD;3,3,3,grey1&#xD;5,5,5,gray2&#xD;5,5,5,grey2&#xD;8,8,8,gray3&#xD;8,8,8,grey3&#xD;10,10,10,gray4&#xD;10,10,10,grey4&#xD;13,13,13,gray5&#xD;13,13,13,grey5&#xD;15,15,15,gray6&#xD;15,15,15,grey6&#xD;18,18,18,gray7&#xD;18,18,18,grey7&#xD;20,20,20,gray8&#xD;20,20,20,grey8&#xD;23,23,23,gray9&#xD;23,23,23,grey9&#xD;26,26,26,gray10&#xD;26,26,26,grey10&#xD;28,28,28,gray11&#xD;28,28,28,grey11&#xD;31,31,31,gray12&#xD;31,31,31,grey12&#xD;33,33,33,gray13&#xD;33,33,33,grey13&#xD;36,36,36,gray14&#xD;36,36,36,grey14&#xD;38,38,38,gray15&#xD;38,38,38,grey15&#xD;41,41,41,gray16&#xD;41,41,41,grey16&#xD;43,43,43,gray17&#xD;43,43,43,grey17&#xD;46,46,46,gray18&#xD;46,46,46,grey18&#xD;48,48,48,gray19&#xD;48,48,48,grey19&#xD;51,51,51,gray20&#xD;51,51,51,grey20&#xD;54,54,54,gray21&#xD;54,54,54,grey21&#xD;56,56,56,gray22&#xD;56,56,56,grey22&#xD;59,59,59,gray23&#xD;59,59,59,grey23&#xD;61,61,61,gray24&#xD;61,61,61,grey24&#xD;64,64,64,gray25&#xD;64,64,64,grey25&#xD;66,66,66,gray26&#xD;66,66,66,grey26&#xD;69,69,69,gray27&#xD;69,69,69,grey27&#xD;71,71,71,gray28&#xD;71,71,71,grey28&#xD;74,74,74,gray29&#xD;74,74,74,grey29&#xD;77,77,77,gray30&#xD;77,77,77,grey30&#xD;79,79,79,gray31&#xD;79,79,79,grey31&#xD;82,82,82,gray32&#xD;82,82,82,grey32&#xD;84,84,84,gray33&#xD;84,84,84,grey33&#xD;87,87,87,gray34&#xD;87,87,87,grey34&#xD;89,89,89,gray35&#xD;89,89,89,grey35&#xD;92,92,92,gray36&#xD;92,92,92,grey36&#xD;94,94,94,gray37&#xD;94,94,94,grey37&#xD;97,97,97,gray38&#xD;97,97,97,grey38&#xD;99,99,99,gray39&#xD;99,99,99,grey39&#xD;102,102,102,gray40&#xD;102,102,102,grey40&#xD;105,105,105,gray41&#xD;105,105,105,grey41&#xD;107,107,107,gray42&#xD;107,107,107,grey42&#xD;110,110,110,gray43&#xD;110,110,110,grey43&#xD;112,112,112,gray44&#xD;112,112,112,grey44&#xD;115,115,115,gray45&#xD;115,115,115,grey45&#xD;117,117,117,gray46&#xD;117,117,117,grey46&#xD;120,120,120,gray47&#xD;120,120,120,grey47&#xD;122,122,122,gray48&#xD;122,122,122,grey48&#xD;125,125,125,gray49&#xD;125,125,125,grey49&#xD;127,127,127,gray50&#xD;127,127,127,grey50&#xD;130,130,130,gray51&#xD;130,130,130,grey51&#xD;133,133,133,gray52&#xD;133,133,133,grey52&#xD;135,135,135,gray53&#xD;135,135,135,grey53&#xD;138,138,138,gray54&#xD;138,138,138,grey54&#xD;140,140,140,gray55&#xD;140,140,140,grey55&#xD;143,143,143,gray56&#xD;143,143,143,grey56&#xD;145,145,145,gray57&#xD;145,145,145,grey57&#xD;148,148,148,gray58&#xD;148,148,148,grey58&#xD;150,150,150,gray59&#xD;150,150,150,grey59&#xD;153,153,153,gray60&#xD;153,153,153,grey60&#xD;156,156,156,gray61&#xD;156,156,156,grey61&#xD;158,158,158,gray62&#xD;158,158,158,grey62&#xD;161,161,161,gray63&#xD;161,161,161,grey63&#xD;163,163,163,gray64&#xD;163,163,163,grey64&#xD;166,166,166,gray65&#xD;166,166,166,grey65&#xD;168,168,168,gray66&#xD;168,168,168,grey66&#xD;171,171,171,gray67&#xD;171,171,171,grey67&#xD;173,173,173,gray68&#xD;173,173,173,grey68&#xD;176,176,176,gray69&#xD;176,176,176,grey69&#xD;179,179,179,gray70&#xD;179,179,179,grey70&#xD;181,181,181,gray71&#xD;181,181,181,grey71&#xD;184,184,184,gray72&#xD;184,184,184,grey72&#xD;186,186,186,gray73&#xD;186,186,186,grey73&#xD;189,189,189,gray74&#xD;189,189,189,grey74&#xD;191,191,191,gray75&#xD;191,191,191,grey75&#xD;194,194,194,gray76&#xD;194,194,194,grey76&#xD;196,196,196,gray77&#xD;196,196,196,grey77&#xD;199,199,199,gray78&#xD;199,199,199,grey78&#xD;201,201,201,gray79&#xD;201,201,201,grey79&#xD;204,204,204,gray80&#xD;204,204,204,grey80&#xD;207,207,207,gray81&#xD;207,207,207,grey81&#xD;209,209,209,gray82&#xD;209,209,209,grey82&#xD;212,212,212,gray83&#xD;212,212,212,grey83&#xD;214,214,214,gray84&#xD;214,214,214,grey84&#xD;217,217,217,gray85&#xD;217,217,217,grey85&#xD;219,219,219,gray86&#xD;219,219,219,grey86&#xD;222,222,222,gray87&#xD;222,222,222,grey87&#xD;224,224,224,gray88&#xD;224,224,224,grey88&#xD;227,227,227,gray89&#xD;227,227,227,grey89&#xD;229,229,229,gray90&#xD;229,229,229,grey90&#xD;232,232,232,gray91&#xD;232,232,232,grey91&#xD;235,235,235,gray92&#xD;235,235,235,grey92&#xD;237,237,237,gray93&#xD;237,237,237,grey93&#xD;240,240,240,gray94&#xD;240,240,240,grey94&#xD;242,242,242,gray95&#xD;242,242,242,grey95&#xD;245,245,245,gray96&#xD;245,245,245,grey96&#xD;247,247,247,gray97&#xD;247,247,247,grey97&#xD;250,250,250,gray98&#xD;250,250,250,grey98&#xD;252,252,252,gray99&#xD;252,252,252,grey99&#xD;255,255,255,gray100&#xD;255,255,255,grey100&#xD;169,169,169,darkgrey&#xD;169,169,169,darkgray&#xD;0,0,139,darkblue&#xD;0,139,139,darkcyan&#xD;139,0,139,darkmagenta&#xD;139,0,0,darkred&#xD;144,238,144,lightgreen</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ crayon colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ crayon colors</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0,0,black,0&#xD;18,18,18,gray7,1&#xD;36,36,36,gray14,2&#xD;54,54,54,gray21,3&#xD;72,72,72,gray28,4&#xD;92,92,92,gray36,5&#xD;109,109,109,gray43,6&#xD;127,127,127,gray50,7&#xD;145,145,145,gray57,8&#xD;163,163,163,gray64,9&#xD;181,181,181,gray71,10&#xD;200,200,200,gray78,11&#xD;218,218,218,gray85,12&#xD;236,236,236,gray92,13&#xD;255,255,255,white,14&#xD;255,20,147,deep pink,15&#xD;255,105,180,hot pink,16&#xD;255,0,127,bright pink,17&#xD;227,11,93,raspberry,18&#xD;229,43,80,amaranth,19&#xD;255,0,0,red,20&#xD;144,0,32,burgundy,21&#xD;153,0,0,cherry,22&#xD;164,0,0,dark candy apple red,23&#xD;192,0,0,sanguine,24&#xD;128,0,0,maroon,25&#xD;201,0,22,crimson,26&#xD;217,77,17,Lists,27&#xD;255,8,0,candy apple red,28&#xD;255,56,0,coquelicot,29&#xD;139,69,19,saddle brown,30&#xD;123,63,0,chocolate,31&#xD;107,68,35,kobicha,32&#xD;112,66,20,sepia,33&#xD;149,69,53,chestnut,34&#xD;101,67,33,dark brown,35&#xD;150,75,0,brown,36&#xD;153,101,21,golden brown,37&#xD;184,115,51,cinnamon,38&#xD;210,105,30,copper,39&#xD;255,127,0,orange,40&#xD;255,88,0,Pantone orange,41&#xD;255,117,24,pumpkin,42&#xD;243,118,29,Variables,43&#xD;232,97,0,Spanish orange,44&#xD;204,85,0,burnt orange,45&#xD;203,65,11,sinopia,46&#xD;204,119,34,ochre,47&#xD;237,145,33,carrot,48&#xD;242,133,0,tangerine,49&#xD;255,255,0,yellow,50&#xD;230,168,34,Control,51&#xD;184,134,11,dark goldenrod,52&#xD;218,165,32,goldenrod,53&#xD;244,196,48,saffron,54&#xD;236,213,64,sandstorm,55&#xD;255,219,88,mustard,56&#xD;255,215,0,gold,57&#xD;254,227,62,egg yolk,58&#xD;251,225,8,rubber duck,59&#xD;0,255,0,lime,60&#xD;141,182,0,apple green,61&#xD;98,194,19,Operators,62&#xD;34,139,34,forest green,63&#xD;0,128,0,green,64&#xD;0,100,0,dark green,65&#xD;3,192,60,dark pastel green,66&#xD;80,200,120,emerald,67&#xD;62,180,137,mint,68&#xD;0,161,120,Pen,69&#xD;0,255,255,aqua,70&#xD;0,139,139,dark cyan,71&#xD;0,123,167,cerulean,72&#xD;113,166,210,iceberg,73&#xD;4,148,220,Sensing,74&#xD;0,128,128,teal,75&#xD;135,206,250,light sky blue,76&#xD;0,191,255,deep sky blue,77&#xD;30,144,255,dodger blue,78&#xD;0,127,255,azure,79&#xD;0,0,255,blue,80&#xD;25,25,112,midnight blue,81&#xD;0,51,153,dark powder blue,82&#xD;0,71,171,cobalt,83&#xD;21,96,189,denim,84&#xD;0,0,128,navy blue,85&#xD;70,130,180,steel blue,86&#xD;74,108,212,Motion,87&#xD;100,149,237,cornflower,88&#xD;106,90,205,slate blue,89&#xD;128,0,255,violet,90&#xD;143,86,227,Looks,91&#xD;111,45,168,grape,92&#xD;75,0,130,indigo,93&#xD;160,32,240,x11 purple,94&#xD;255,0,255,magenta,95&#xD;153,50,204,dark orchid,96&#xD;207,74,217,Sound,97&#xD;127,0,127,purple,98&#xD;139,0,139,dark magenta,99&#xD;0,255,255,cyan,100&#xD;255,0,255,fuchia,101&#xD;18,18,18,grey7,102&#xD;36,36,36,grey14,103&#xD;54,54,54,grey21,104&#xD;72,72,72,grey28,105&#xD;92,92,92,grey36,106&#xD;109,109,109,grey43,107&#xD;127,127,127,grey50,108&#xD;145,145,145,grey57,109&#xD;163,163,163,grey64,110&#xD;181,181,181,grey71,111&#xD;200,200,200,grey78,112&#xD;218,218,218,grey85,113&#xD;236,236,236,grey92,114</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ fair hue table"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ fair hue table</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0&#xD;0.1,0.4490048&#xD;0.2,0.7917349397590361&#xD;0.3,1.323783606557377&#xD;0.4,1.5577075630252102&#xD;0.5,1.8819460580912863&#xD;0.6,2.2386749999999993&#xD;0.7,2.7028660714285713&#xD;0.8,3.0121628959276014&#xD;0.9,3.315934497816594&#xD;1,3.6112710280373834&#xD;1.1,3.90595&#xD;1.2,4.127571428571427&#xD;1.3,4.297762318840579&#xD;1.4,4.489283257918553&#xD;1.5,4.7677722772277225&#xD;1.6,5.039333333333333&#xD;1.7,5.304873846153846&#xD;1.8,5.403663157894737&#xD;1.9,5.658512796208531&#xD;2,5.840000000000001&#xD;2.1,6.114844444444445&#xD;2.2,6.204400000000001&#xD;2.3,6.3165000000000004&#xD;2.4,6.566297872340425&#xD;2.5,6.83&#xD;2.6,6.923418181818183&#xD;2.7,7.050461538461539&#xD;2.8,7.275225806451613&#xD;2.9,7.5318&#xD;3,7.621924324324324&#xD;3.1,7.708551724137931&#xD;3.2,7.956799999999999&#xD;3.3,8.1096&#xD;3.4,8.203896774193549&#xD;3.5,8.371&#xD;3.6,8.6184&#xD;3.7,8.717372727272728&#xD;3.8,8.851600000000001&#xD;3.9,9.016399999999999&#xD;4,9.10822857142857&#xD;4.1,9.2424&#xD;4.2,9.4036&#xD;4.3,9.4894&#xD;4.4,9.6224&#xD;4.5,9.725789473684207&#xD;4.6,9.9364&#xD;4.7,10.070061538461541&#xD;4.8,10.1744&#xD;4.9,10.297239999999999&#xD;5,10.379999999999999&#xD;5.1,10.600304&#xD;5.2,10.661408&#xD;5.3,10.7294&#xD;5.4,10.828241860465111&#xD;5.5,11.017183908045975&#xD;5.6,11.075908045977013&#xD;5.7,11.308730635838149&#xD;5.8,11.36599768786127&#xD;5.9,11.4312&#xD;6,11.522086956521738&#xD;6.1,11.70843023255814&#xD;6.2,11.763372093023255&#xD;6.3,11.825&#xD;6.4,11.900000000000002&#xD;6.5,11.99609375&#xD;6.6,12.150512280701754&#xD;6.7,12.204400000000001&#xD;6.8,12.277600000000001&#xD;6.9,12.36096&#xD;7,12.534857142857144&#xD;7.1,12.5976&#xD;7.2,13&#xD;7.3,13.411466666666666&#xD;7.4,13.549833333333334&#xD;7.5,13.69097222222222&#xD;7.6,13.9648&#xD;7.7,14.168931506849315&#xD;7.8,14.458400000000001&#xD;7.9,14.768594594594598&#xD;8,14.865702702702702&#xD;8.1,15.092035443037975&#xD;8.2,15.482090666666668&#xD;8.3,15.939600000000002&#xD;8.4,16.261599999999998&#xD;8.5,16.61513513513513&#xD;8.6,17.015784615384618&#xD;8.7,17.513740506329114&#xD;8.8,17.718825316455696&#xD;8.9,26.517000000000003&#xD;9,26.77&#xD;9.1,27.022999999999996&#xD;9.2,27.276&#xD;9.3,27.528999999999996&#xD;9.4,27.782&#xD;9.5,28.035000000000004&#xD;9.6,28.288&#xD;9.7,28.540999999999997&#xD;9.8,28.794&#xD;9.9,29.046999999999997&#xD;10,29.3&#xD;10.1,29.553000000000004&#xD;10.2,29.906&#xD;10.3,30.058999999999997&#xD;10.4,30.412&#xD;10.5,30.564999999999998&#xD;10.6,30.659000000000002&#xD;10.7,30.770999999999997&#xD;10.8,30.912&#xD;10.9,30.9885&#xD;11,31.130000000000003&#xD;11.1,31.241500000000002&#xD;11.2,31.336000000000002&#xD;11.3,31.444499999999998&#xD;11.4,31.542&#xD;11.5,31.695&#xD;11.6,31.774&#xD;11.7,31.901&#xD;11.8,32.027&#xD;11.9,32.107&#xD;12,32.260000000000005&#xD;12.1,32.3565&#xD;12.2,32.466&#xD;12.3,32.6095&#xD;12.4,32.686&#xD;12.5,32.8125&#xD;12.6,32.888999999999996&#xD;12.7,33.031&#xD;12.8,33.142&#xD;12.9,33.236999999999995&#xD;13,33.39&#xD;13.1,33.4715&#xD;13.2,33.596&#xD;13.3,33.7245&#xD;13.4,33.80200000000001&#xD;13.5,33.927499999999995&#xD;13.6,34.007999999999996&#xD;13.7,34.161&#xD;13.8,34.257&#xD;13.9,34.367&#xD;14,34.510000000000005&#xD;14.1,34.5865&#xD;14.2,34.726&#xD;14.3,34.8395&#xD;14.4,34.931999999999995&#xD;14.5,35.084999999999994&#xD;14.6,35.169&#xD;14.7,35.291&#xD;14.8,35.372&#xD;14.9,35.497&#xD;15,35.625&#xD;15.1,35.703&#xD;15.2,35.856&#xD;15.3,35.9545&#xD;15.4,36.062&#xD;15.5,36.207499999999996&#xD;15.6,36.284&#xD;15.7,36.42100000000001&#xD;15.8,36.537&#xD;15.9,36.626999999999995&#xD;16,36.739999999999995&#xD;16.1,36.833000000000006&#xD;16.2,36.986000000000004&#xD;16.3,37.0695&#xD;16.4,37.192&#xD;16.5,37.322500000000005&#xD;16.6,37.399&#xD;16.7,37.551&#xD;16.8,37.704&#xD;16.9,37.857000000000006&#xD;17,38.010000000000005&#xD;17.1,38.263000000000005&#xD;17.2,38.41600000000001&#xD;17.3,38.569&#xD;17.4,38.722&#xD;17.5,38.875&#xD;17.6,39.028&#xD;17.7,39.181&#xD;17.8,39.334&#xD;17.9,39.486999999999995&#xD;18,39.739999999999995&#xD;18.1,39.892999999999994&#xD;18.2,40.046&#xD;18.3,40.199&#xD;18.4,40.352&#xD;18.5,40.504999999999995&#xD;18.6,40.658&#xD;18.7,40.81099999999999&#xD;18.8,41.064&#xD;18.9,41.217&#xD;19,41.37&#xD;19.1,41.523&#xD;19.2,41.676&#xD;19.3,41.829&#xD;19.4,41.982000000000006&#xD;19.5,42.135&#xD;19.6,42.288&#xD;19.7,42.541&#xD;19.8,42.693999999999996&#xD;19.9,42.847&#xD;20,43&#xD;20.1,43.153&#xD;20.2,43.306&#xD;20.3,43.458999999999996&#xD;20.4,43.611999999999995&#xD;20.5,43.765&#xD;20.6,44.017999999999994&#xD;20.7,44.171&#xD;20.8,44.324&#xD;20.9,44.477&#xD;21,44.54333333333334&#xD;21.1,44.59433333333333&#xD;21.2,44.634&#xD;21.3,44.672250000000005&#xD;21.4,44.714&#xD;21.5,44.765&#xD;21.6,44.812&#xD;21.7,44.85025&#xD;21.8,44.8885&#xD;21.9,44.93566666666667&#xD;22,44.986666666666665&#xD;22.1,45.02825&#xD;22.2,45.066500000000005&#xD;22.3,45.10633333333333&#xD;22.4,45.157333333333334&#xD;22.5,45.20625&#xD;22.6,45.2445&#xD;22.7,45.28275&#xD;22.8,45.327999999999996&#xD;22.9,45.379000000000005&#xD;23,45.4225&#xD;23.1,45.460750000000004&#xD;23.2,45.499&#xD;23.3,45.54966666666667&#xD;23.4,45.60066666666667&#xD;23.5,45.651666666666664&#xD;23.6,45.702000000000005&#xD;23.7,45.74025&#xD;23.8,45.778499999999994&#xD;23.9,45.82233333333333&#xD;24,45.873333333333335&#xD;24.1,45.91825&#xD;24.2,45.9565&#xD;24.3,45.994749999999996&#xD;24.4,46.044&#xD;24.5,46.095&#xD;24.6,46.134499999999996&#xD;24.7,46.17275&#xD;24.8,46.214666666666666&#xD;24.9,46.26566666666666&#xD;25,46.3125&#xD;25.1,46.35075&#xD;25.2,46.388999999999996&#xD;25.3,46.43633333333334&#xD;25.4,46.48733333333333&#xD;25.5,46.52875&#xD;25.6,46.56699999999999&#xD;25.7,46.607&#xD;25.8,46.658&#xD;25.9,46.708999999999996&#xD;26,46.76&#xD;26.1,46.80825&#xD;26.2,46.8465&#xD;26.3,46.88475&#xD;26.4,46.93066666666667&#xD;26.5,46.98166666666667&#xD;26.6,47.0245&#xD;26.7,47.06275&#xD;26.8,47.10133333333333&#xD;26.9,47.15233333333333&#xD;27,47.2025&#xD;27.1,47.24075&#xD;27.2,47.279&#xD;27.3,47.323&#xD;27.4,47.374&#xD;27.5,47.41875&#xD;27.6,47.457&#xD;27.7,47.49525&#xD;27.8,47.544666666666664&#xD;27.9,47.595666666666666&#xD;28,47.635000000000005&#xD;28.1,47.67325&#xD;28.2,47.715333333333334&#xD;28.3,47.766333333333336&#xD;28.4,47.81733333333334&#xD;28.5,47.868333333333325&#xD;28.6,47.9145&#xD;28.7,47.952749999999995&#xD;28.8,47.991&#xD;28.9,48.039&#xD;29,48.089999999999996&#xD;29.1,48.13075&#xD;29.2,48.169&#xD;29.3,48.209666666666664&#xD;29.4,48.260666666666665&#xD;29.5,48.308749999999996&#xD;29.6,48.346999999999994&#xD;29.7,48.38525&#xD;29.8,48.431333333333335&#xD;29.9,48.48233333333333&#xD;30,48.525&#xD;30.1,48.56325&#xD;30.2,48.602000000000004&#xD;30.3,48.653000000000006&#xD;30.4,48.703&#xD;30.5,48.74125&#xD;30.6,48.7795&#xD;30.7,48.82366666666667&#xD;30.8,48.87466666666667&#xD;30.9,48.925666666666665&#xD;31,48.97666666666667&#xD;31.1,49.02075&#xD;31.2,49.059&#xD;31.3,49.097249999999995&#xD;31.4,49.147333333333336&#xD;31.5,49.19833333333334&#xD;31.6,49.237&#xD;31.7,49.27525&#xD;31.8,49.318&#xD;31.9,49.369&#xD;32,49.415&#xD;32.1,49.45325&#xD;32.2,49.4915&#xD;32.3,49.53966666666666&#xD;32.4,49.59066666666667&#xD;32.5,49.63125&#xD;32.6,49.6695&#xD;32.7,49.71033333333334&#xD;32.8,49.76133333333333&#xD;32.9,49.809250000000006&#xD;33,49.847500000000004&#xD;33.1,49.88575&#xD;33.2,49.932&#xD;33.3,49.983000000000004&#xD;33.4,50.051&#xD;33.5,50.127500000000005&#xD;33.6,50.20264239271781&#xD;33.7,50.253178153446036&#xD;33.8,50.305600000000005&#xD;33.9,50.381800000000005&#xD;34,50.458000000000006&#xD;34.1,50.5342&#xD;34.2,50.60693333333333&#xD;34.3,50.65773333333333&#xD;34.4,50.7128&#xD;34.5,50.789&#xD;34.6,50.8652&#xD;34.7,50.939675&#xD;34.8,51.0132&#xD;34.9,51.089099999999995&#xD;35,51.14333333333333&#xD;35.1,51.193933333333334&#xD;35.2,51.2668&#xD;35.3,51.3427&#xD;35.4,51.41859999999999&#xD;35.5,51.4945&#xD;35.6,51.544799999999995&#xD;35.7,51.59310000000001&#xD;35.8,51.6648&#xD;35.9,51.7404&#xD;36,51.81600000000001&#xD;36.1,51.891600000000004&#xD;36.2,51.967200000000005&#xD;36.3,52.028533333333336&#xD;36.4,52.078933333333325&#xD;36.5,52.14008711433756&#xD;36.6,52.20980000000001&#xD;36.7,52.2851&#xD;36.8,52.360400000000006&#xD;36.9,52.42380000000001&#xD;37,52.474000000000004&#xD;37.1,52.536300000000004&#xD;37.2,52.611599999999996&#xD;37.3,52.6869&#xD;37.4,52.755338078291814&#xD;37.5,52.825&#xD;37.6,52.89999999999999&#xD;37.7,52.95&#xD;37.8,53&#xD;37.9,53.075&#xD;38,53.15&#xD;38.1,53.22180385288967&#xD;38.2,53.28721541155867&#xD;38.3,53.340066666666665&#xD;38.4,53.38986666666666&#xD;38.5,53.459500000000006&#xD;38.6,53.5342&#xD;38.7,53.608900000000006&#xD;38.8,53.6836&#xD;38.9,53.7583&#xD;39,53.822&#xD;39.1,53.87179999999999&#xD;39.2,53.927470769230766&#xD;39.3,53.99080615384615&#xD;39.4,54.063599999999994&#xD;39.5,54.138&#xD;39.6,54.20826666666667&#xD;39.7,54.257866666666665&#xD;39.8,54.3112&#xD;39.9,54.3856&#xD;40,54.46&#xD;40.1,54.52851275167785&#xD;40.2,54.590179865771816&#xD;40.3,54.6623&#xD;40.4,54.724266666666665&#xD;40.5,54.77366666666667&#xD;40.6,54.8346&#xD;40.7,54.908699999999996&#xD;40.8,54.9828&#xD;40.9,55.0569&#xD;41,55.117859484777526&#xD;41.1,55.160549414519906&#xD;41.2,55.20559999999999&#xD;41.3,55.279399999999995&#xD;41.4,55.3532&#xD;41.5,55.427&#xD;41.6,55.50079999999999&#xD;41.7,55.5746&#xD;41.8,55.632266666666666&#xD;41.9,55.681466666666665&#xD;42,55.736413570274635&#xD;42.1,55.79483360258481&#xD;42.2,55.867&#xD;42.3,55.9405&#xD;42.4,56.00933333333334&#xD;42.5,56.05833333333334&#xD;42.6,56.111000000000004&#xD;42.7,56.1845&#xD;42.8,56.245070063694264&#xD;42.9,56.302800000000005&#xD;43,56.376&#xD;43.1,56.4492&#xD;43.2,56.51493333333333&#xD;43.3,56.56373333333333&#xD;43.4,56.6188&#xD;43.5,56.69200000000001&#xD;43.6,56.76520000000001&#xD;43.7,56.8384&#xD;43.8,56.906370169491524&#xD;43.9,56.946568135593225&#xD;44,56.98676610169491&#xD;44.1,57.0489&#xD;44.2,57.12179999999999&#xD;44.3,57.1947&#xD;44.4,57.267599999999995&#xD;44.5,57.3405&#xD;44.6,57.40893333333334&#xD;44.7,57.45753333333333&#xD;44.8,57.50681898928025&#xD;44.9,57.56085206738131&#xD;45,57.61999999999999&#xD;45.1,57.692600000000006&#xD;45.2,57.76520000000001&#xD;45.3,57.825199999999995&#xD;45.4,57.873599999999996&#xD;45.5,57.93299999999999&#xD;45.6,58.0056&#xD;45.7,58.0782&#xD;45.8,58.13687590361445&#xD;45.9,58.189576506024096&#xD;46,58.258&#xD;46.1,58.3202&#xD;46.2,58.368399999999994&#xD;46.3,58.4249&#xD;46.4,58.4972&#xD;46.5,58.569500000000005&#xD;46.6,58.6418&#xD;46.7,58.70738864628821&#xD;46.8,58.7452751091703&#xD;46.9,58.78316157205241&#xD;47,58.839999999999996&#xD;47.1,58.912&#xD;47.2,58.983999999999995&#xD;47.3,59.056&#xD;47.4,59.2202&#xD;47.5,59.2925&#xD;47.6,59.4576&#xD;47.7,59.62329999999999&#xD;47.8,59.6962&#xD;47.9,59.769099999999995&#xD;48,59.936&#xD;48.1,60.1035&#xD;48.2,60.177&#xD;48.3,60.345400000000005&#xD;48.4,60.419200000000004&#xD;48.5,60.492999999999995&#xD;48.6,60.66260000000001&#xD;48.7,60.8328&#xD;48.8,61.003600000000006&#xD;48.9,61.0783&#xD;49,61.153&#xD;49.1,61.325&#xD;49.2,61.4&#xD;49.3,61.572900000000004&#xD;49.4,61.746399999999994&#xD;49.5,61.822&#xD;49.6,61.8976&#xD;49.7,62.0723&#xD;49.8,62.2476&#xD;49.9,62.423500000000004&#xD;50,62.5&#xD;50.1,62.576499999999996&#xD;50.2,62.653&#xD;50.3,62.729499999999994&#xD;50.4,62.806000000000004&#xD;50.5,62.88250000000001&#xD;50.6,62.959&#xD;50.7,63.0355&#xD;50.8,63.112&#xD;50.9,63.1885&#xD;51,63.26500000000001&#xD;51.1,63.34150000000001&#xD;51.2,63.41799999999999&#xD;51.3,63.494499999999995&#xD;51.4,63.57099999999999&#xD;51.5,63.647499999999994&#xD;51.6,63.72399999999999&#xD;51.7,63.800499999999985&#xD;51.8,63.87699999999999&#xD;51.9,63.953499999999984&#xD;52,64.03&#xD;52.1,64.11299999999999&#xD;52.2,64.23299999999999&#xD;52.3,64.30949999999999&#xD;52.4,64.386&#xD;52.5,64.4625&#xD;52.6,64.539&#xD;52.7,64.6155&#xD;52.8,64.692&#xD;52.9,64.76849999999999&#xD;53,64.845&#xD;53.1,64.92150000000001&#xD;53.2,64.998&#xD;53.3,65.0745&#xD;53.4,65.151&#xD;53.5,65.22749999999999&#xD;53.6,65.304&#xD;53.7,65.38050000000001&#xD;53.8,65.457&#xD;53.9,65.53349999999999&#xD;54,65.61&#xD;54.1,65.6865&#xD;54.2,65.763&#xD;54.3,65.8395&#xD;54.4,65.916&#xD;54.5,65.99249999999999&#xD;54.6,66.069&#xD;54.7,66.1455&#xD;54.8,66.22200000000001&#xD;54.9,66.2985&#xD;55,66.375&#xD;55.1,66.4515&#xD;55.2,66.528&#xD;55.3,66.6045&#xD;55.4,66.68100000000001&#xD;55.5,66.75750000000001&#xD;55.6,66.834&#xD;55.7,66.9105&#xD;55.8,66.987&#xD;55.9,67.0635&#xD;56,67.14000000000001&#xD;56.1,67.21650000000001&#xD;56.2,67.293&#xD;56.3,67.4195&#xD;56.4,67.496&#xD;56.5,67.5725&#xD;56.6,67.649&#xD;56.7,67.7255&#xD;56.8,67.80199999999999&#xD;56.9,67.8785&#xD;57,67.955&#xD;57.1,68.0315&#xD;57.2,68.10799999999999&#xD;57.3,68.18449999999999&#xD;57.4,68.261&#xD;57.5,68.33749999999999&#xD;57.6,68.41399999999999&#xD;57.7,68.4905&#xD;57.8,68.567&#xD;57.9,68.64349999999999&#xD;58,68.72&#xD;58.1,68.7965&#xD;58.2,68.873&#xD;58.3,68.9495&#xD;58.4,69.026&#xD;58.5,69.10249999999999&#xD;58.6,69.179&#xD;58.7,69.2555&#xD;58.8,69.332&#xD;58.9,69.40566666666666&#xD;59,69.45666666666666&#xD;59.1,69.51149999999998&#xD;59.2,69.588&#xD;59.3,69.6645&#xD;59.4,69.741&#xD;59.5,69.8175&#xD;59.6,69.89399999999999&#xD;59.7,69.9705&#xD;59.8,70.047&#xD;59.9,70.1235&#xD;60,70.2&#xD;60.1,70.251&#xD;60.2,70.303&#xD;60.3,70.37950000000001&#xD;60.4,70.456&#xD;60.5,70.5325&#xD;60.6,70.60900000000001&#xD;60.7,70.6855&#xD;60.8,70.762&#xD;60.9,70.83850000000001&#xD;61,70.915&#xD;61.1,70.9915&#xD;61.2,71.06800000000001&#xD;61.3,71.12966666666667&#xD;61.4,71.18066666666667&#xD;61.5,71.24749999999999&#xD;61.6,71.324&#xD;61.7,71.4005&#xD;61.8,71.477&#xD;61.9,71.5535&#xD;62,71.63&#xD;62.1,71.70649999999999&#xD;62.2,71.783&#xD;62.3,71.8595&#xD;62.4,71.936&#xD;62.5,72.00833333333334&#xD;62.6,72.05933333333334&#xD;62.7,72.1155&#xD;62.8,72.19200000000001&#xD;62.9,72.2685&#xD;63,72.345&#xD;63.1,72.42150000000001&#xD;63.2,72.498&#xD;63.3,72.57450000000001&#xD;63.4,72.65100000000001&#xD;63.5,72.7275&#xD;63.6,72.80266666666667&#xD;63.7,72.85366666666667&#xD;63.8,72.907&#xD;63.9,72.98349999999999&#xD;64,73.05999999999999&#xD;64.1,73.1365&#xD;64.2,73.213&#xD;64.3,73.2895&#xD;64.4,73.366&#xD;64.5,73.44250000000001&#xD;64.6,73.519&#xD;64.7,73.5955&#xD;64.8,73.672&#xD;64.9,73.73233333333334&#xD;65,73.78333333333333&#xD;65.1,73.8515&#xD;65.2,73.928&#xD;65.3,74.0045&#xD;65.4,74.08099999999999&#xD;65.5,74.1575&#xD;65.6,74.23400000000001&#xD;65.7,74.3105&#xD;65.8,74.387&#xD;65.9,74.4635&#xD;66,74.52666666666667&#xD;66.1,74.57766666666666&#xD;66.2,74.643&#xD;66.3,74.71950000000001&#xD;66.4,74.796&#xD;66.5,74.8725&#xD;66.6,74.94900000000001&#xD;66.7,75.05100000000002&#xD;66.8,75.152&#xD;66.9,75.257&#xD;67,75.355&#xD;67.1,75.46300000000001&#xD;67.2,75.608&#xD;67.3,75.68450000000001&#xD;67.4,75.811&#xD;67.5,75.8875&#xD;67.6,76.01400000000001&#xD;67.7,76.0905&#xD;67.8,76.23400000000001&#xD;67.9,76.34350000000002&#xD;68,76.44000000000003&#xD;68.1,76.54650000000001&#xD;68.2,76.64600000000002&#xD;68.3,76.799&#xD;68.4,76.876&#xD;68.5,77.00250000000001&#xD;68.6,77.07900000000001&#xD;68.7,77.21100000000003&#xD;68.8,77.33200000000001&#xD;68.9,77.41699999999999&#xD;69,77.535&#xD;69.1,77.62299999999999&#xD;69.2,77.73799999999999&#xD;69.3,77.82899999999998&#xD;69.4,77.98199999999999&#xD;69.5,78.06749999999998&#xD;69.6,78.18799999999999&#xD;69.7,78.2705&#xD;69.8,78.39399999999999&#xD;69.9,78.5235&#xD;70,78.6&#xD;70.1,78.7265&#xD;70.2,78.806&#xD;70.3,78.95899999999999&#xD;70.4,79.056&#xD;70.5,79.16499999999999&#xD;70.6,79.31799999999998&#xD;70.7,79.47099999999999&#xD;70.8,79.62400000000001&#xD;70.9,79.77700000000002&#xD;71,80.03&#xD;71.1,80.183&#xD;71.2,80.436&#xD;71.3,80.589&#xD;71.4,80.742&#xD;71.5,80.895&#xD;71.6,81.148&#xD;71.7,81.30100000000002&#xD;71.8,81.45400000000001&#xD;71.9,81.70700000000001&#xD;72,81.86&#xD;72.1,82.11300000000001&#xD;72.2,82.266&#xD;72.3,82.41900000000001&#xD;72.4,82.572&#xD;72.5,82.82500000000002&#xD;72.6,82.97800000000001&#xD;72.7,83.131&#xD;72.8,83.38399999999999&#xD;72.9,83.53699999999999&#xD;73,83.68999999999998&#xD;73.1,83.943&#xD;73.2,84.09599999999998&#xD;73.3,84.249&#xD;73.4,84.50199999999998&#xD;73.5,84.655&#xD;73.6,84.80799999999999&#xD;73.7,85.06099999999999&#xD;73.8,85.214&#xD;73.9,85.36699999999999&#xD;74,85.61999999999999&#xD;74.1,85.773&#xD;74.2,85.926&#xD;74.3,86.179&#xD;74.4,86.33199999999998&#xD;74.5,86.48499999999999&#xD;74.6,86.738&#xD;74.7,86.891&#xD;74.8,87.044&#xD;74.9,87.197&#xD;75,87.45&#xD;75.1,87.5515&#xD;75.2,87.628&#xD;75.3,87.7045&#xD;75.4,87.78099999999999&#xD;75.5,87.85749999999999&#xD;75.6,87.934&#xD;75.7,88.01050000000001&#xD;75.8,88.087&#xD;75.9,88.1635&#xD;76,88.24000000000001&#xD;76.1,88.3165&#xD;76.2,88.393&#xD;76.3,88.4695&#xD;76.4,88.54599999999999&#xD;76.5,88.6225&#xD;76.6,88.699&#xD;76.7,88.7755&#xD;76.8,88.852&#xD;76.9,88.9285&#xD;77,89.00333333333334&#xD;77.1,89.05433333333335&#xD;77.2,89.108&#xD;77.3,89.18450000000001&#xD;77.4,89.261&#xD;77.5,89.3375&#xD;77.6,89.414&#xD;77.7,89.4905&#xD;77.8,89.567&#xD;77.9,89.64349999999999&#xD;78,89.72&#xD;78.1,89.79650000000001&#xD;78.2,89.873&#xD;78.3,89.9495&#xD;78.4,90.02600000000001&#xD;78.5,90.1025&#xD;78.6,90.179&#xD;78.7,90.25550000000001&#xD;78.8,90.332&#xD;78.9,90.4085&#xD;79,90.485&#xD;79.1,90.5615&#xD;79.2,90.638&#xD;79.3,90.7145&#xD;79.4,90.79100000000001&#xD;79.5,90.8675&#xD;79.6,90.944&#xD;79.7,91.0205&#xD;79.8,91.09700000000001&#xD;79.9,91.1735&#xD;80,91.25&#xD;80.1,91.32650000000001&#xD;80.2,91.403&#xD;80.3,91.4795&#xD;80.4,91.55600000000001&#xD;80.5,91.63250000000002&#xD;80.6,91.70900000000002&#xD;80.7,91.78550000000001&#xD;80.8,91.86200000000001&#xD;80.9,91.9385&#xD;81,92.015&#xD;81.1,92.09149999999998&#xD;81.2,92.14533333333333&#xD;81.3,92.19633333333333&#xD;81.4,92.27099999999999&#xD;81.5,92.3475&#xD;81.6,92.42399999999999&#xD;81.7,92.50049999999999&#xD;81.8,92.57699999999998&#xD;81.9,92.65349999999998&#xD;82,92.72999999999999&#xD;82.1,92.8065&#xD;82.2,92.883&#xD;82.3,92.95949999999999&#xD;82.4,93.036&#xD;82.5,93.1125&#xD;82.6,93.189&#xD;82.7,93.2655&#xD;82.8,93.342&#xD;82.9,93.4185&#xD;83,93.49499999999999&#xD;83.1,93.5715&#xD;83.2,93.648&#xD;83.3,93.71225&#xD;83.4,93.7505&#xD;83.5,93.78875000000001&#xD;83.6,93.81800000000001&#xD;83.7,93.8435&#xD;83.8,93.869&#xD;83.9,93.8945&#xD;84,93.92&#xD;84.1,93.94550000000001&#xD;84.2,93.971&#xD;84.3,93.9965&#xD;84.4,94.022&#xD;84.5,94.0475&#xD;84.6,94.07300000000001&#xD;84.7,94.0985&#xD;84.8,94.1288&#xD;84.9,94.1594&#xD;85,94.19&#xD;85.1,94.21716666666666&#xD;85.2,94.24266666666666&#xD;85.3,94.26816666666666&#xD;85.4,94.29366666666667&#xD;85.5,94.31916666666666&#xD;85.6,94.34466666666665&#xD;85.7,94.37016666666668&#xD;85.8,94.39566666666667&#xD;85.9,94.42116666666666&#xD;86,94.44666666666667&#xD;86.1,94.47216666666667&#xD;86.2,94.49766666666667&#xD;86.3,94.52316666666667&#xD;86.4,94.54866666666666&#xD;86.5,94.57416666666667&#xD;86.6,94.59966666666666&#xD;86.7,94.62516666666667&#xD;86.8,94.65066666666667&#xD;86.9,94.67616666666666&#xD;87,94.70166666666667&#xD;87.1,94.72716666666666&#xD;87.2,94.75266666666667&#xD;87.3,94.77816666666666&#xD;87.4,94.80366666666666&#xD;87.5,94.82916666666667&#xD;87.6,94.85466666666666&#xD;87.7,94.88016666666667&#xD;87.8,94.9068&#xD;87.9,94.9374&#xD;88,94.968&#xD;88.1,94.9986&#xD;88.2,95.02433333333333&#xD;88.3,95.04983333333334&#xD;88.4,95.07533333333333&#xD;88.5,95.10083333333333&#xD;88.6,95.12633333333333&#xD;88.7,95.15183333333333&#xD;88.8,95.17733333333334&#xD;88.9,95.20283333333333&#xD;89,95.22833333333332&#xD;89.1,95.25383333333333&#xD;89.2,95.27933333333333&#xD;89.3,95.30483333333333&#xD;89.4,95.33033333333333&#xD;89.5,95.35583333333332&#xD;89.6,95.38133333333333&#xD;89.7,95.40683333333332&#xD;89.8,95.43233333333333&#xD;89.9,95.45783333333334&#xD;90,95.48333333333333&#xD;90.1,95.50883333333334&#xD;90.2,95.53433333333334&#xD;90.3,95.55983333333333&#xD;90.4,95.58533333333334&#xD;90.5,95.61083333333333&#xD;90.6,95.63633333333334&#xD;90.7,95.66183333333333&#xD;90.8,95.68733333333333&#xD;90.9,95.7154&#xD;91,95.74600000000001&#xD;91.1,95.7766&#xD;91.2,95.80600000000001&#xD;91.3,95.8315&#xD;91.4,95.857&#xD;91.5,95.88250000000001&#xD;91.6,95.908&#xD;91.7,95.93350000000001&#xD;91.8,95.959&#xD;91.9,95.9845&#xD;92,96.01&#xD;92.1,96.0355&#xD;92.2,96.061&#xD;92.3,96.0865&#xD;92.4,96.112&#xD;92.5,96.1375&#xD;92.6,96.163&#xD;92.7,96.1885&#xD;92.8,96.214&#xD;92.9,96.23949999999999&#xD;93,96.265&#xD;93.1,96.2905&#xD;93.2,96.316&#xD;93.3,96.34150000000001&#xD;93.4,96.367&#xD;93.5,96.39250000000001&#xD;93.6,96.418&#xD;93.7,96.4435&#xD;93.8,96.469&#xD;93.9,96.49449999999999&#xD;94,96.524&#xD;94.1,96.5546&#xD;94.2,96.5852&#xD;94.3,96.61316666666667&#xD;94.4,96.63866666666667&#xD;94.5,96.66416666666666&#xD;94.6,96.68966666666667&#xD;94.7,96.71516666666666&#xD;94.8,96.74066666666667&#xD;94.9,96.76616666666666&#xD;95,96.79166666666666&#xD;95.1,96.81716666666667&#xD;95.2,96.84266666666666&#xD;95.3,96.86816666666667&#xD;95.4,96.89366666666666&#xD;95.5,96.91916666666665&#xD;95.6,96.94466666666666&#xD;95.7,96.97016666666667&#xD;95.8,96.99566666666666&#xD;95.9,97.0635&#xD;96,97.14000000000001&#xD;96.1,97.21650000000001&#xD;96.2,97.293&#xD;96.3,97.34633333333333&#xD;96.4,97.39733333333334&#xD;96.5,97.4725&#xD;96.6,97.54899999999999&#xD;96.7,97.62549999999999&#xD;96.8,97.702&#xD;96.9,97.7785&#xD;97,97.85499999999999&#xD;97.1,97.9315&#xD;97.2,98.008&#xD;97.3,98.0845&#xD;97.4,98.14066666666666&#xD;97.5,98.19166666666666&#xD;97.6,98.264&#xD;97.7,98.3405&#xD;97.8,98.417&#xD;97.9,98.4935&#xD;98,98.57&#xD;98.1,98.64649999999999&#xD;98.2,98.72299999999998&#xD;98.3,98.7995&#xD;98.4,98.85066666666667&#xD;98.5,98.90249999999999&#xD;98.6,98.979&#xD;98.7,99.0555&#xD;98.8,99.13199999999999&#xD;98.9,99.20849999999999&#xD;99,99.285&#xD;99.1,99.3615&#xD;99.2,99.438&#xD;99.3,99.5145&#xD;99.4,99.59100000000001&#xD;99.5,99.64500000000001&#xD;99.6,99.696&#xD;99.7,99.7705&#xD;99.8,99.8235&#xD;99.9,99.86175&#xD;100,100</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ colors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>128</l><l>128</l><l>128</l></list></block><block s="reportNewList"><list><l>192</l><l>192</l><l>192</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>85</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>139</l><l>69</l><l>19</l></list></block><block s="reportNewList"><list><l>70</l><l>5</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>127</l><l>0</l></list></block><block s="reportNewList"><list><l>140</l><l>60</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>114</l><l>93</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>30</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>50</l><l>50</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>64</l></list></block><block s="reportNewList"><list><l>80</l><l>0</l><l>90</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ brights"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ brights</l><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>170</l><l>20</l><l>0</l></list></block><block s="reportNewList"><list><l>139</l><l>69</l><l>19</l></list></block><block s="reportNewList"><list><l>170</l><l>90</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>127</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>160</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>190</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>240</l><l>200</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>127</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>60</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>128</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>64</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ pivots"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ pivots</l><block s="reportNewList"><list><l>0</l><l>5.8</l><l>12.5</l><l>18</l><l>25</l><l>30.5</l><l>37.5</l><l>44.5</l><l>50</l><l>59</l><l>62.5</l><l>69</l><l>75</l><l>79.25</l><l>87.5</l><l>93.75</l><l>97</l><l>100</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSV brights"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSV brights</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,1,1&#xD;0.0196078431372549,1,0.6666666666666666&#xD;0.06944444444444443,0.8633093525179856,0.5450980392156862&#xD;0.08823529411764708,1,0.6666666666666666&#xD;0.08300653594771241,1,1&#xD;0.10457516339869281,1,1&#xD;0.16666666666666666,1,1&#xD;0.20915032679738563,1,1&#xD;0.3333333333333333,1,1&#xD;0.47222222222222227,1,0.9411764705882353&#xD;0.5,1,1&#xD;0.5836601307189543,1,1&#xD;0.6666666666666666,1,1&#xD;0.7058823529411765,1,1&#xD;0.7503267973856209,1,1&#xD;0.8333333333333334,1,1&#xD;0.9581699346405229,1,1&#xD;1,1,1</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSL brights"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSL brights</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,100,50&#xD;1.9607843137254901,100,33.33333333333333&#xD;6.944444444444444,75.94936708860757,30.980392156862745&#xD;8.823529411764708,100,33.33333333333333&#xD;8.30065359477124,100,50&#xD;10.457516339869281,100,50&#xD;16.666666666666664,100,50&#xD;20.915032679738562,100,50&#xD;33.33333333333333,100,50&#xD;47.22222222222223,100,50&#xD;50,100,50&#xD;58.36601307189543,100,50&#xD;66.66666666666666,100,50&#xD;70.58823529411765,100,50&#xD;75.0326797385621,100,50&#xD;83.33333333333334,100,50&#xD;95.81699346405229,100,50&#xD;100,100,50</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSV colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSV colors</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0,0&#xD;0,0,50.19607843137255&#xD;0,0,75.29411764705883&#xD;0,0,100&#xD;0,100,100&#xD;0,100,33.33333333333333&#xD;6.944444444444444,86.33093525179856,54.509803921568626&#xD;1.1904761904761905,100,27.450980392156865&#xD;8.30065359477124,100,100&#xD;7.142857142857142,100,54.90196078431373&#xD;16.666666666666664,100,100&#xD;13.596491228070173,100,44.70588235294118&#xD;33.33333333333333,100,100&#xD;33.33333333333333,100,11.76470588235294&#xD;50,100,100&#xD;50,100,19.607843137254903&#xD;66.66666666666666,100,100&#xD;66.66666666666666,100,25.098039215686274&#xD;81.4814814814815,100,35.294117647058826&#xD;83.33333333333334,100,100&#xD;100,0,0</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ HSL colors"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ HSL colors</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0,0,0&#xD;0,0,50.19607843137255&#xD;0,0,75.29411764705883&#xD;0,0,100&#xD;0,100,50&#xD;0,100,16.666666666666664&#xD;6.944444444444444,75.94936708860757,30.980392156862745&#xD;1.1904761904761905,100,13.725490196078432&#xD;8.30065359477124,100,50&#xD;7.142857142857142,100,27.450980392156865&#xD;16.666666666666664,100,50&#xD;13.596491228070173,100,22.35294117647059&#xD;33.33333333333333,100,50&#xD;33.33333333333333,100,5.88235294117647&#xD;50,100,50&#xD;50,100,9.803921568627452&#xD;66.66666666666666,100,50&#xD;66.66666666666666,100,12.549019607843137&#xD;81.4814814814815,100,17.647058823529413&#xD;83.33333333333334,100,50&#xD;0,0,0</l></custom-block><l><option>csv</option></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ dimension names"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ dimension names</l><block s="reportNewList"><list><l>color</l><l>color number</l><l>crayon</l><l>fair hue</l><l>size</l><l>transparency</l><l>X11/W3C name</l><l>fair saturation (HSL)</l><l>fair lightness</l><l>fair HSL vector</l><l>fair saturation (HSV)</l><l>fair value (brightness)</l><l>fair HSV vector</l><l>hue</l><l>saturation (HSL)</l><l>lightness</l><l>HSL vector</l><l>saturation (HSV)</l><l>value (brightness)</l><l>HSV vector</l><l>red</l><l>green</l><l>blue</l><l>RGB(A) vector</l><l>RGB(A) hex</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="✐ dimension dispatch"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>✐ dimension dispatch</l><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="✐ set pen to color %obj %l"><l/><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to color number %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to crayon %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair hue %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen size to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen transparency to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to X11 name %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair saturation (HSL) %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair lightness %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair HSL vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair saturation (HSV) %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair value (brightness) %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to fair HSV vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to hue %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to HSL saturation %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to lightness %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to HSL vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen saturation (HSV) to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen value (brightness) to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to HSV vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen red to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen green to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen blue to %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to RGB vector %s %l"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="✐ set pen to RGB hex %s %l"><l></l><l/></custom-block></script><list></list></block></list></block></block></script><list></list></block></script><scripts><script x="317.1142578125" y="21796.466666666656"><block s="reportTextSplit"><custom-block s="multiline %mlt"><l></l></custom-block><l><option>csv</option></l></block></script></scripts></block-definition><block-definition s="✐ crayon number of color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>table entry</l></list></block><block s="doSetVar"><l>table entry</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="color"/><l><option>costume</option></l></block><block s="reportVariadicEquals"><list><custom-block s="✐ RGB from color %s"><block var="color"/></custom-block><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><l/></block></list></block></list></block><block s="reportVariadicEquals"><list><block var="color"/><block s="reportListItem"><l>4</l><l/></block></list></block></list></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIf"><block s="reportIsA"><block var="table entry"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><l>5</l><block var="table entry"/></block></block></script><list></list></block><block s="doReport"><l>not a crayon</l></block></script></block-definition><block-definition s="✐ RGB from color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doReport"><block var="color"/></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="color"/></block></block></block></block></script></block></script></block-definition><block-definition s="✐ X11 name of color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>table entry</l></list></block><block s="doSetVar"><l>table entry</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="color"/><l><option>costume</option></l></block><block s="reportVariadicEquals"><list><custom-block s="✐ RGB from color %s"><block var="color"/></custom-block><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><l/></block></list></block></list></block><block s="reportVariadicEquals"><list><block var="color"/><block s="reportListItem"><l>4</l><l/></block></list></block></list></block></autolambda><list></list></block><block var="✐ X11"/></block></block><block s="doIf"><block s="reportIsA"><block var="table entry"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="table entry"/></block></block></script><list></list></block><block s="doReport"><l>not an X11 color</l></block></script></block-definition><block-definition s="✐ include transparency %&apos;rgb&apos; %&apos;transparency&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="transparency"/><l><option>number</option></l></block><script><block s="doSetVar"><l>transparency</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>100</l><block var="transparency"/></block><l>255</l></list></block><l>100</l></block></block></script><script><block s="doSetVar"><l>transparency</l><l>255</l></block></script></block><block s="doReport"><block s="reportNewCostume"><block s="reportNewList"><list><block s="reportConcatenatedLists"><list><block var="rgb"/><block s="reportNewList"><list><block var="transparency"/></list></block></list></block></list></block><l>1</l><l>1</l></block></block></script></block-definition><block-definition s="✐ extract rgba values %&apos;value&apos; %&apos;transparency&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>red</l><l>green</l><l>blue</l></list></block><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>costume</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="value"/></block></block></block></script><list></list></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>number</option></l></block><script><block s="doSetVar"><l>red</l><block s="reportListItem"><l>1</l><block var="value"/></block></block><block s="doSetVar"><l>green</l><block s="reportListItem"><l>2</l><block var="value"/></block></block><block s="doSetVar"><l>blue</l><block s="reportListItem"><l>3</l><block var="value"/></block></block><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><script><block s="doSetVar"><l>red</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block><block s="doSetVar"><l>green</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block><block s="doSetVar"><l>blue</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="value"/></block></block><l>3</l></list></block><script><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>4</l><block s="reportListItem"><l>1</l><block var="value"/></block></block></block></script><script><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>2</l><block var="value"/></block></block></script></block></script></block><block s="doReport"><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block></block></script></block-definition><block-definition s="✐ RGB from HSV %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>hue</l><l>saturation</l><l>value</l><l>chroma</l><l>hue prime</l><l>2nd largest component</l><l>red</l><l>green</l><l>blue</l><l>smallest component</l><l>rgb</l></list></block><block s="doSetVar"><l>hue</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block><l>360</l></list></block><l>100</l></block></block><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>2</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>value</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>3</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>chroma</l><block s="reportVariadicProduct"><list><block var="value"/><block var="saturation"/></list></block></block><block s="doSetVar"><l>hue prime</l><block s="reportQuotient"><block var="hue"/><l>60</l></block></block><block s="doSetVar"><l>2nd largest component</l><block s="reportVariadicProduct"><list><block var="chroma"/><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportModulus"><block var="hue prime"/><l>2</l></block><l>1</l></block></block></block></list></block></block><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>1</l></list></block><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>2</l></list></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>3</l></list></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>4</l></list></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>5</l></list></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script></block></script></block></script></block></script></block></script></block><block s="doSetVar"><l>smallest component</l><block s="reportDifference"><block var="value"/><block var="chroma"/></block></block><block s="doSetVar"><l>rgb</l><block s="reportVariadicSum"><list><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block><block var="smallest component"/></list></block></block><block s="doReport"><block s="reportVariadicProduct"><list><block var="rgb"/><l>255</l></list></block></block></script></block-definition><block-definition s="✐ RGB from HSL %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>hue</l><l>saturation</l><l>lightness</l><l>chroma</l><l>hue prime</l><l>2nd largest component</l><l>red</l><l>green</l><l>blue</l><l>smallest component</l><l>rgb</l></list></block><block s="doSetVar"><l>hue</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block><l>360</l></list></block><l>100</l></block></block><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>2</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>lightness</l><block s="reportQuotient"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportListItem"><l>3</l><block var="color"/></block><l>0</l></list></block><l>100</l></list></block><l>100</l></block></block><block s="doSetVar"><l>chroma</l><block s="reportVariadicProduct"><list><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><block var="lightness"/></list></block><l>1</l></block></block></block><block var="saturation"/></list></block></block><block s="doSetVar"><l>hue prime</l><block s="reportQuotient"><block var="hue"/><l>60</l></block></block><block s="doSetVar"><l>2nd largest component</l><block s="reportVariadicProduct"><list><block var="chroma"/><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportModulus"><block var="hue prime"/><l>2</l></block><l>1</l></block></block></block></list></block></block><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>1</l></list></block><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>2</l></list></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>3</l></list></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="chroma"/></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>4</l></list></block><script><block s="doSetVar"><l>red</l><l>0</l></block><block s="doSetVar"><l>green</l><block var="2nd largest component"/></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="hue prime"/><l>5</l></list></block><script><block s="doSetVar"><l>red</l><block var="2nd largest component"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="chroma"/></block></script><script><block s="doSetVar"><l>red</l><block var="chroma"/></block><block s="doSetVar"><l>green</l><l>0</l></block><block s="doSetVar"><l>blue</l><block var="2nd largest component"/></block></script></block></script></block></script></block></script></block></script></block><block s="doSetVar"><l>smallest component</l><block s="reportDifference"><block var="lightness"/><block s="reportQuotient"><block var="chroma"/><l>2</l></block></block></block><block s="doSetVar"><l>rgb</l><block s="reportVariadicSum"><list><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block><block var="smallest component"/></list></block></block><block s="doReport"><block s="reportVariadicProduct"><list><block var="rgb"/><l>255</l></list></block></block></script></block-definition><block-definition s="✐ color number near color %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>hue</l><l>saturation</l><l>lightness</l><l>hsl</l></list></block><block s="doSetVar"><l>color</l><custom-block s="✐ extract rgba values %l %upvar"><block var="color"/><l>transparency</l></custom-block></block><block s="doSetVar"><l>hsl</l><custom-block s="✐ HSL/HSV (hsl? %b ) from RGB %s"><l><bool>true</bool></l><block var="color"/></custom-block></block><block s="doSetVar"><l>hue</l><block s="reportListItem"><l>1</l><block var="hsl"/></block></block><block s="doSetVar"><l>saturation</l><block s="reportListItem"><l>2</l><block var="hsl"/></block></block><block s="doSetVar"><l>lightness</l><block s="reportListItem"><l>3</l><block var="hsl"/></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="saturation"/><l>25</l></list><comment w="107.33333333333333" collapsed="true">Nearly grayscale.</comment></block><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="lightness"/><l>50</l></list></block><script><block s="doReport"><block s="reportQuotient"><block var="lightness"/><l>10</l></block></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><l>5</l><block s="reportQuotient"><block s="reportDifference"><block var="lightness"/><l>50</l></block><l>5</l></block></list></block><block s="reportQuotient"><l>14</l><l>15</l></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hue"/><l>2</l></list><comment w="70.66666666666667" collapsed="true">Red family</comment></block><script><block s="doIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block var="lightness"/><l>50</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>14</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="lightness"/></block><block s="reportDifference"><l>100</l><l>50</l></block></block><l>6</l></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block var="lightness"/><l>16.6</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>20</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>50</l><block var="lightness"/></block><block s="reportDifference"><l>50</l><l>16.6</l></block></block><l>5</l></list></block></list></block></block></script><script><block s="doReport"><l>25</l></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hue"/><l>8.7</l></list><comment w="137.33333333333334" collapsed="true">Brown/orange family</comment></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportDifference"><block var="lightness"/><block s="reportDifference"><l>100</l><block var="saturation"/></block></block><l>15</l></list><comment w="62" collapsed="true">brown</comment></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="hue"/><l>0.9</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>25</l><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="saturation"/></block><l>5.75</l></block></list></block></block></script><script><block s="doReport"><block s="reportDifference"><l>35</l><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="saturation"/></block><l>5.75</l></block></block></block></script></block></script><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>40</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>7</l><l>14</l><l>28</l></custom-block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hue"/><l>17</l></list><comment w="75.33333333333333" collapsed="true">yellow</comment></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportCombine"><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="color"/><block s="reportNewList"><list><l>114</l><l>93</l><l>0</l></list></block></block></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>45</l></list></block><script><block s="doReport"><l>54.7</l></block></script><list></list></block><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>50</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>14</l><l>27.75</l><l>22.3</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hue"/><l>34</l></list><comment w="75.33333333333333" collapsed="true">green</comment></block><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>60</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>32</l><l>20</l><l>6</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hue"/><l>52</l></list></block><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>70</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>49</l><l>6</l><l>10</l></custom-block></block></script><list></list><comment w="75.33333333333333" collapsed="true">cyan</comment></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hue"/><l>67</l></list><comment w="74" collapsed="true">blue</comment></block><script><block s="doReport"><custom-block s="✐ color number in %n family, from H: %n S: %n L: %n %br rising hue: %n %br rising min lightness: %n falling min lightness: %n"><l>80</l><block var="hue"/><block var="saturation"/><block var="lightness"/><l>64</l><l>10</l><l>13</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hue"/><l>83.33333333</l></list><comment w="74" collapsed="true">purple</comment></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="hue"/><l>81.5</l></list></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="hue"/><l>82</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>85</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><block var="hue"/><l>66.666</l></block><block s="reportDifference"><l>81.48</l><l>66.666</l></block></block><l>5</l></list></block></list></block></block></script><script><block s="doReport"><l>90</l></block></script></block></script><script><block s="doReport"><block s="reportDifference"><l>95</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>50</l><block var="lightness"/></block><block s="reportDifference"><l>50</l><l>17.6</l></block></block><l>5</l></list></block></block></block></script></block></script><list></list></block><block s="doReport"><block s="reportVariadicSum"><list><l>95</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><l>50</l><block var="lightness"/></block><l>50</l></block><l>5</l></list></block></list><comment w="90" collapsed="true">left of black</comment></block></block></script></block-definition><block-definition s="✐ HSL/HSV (hsl? %&apos;HSL?&apos; ) from RGB %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%b">false</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>red</l><l>green</l><l>blue</l><l>max</l><l>min</l><l>chroma</l><l>hue</l><l>value</l><l>lightness</l><l>saturation</l></list></block><block s="doSetVar"><l>red</l><block s="reportQuotient"><block s="reportListItem"><l>1</l><block var="color"/></block><l>255</l></block></block><block s="doSetVar"><l>green</l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="color"/></block><l>255</l></block></block><block s="doSetVar"><l>blue</l><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="color"/></block><l>255</l></block></block><block s="doSetVar"><l>color</l><block s="reportNewList"><list><block var="red"/><block var="green"/><block var="blue"/></list></block></block><block s="doSetVar"><l>max</l><block s="reportCombine"><block var="color"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>min</l><block s="reportCombine"><block var="color"/><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>chroma</l><block s="reportDifference"><block var="max"/><block var="min"/></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="chroma"/><l>0</l></list></block><script><block s="doSetVar"><l>hue</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="max"/><block var="red"/></list></block><script><block s="doSetVar"><l>hue</l><block s="reportModulus"><block s="reportQuotient"><block s="reportDifference"><block var="green"/><block var="blue"/></block><block var="chroma"/></block><l>6</l></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="max"/><block var="green"/></list></block><script><block s="doSetVar"><l>hue</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block var="blue"/><block var="red"/></block><block var="chroma"/></block><l>2</l></list></block></block></script><script><block s="doSetVar"><l>hue</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block var="red"/><block var="green"/></block><block var="chroma"/></block><l>4</l></list></block></block></script></block></script></block></script></block><block s="doSetVar"><l>hue</l><block s="reportVariadicProduct"><list><l>60</l><block var="hue"/></list></block></block><block s="doIfElse"><block var="HSL?"/><script><block s="doSetVar"><l>lightness</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="max"/><block var="min"/></list></block><l>2</l></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="lightness"/><l>0</l></list></block><block s="reportVariadicEquals"><list><block var="lightness"/><l>1</l></list></block></list></block><script><block s="doSetVar"><l>saturation</l><l>0</l></block></script><script><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block var="chroma"/><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><block var="lightness"/></list></block><l>1</l></block></block></block></block></block></script></block><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block var="hue"/><l>3.6</l></block><block s="reportVariadicProduct"><list><l>100</l><block var="saturation"/></list></block><block s="reportVariadicProduct"><list><l>100</l><block var="lightness"/></list></block></list></block></block></script><script><block s="doSetVar"><l>value</l><block var="max"/></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l>0</l></list></block><script><block s="doSetVar"><l>saturation</l><l>0</l></block></script><script><block s="doSetVar"><l>saturation</l><block s="reportQuotient"><block var="chroma"/><block var="value"/></block></block></script></block><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block var="hue"/><l>3.6</l></block><block s="reportVariadicProduct"><list><l>100</l><block var="saturation"/></list></block><block s="reportVariadicProduct"><list><l>100</l><block var="value"/></list></block></list></block></block></script></block></script></block-definition><block-definition s="✐ color number in %&apos;family&apos; family, from H: %&apos;hue&apos; S: %&apos;saturation&apos; L: %&apos;lightness&apos; $nl rising hue: %&apos;max hue&apos; $nl rising min lightness: %&apos;rise&apos; falling min lightness: %&apos;fall&apos;" type="reporter" 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><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="hue"/><block var="max hue"/></list></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="lightness"/><block var="rise"/></list></block><script><block s="doReport"><block s="reportDifference"><block var="family"/><l>5</l></block></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="family"/><l>5</l></block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><block var="lightness"/><block var="rise"/></block><block s="reportDifference"><l>50</l><block var="rise"/></block></block><l>5</l></list></block></list></block></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="lightness"/><block var="fall"/></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="family"/><l>5</l></list></block></block></script><script><block s="doReport"><block s="reportDifference"><block s="reportVariadicSum"><list><block var="family"/><l>5</l></list></block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDifference"><block var="lightness"/><block var="fall"/></block><block s="reportDifference"><l>50</l><block var="fall"/></block></block><l>5</l></list></block></block></block></script></block></script></block></script></block-definition><block-definition s="✐ byte to hex %&apos;byte&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="✐ nybble to hex %n"><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="byte"/><l>16</l></block></block></custom-block><custom-block s="✐ nybble to hex %n"><block s="reportModulus"><block var="byte"/><l>16</l></block></custom-block></list></block></block></script></block-definition><block-definition s="✐ nybble to hex %&apos;nybble&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="nybble"/><l>10</l></list></block><script><block s="doReport"><block var="nybble"/></block></script><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="nybble"/><l>10</l></block><block s="reportUnicode"><l>a</l></block></list></block></block></block></script></block></script></block-definition><block-definition s="✐ limits %&apos;color&apos;" type="reporter" category="pen"><comment x="0" y="0" w="90" collapsed="false">hue mod 100, other components cut off at [0, 100]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCONS"><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="color"/></block><l>100</l></block><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block s="reportCDR"><block var="color"/></block><l>0</l></list></block><l>100</l></list></block></block></block></script></block-definition><block-definition s="✐ set pen to fair hue %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>old value temp</l><l>index</l><l>scale</l><l>oldHSV</l><l>newHSV</l><l>trans</l></list></block><block s="doSetVar"><l>oldHSV</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l>100</l><l></l></list></block></autolambda><list></list></block><custom-block s="HSV color"></custom-block></block></block><block s="doSetVar"><l>trans</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><block s="reportListItem"><l>1</l><block var="more"/></block><block s="getPenAttribute"><l><option>transparency</option></l></block></block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>HSL</l><l>HSV</l></list></block><block var="✐ last set as"/></block></block><script><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block><block s="doSetVar"><l>oldHSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block></script><list></list></block><block s="doSetVar"><l>value</l><block s="reportModulus"><block var="value"/><l>100</l></block></block><block s="doSetVar"><l>color</l><block s="reportVariadicProduct"><list><block var="value"/><l>3.6</l></list></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block><block var="value"/></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>scale</l><block s="reportQuotient"><block s="reportDifference"><block var="value"/><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block><block s="reportDifference"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ pivots"/></block><block s="reportListItem"><block var="index"/><block var="✐ pivots"/></block></block></block></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><block s="reportRound"><block s="reportVariadicSum"><list><block var="from"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="to"/><block var="from"/></block><block var="scale"/></list></block></list></block></block><l>255</l></list></block></autolambda><list><l>from</l><l>to</l></list></block><list><block s="reportListItem"><block var="index"/><block var="✐ brights"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ brights"/></block></list></custom-block></block><block s="doSetVar"><l>newHSV</l><custom-block s="HSV color"></custom-block></block><block s="doIfElse"><block var="✐ fair?"/><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="newHSV"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="newHSV"/></block><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></list></block><l>100</l></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="newHSV"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></list></block><l>100</l></block></custom-block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></list></block></block></script><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportListItem"><l>1</l><block var="newHSV"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="newHSV"/></block><block s="reportListItem"><l>2</l><block var="oldHSV"/></block></list></block><l>100</l></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="newHSV"/></block><block s="reportListItem"><l>3</l><block var="oldHSV"/></block></list></block><l>100</l></block></custom-block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>2</l><block var="oldHSV"/></block><block s="reportListItem"><l>3</l><block var="oldHSV"/></block></list></block></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><custom-block s="✐ update HSL"></custom-block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block></script><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block></script></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="setPenColorDimension"><l><option>transparency</option></l><block var="trans"/></block><custom-block s="✐ make integer RGB"></custom-block></script></block-definition><block-definition s="✐ set pen to color number %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>colors</l><l>brights</l><l>index</l><l>scale</l><l>oldHSV</l><l>newHSV</l><l>color</l><l>pivots</l><l>old value temp</l></list></block><block s="doSetVar"><l>✐ color scale</l><block s="reportModulus"><block var="value"/><l>100</l></block></block><block s="doSetVar"><l>color</l><block s="reportVariadicProduct"><list><block var="value"/><l>3</l></list></block></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="color"/><l>42</l></list></block></block><script><block s="doSetVar"><l>color</l><block s="reportModulus"><block s="reportVariadicProduct"><list><block var="color"/><block s="reportQuotient"><l>15</l><l>14</l></block></list></block><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="color"/><l>60</l></list><comment w="96.66666666666667" collapsed="true">spread out pink</comment></block><script><block s="doSetVar"><l>color</l><block s="reportVariadicSum"><list><l>45</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="color"/><l>42</l></block><block s="reportQuotient"><l>15</l><l>18</l></block></list></block></list></block></block></script><list></list></block><block s="doSetVar"><l>color</l><block s="reportModulus"><block var="color"/><l>300</l></block></block><block s="doSetVar"><l>index</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="color"/><l>15</l></block></block></block><block s="doSetVar"><l>scale</l><block s="reportDifference"><block var="color"/><block s="reportVariadicProduct"><list><block var="index"/><l>15</l></list></block></block></block></script><comment w="77.33333333333333" collapsed="true">grayscale</comment></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><block s="reportRound"><block s="reportVariadicSum"><list><block var="from"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="to"/><block var="from"/></block><block s="reportQuotient"><block var="scale"/><l>15</l></block></list></block></list></block></block><l>255</l></list></block></autolambda><list><l>from</l><l>to</l></list></block><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="✐ colors"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>2</l></list></block><block var="✐ colors"/></block></list></custom-block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>color number</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>✐ raw HSL</l><block s="reportNewList"><list><block s="getPenAttribute"><l><option>hue</option></l></block><l>100</l><l>50</l></list></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><block s="getPenAttribute"><l><option>hue</option></l></block><l>100</l><l>100</l></list></block></block></script></block-definition><block-definition s="✐ set pen to RGB hex %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>number</option></l></block><l></l><block s="reportVariadicSum"><list><l>10</l><block s="reportDifference"><block s="reportUnicode"><l></l></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>a</l></list></block><block s="reportUnicode"><l>A</l></block><block s="reportUnicode"><l>a</l></block></block></block></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="value"/><l><option>letter</option></l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="doSetVar"><l>value</l><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="value"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><l></l><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><l></l><l>15</l></list></block></list></block></autolambda><list></list></block><block var="value"/></block><l><option>number</option></l></block><script><custom-block s="error %txt"><l>Badly formed hex color.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>8</l></list></block><script><custom-block s="error %txt"><l>More than eight hex digits.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>6</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>7</l><block var="value"/></block></list></block><block s="reportListItem"><l>8</l><block var="value"/></block></list></block><l>100</l></list></block><l>255</l></block></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>6</l></block><block var="value"/></block></block></script><list></list></block><block s="doRepeat"><block s="reportDifference"><l>6</l><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block></block><script><block s="doSetVar"><l>value</l><block s="reportCONS"><l>0</l><block var="value"/></block></block></script></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>1</l><block var="value"/></block></list></block><block s="reportListItem"><l>2</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>3</l><block var="value"/></block></list></block><block s="reportListItem"><l>4</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>5</l><block var="value"/></block></list></block><block s="reportListItem"><l>6</l><block var="value"/></block></list></block></custom-block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to X11 name %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ no spaces %s"><block var="value"/></custom-block></block><custom-block s="use case-independent comparisons %b"><l><bool>true</bool></l></custom-block><custom-block s="catch %upvar %cs"><l>x11w3c</l><script><block s="doIf"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="value"/><block s="reportListItem"><l>4</l><l/></block></list></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>exact matches</l><l><bool>true</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>?? multiple exact matches for </l><block var="value"/></list></block></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><l/></block><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><l/></block><block var="value"/></custom-block></list></block></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>partial matches</l><l><bool>true</bool></l></custom-block></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Color name </l><block var="value"/><l> not found.</l></list></block></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><block var="match"/></block><block var="value"/></custom-block><l></l></list></block></autolambda><list><l>match</l></list></block><block var="partial matches"/><block var="x11w3c"/><l>head matches</l><l><bool>true</bool></l></custom-block><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="head matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>true</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="head matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="partial matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>true</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="value"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="partial matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script></block></script><comment w="294.6666666666667" collapsed="true">SUBSET throws here if it handles a unique match</comment></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ color from X11 name %&apos;value&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>index</l><l>scale</l><l>transparency</l></list></block><block s="doSetVar"><l>color</l><custom-block s="✐ no spaces %s"><block s="reportListItem"><l>1</l><block var="value"/></block></custom-block></block><custom-block s="use case-independent comparisons %b"><l><bool>true</bool></l></custom-block><custom-block s="catch %upvar %cs"><l>x11w3c</l><script><block s="doIf"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="color"/><block s="reportListItem"><l>4</l><l/></block></list></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>exact matches</l><l><bool>false</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>?? multiple exact matches for </l><block var="color"/></list></block></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><l/></block><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><l/></block><block var="color"/></custom-block></list></block></block></autolambda><list></list></block><block var="✐ X11"/><block var="x11w3c"/><l>partial matches</l><l><bool>false</bool></l></custom-block></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Color name </l><block var="color"/><l> not found.</l></list></block></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="substring of %txt before %txt"><block s="reportListItem"><l>4</l><block var="match"/></block><block var="color"/></custom-block><l></l></list></block></autolambda><list><l>match</l></list></block><block var="partial matches"/><block var="x11w3c"/><l>head matches</l><l><bool>false</bool></l></custom-block><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="head matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>false</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="head matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script><script><block s="doIfElse"><custom-block s="✐ subset %predRing %l %cmdRing %upvar %b"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>4</l><l/></block></block><l><option>number</option></l></block></block></autolambda><list></list></block><block var="partial matches"/><block var="x11w3c"/><l>non-numbered matches</l><l><bool>false</bool></l></custom-block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="non-numbered matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Multiple partial matches for </l><block var="color"/><l>: </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>4</l><l/></block></autolambda><list></list></block><block var="partial matches"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> , </l><l></l></list></block></autolambda><list></list></block></block></list></block></custom-block></script></block></script></block></script><comment w="294.6666666666667" collapsed="true">SUBSET throws here if it handles a unique match</comment></custom-block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block var="✐ X11 catch"/><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block></block></script></block-definition><block-definition s="✐ color from RGB hex %&apos;value&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>index</l><l>scale</l><l>transparency</l></list></block><block s="doSetVar"><l>transparency</l><block s="reportListItem"><l>2</l><block var="value"/></block></block><block s="doSetVar"><l>value</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>number</option></l></block><l></l><block s="reportVariadicSum"><list><l>10</l><block s="reportDifference"><block s="reportUnicode"><l></l></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>a</l></list></block><block s="reportUnicode"><l>A</l></block><block s="reportUnicode"><l>a</l></block></block></block></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block var="value"/></block><l><option>letter</option></l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="doSetVar"><l>value</l><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="value"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><l></l><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><l></l><l>15</l></list></block></list></block></autolambda><list></list></block><block var="value"/></block><l><option>number</option></l></block><script><custom-block s="error %txt"><l>Badly formed hex color.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>8</l></list></block><script><custom-block s="error %txt"><l>More than eight hex digits.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>6</l></list></block><script><block s="doSetVar"><l>transparency</l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>7</l><block var="value"/></block></list></block><block s="reportListItem"><l>8</l><block var="value"/></block></list></block><l>100</l></list></block><l>255</l></block></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>6</l></block><block var="value"/></block></block></script><list></list></block><block s="doRepeat"><block s="reportDifference"><l>6</l><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block></block><script><block s="doSetVar"><l>value</l><block s="reportCONS"><l>0</l><block var="value"/></block></block></script></block><block s="doReport"><custom-block s="✐ include transparency %l %s"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>1</l><block var="value"/></block></list></block><block s="reportListItem"><l>2</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>3</l><block var="value"/></block></list></block><block s="reportListItem"><l>4</l><block var="value"/></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>16</l><block s="reportListItem"><l>5</l><block var="value"/></block></list></block><block s="reportListItem"><l>6</l><block var="value"/></block></list></block></list></block><block var="transparency"/></custom-block></block></script></block-definition><block-definition s="✐ set pen to lightness %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><custom-block s="✐ update HSL"></custom-block><block s="doIf"><block var="✐ fair?"/><script><block s="doSetVar"><l>✐ HSL</l><block var="✐ raw HSL"/></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>3</l><block var="✐ HSL"/><block var="value"/></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSL"/><block var="value"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more value"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to color %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%l"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>r</l><l>g</l><l>b</l><l>a</l></list><l>this.setColor(new Color(r, g, b, a/255));</l></block><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="value"/></block></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen size to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setSize"><block var="value"/></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen transparency to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setPenColorDimension"><l><option>transparency</option></l><block var="value"/></block></script></block-definition><block-definition s="✐ set pen red to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>old rgb</l></list></block><block s="doSetVar"><l>old rgb</l><custom-block s="RGB color"></custom-block></block><custom-block s="set pen color to r: %n g: %n b: %n"><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>255</l></custom-block><block s="reportListItem"><l>2</l><block var="old rgb"/></block><block s="reportListItem"><l>3</l><block var="old rgb"/></block></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen green to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>old rgb</l></list></block><block s="doSetVar"><l>old rgb</l><custom-block s="RGB color"></custom-block></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>255</l></custom-block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="old rgb"/></block><block var="value"/><block s="reportListItem"><l>3</l><block var="old rgb"/></block></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen blue to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>old rgb</l></list></block><block s="doSetVar"><l>old rgb</l><custom-block s="RGB color"></custom-block></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>255</l></custom-block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="old rgb"/></block><block s="reportListItem"><l>2</l><block var="old rgb"/></block><block var="value"/></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ constrain %&apos;value&apos; %&apos;low&apos; %&apos;high&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="value"/><block var="low"/></list></block><script><block s="doReport"><block var="low"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="value"/><block var="high"/></list></block><script><block s="doReport"><block var="high"/></block></script><list></list></block><block s="doReport"><block s="reportVariadicSum"><list><block var="value"/><l>0</l></list></block></block></script></block-definition><block-definition s="✐ set pen to RGB vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportCONS"><block var="value"/><block var="more"/></block></block><block s="doSetVar"><l>more</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>4</l><block var="value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportDifference"><l>100</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>4</l><block var="value"/></block><l>100</l></list></block><l>255</l></block></block></block></script><list></list></block><block s="doSetVar"><l>value</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="✐ constrain %s %s %s"><l></l><l>0</l><l>255</l></custom-block></autolambda><list></list></block><block var="value"/></block></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="value"/></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>RGB</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="✐ set pen to HSL saturation %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><custom-block s="✐ update HSL"></custom-block><block s="doIf"><block var="✐ fair?"/><script><block s="doSetVar"><l>✐ HSL</l><block var="✐ raw HSL"/></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>2</l><block var="✐ HSL"/><block var="value"/></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSL"/><block var="value"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more value"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to HSL vector %&apos;value&apos; %&apos;more value&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more value"/></block><block s="reportListItem"><l>2</l><block var="more value"/></block></list></block></block><block s="doSetVar"><l>more value</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more value"/></block></list></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doSetVar"><l>✐ HSL</l><block s="reportCONS"><block s="reportModulus"><block s="reportListItem"><l>1</l><block var="value"/></block><l>100</l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="✐ constrain %s %s %s"><l></l><l>0</l><l>100</l></custom-block></autolambda><list></list></block><block s="reportCDR"><block var="value"/></block></block></block></block><block s="doSetVar"><l>✐ raw HSL</l><block var="✐ HSL"/></block><custom-block s="✐ update HSV"></custom-block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more value"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more value"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen saturation (HSV) to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setPenColorDimension"><l><option>saturation</option></l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSV"/><block s="getPenAttribute"><l><option>saturation</option></l></block></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen value (brightness) to %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="setPenColorDimension"><l><option>brightness</option></l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSV"/><block s="getPenAttribute"><l><option>brightness</option></l></block></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to HSV vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more"/></block><block s="reportListItem"><l>2</l><block var="more"/></block></list></block></block><block s="doSetVar"><l>more value</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more"/></block></list></block></block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>✐ raw HSV</l><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="value"/></block></block><block s="doRun"><block s="reifyScript"><script><custom-block s="set pen color to h: %n s: %n v: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reportQuotient"><block var="✐ raw HSV"/><l>100</l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to hue %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>HSL</l><l>HSV</l></list></block><block var="✐ last set as"/></block></block><script><block s="doSetVar"><l>✐ raw HSV</l><block s="reportNewList"><list><l>0</l><l>100</l><l>100</l></list></block></block></script><list></list></block><block s="setPenColorDimension"><l><option>hue</option></l><block s="reportModulus"><block var="value"/><l>100</l></block></block><block s="doIf"><block var="✐ fair?"><comment w="118" collapsed="true">if USED TO BE fair</comment></block><script><custom-block s="set pen color to h: %n s: %n v: %n"><block s="reportQuotient"><block s="reportModulus"><block var="value"/><l>100</l></block><l>100</l></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block><l>100</l></block><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block><l>100</l></block></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><custom-block s="✐ update HSL"></custom-block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block></script><script><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block></script></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block><custom-block s="✐ make integer RGB"></custom-block></script></block-definition><block-definition s="✐ set pen to fair saturation (HSL) %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>newHSV</l><l>index</l><l>scale</l><l>oldHSV</l></list></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block></block><script><custom-block s="✐ update HSL"></custom-block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>2</l><block var="✐ HSL"/><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="✐ HSL"/></block><block s="reportListItem"><l>2</l><block var="✐ raw HSL"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSL"/><block var="value"/></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ update HSV"></custom-block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to fair lightness %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>color</l><l>newHSV</l><l>index</l><l>scale</l><l>oldHSV</l></list></block><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block></block><script><custom-block s="✐ update HSL"></custom-block></script><list></list></block><block s="doSetVar"><l>✐ last set as</l><l>HSL</l></block><block s="doReplaceInList"><l>3</l><block var="✐ HSL"/><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="✐ HSL"/></block><block s="reportListItem"><l>3</l><block var="✐ raw HSL"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSL"/><block var="value"/></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ update HSV"></custom-block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to fair HSL vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more"/></block><block s="reportListItem"><l>2</l><block var="more"/></block></list></block></block><block s="doSetVar"><l>more</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more"/></block></list></block></block></script><list></list></block><custom-block s="✐ set pen to fair saturation (HSL) %s %l"><block s="reportListItem"><l>2</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair lightness %s %l"><block s="reportListItem"><l>3</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair hue %s %l"><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="✐ set pen to fair saturation (HSV) %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="setPenColorDimension"><l><option>saturation</option></l><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="getPenAttribute"><l><option>saturation</option></l></block><block s="reportListItem"><l>2</l><block var="✐ raw HSV"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>2</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to fair value (brightness) %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>value</l><custom-block s="✐ constrain %s %s %s"><block var="value"/><l>0</l><l>100</l></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="✐ last set as"/><l>HSL</l></list></block><script><custom-block s="✐ update HSV"></custom-block></script><list></list></block><block s="setPenColorDimension"><l><option>brightness</option></l><block s="reportIfElse"><block var="✐ fair?"/><block s="reportVariadicProduct"><list><block var="value"/><block s="reportQuotient"><block s="getPenAttribute"><l><option>brightness</option></l></block><block s="reportListItem"><l>3</l><block var="✐ raw HSV"/></block></block></list></block><block var="value"/></block></block><block s="doReplaceInList"><l>3</l><block var="✐ raw HSV"/><block var="value"/></block><block s="doSetVar"><l>✐ last set as</l><l>HSV</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="✐ make integer RGB"></custom-block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="✐ set pen to fair HSV vector %&apos;value&apos; %&apos;more&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>number</option></l></block><script><block s="doSetVar"><l>value</l><block s="reportNewList"><list><block var="value"/><block s="reportListItem"><l>1</l><block var="more"/></block><block s="reportListItem"><l>2</l><block var="more"/></block></list></block></block><block s="doSetVar"><l>more</l><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="more"/></block></list></block></block></script><list></list></block><custom-block s="✐ set pen to fair saturation (HSV) %s %l"><block s="reportListItem"><l>2</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair value (brightness) %s %l"><block s="reportListItem"><l>3</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><custom-block s="✐ set pen to fair hue %s %l"><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportNewList"><list></list></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>4</l><block var="value"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="more"/></block><l><option>number</option></l></block><script><block s="setPenColorDimension"><l><option>transparency</option></l><block s="reportListItem"><l>1</l><block var="more"/></block></block></script><list></list></block></script></block-definition><block-definition s="typewrite %&apos;text&apos; size %&apos;size&apos; wait %&apos;wait&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%mlt">Hello!</input><input type="%s">12</input><input type="%n">0.05<options>0.01–Gliding/Very Fast=0.01&#xD;0.05–Typewrite=0.05&#xD;0.1–Normal Writing/Slow Typewriting=0.1&#xD;0.5–Slow=0.5&#xD;1.01–Very Slow</options></input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="size"/><l>0</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><script><block s="doRun"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block><list></list></block><comment w="90" collapsed="false">error script</comment></block></script><list></list></block><block s="doDeclareVariables"><list><l>x</l><l>p</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>p</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block><custom-block s="%upvar for each %upvar of %l %upvar %ca"><l>#</l><l>item</l><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block><l>list</l><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="item"/><block s="reportUnicodeAsLetter"><l>10</l><comment w="90" collapsed="false">unicode 10 is newline character</comment></block></list></block><script><block s="doDeclareVariables"><list><l>Pen down?</l></list></block><block s="doSetVar"><l>Pen down?</l><block s="getPenDown"></block></block><block s="up"></block><block s="changeYPosition"><block s="reportDifference"><l>0</l><block var="size"/></block></block><block s="setXPosition"><block var="x"/></block><block s="doIf"><block var="Pen down?"/><script><block s="down"></block></script><list></list></block></script><script><block s="write"><block var="item"/><block var="size"/></block><block s="doWait"><block var="wait"/><comment w="90" collapsed="false">put the loop ( ↑↑↑ ) around this block to delete multiline wait       </comment></block></script></block></script></custom-block><block s="doDeclareVariables"><list><l>Pen down?</l></list></block><block s="doSetVar"><l>Pen down?</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><block var="p"/></block><block s="doIf"><block var="Pen down?"/><script><block s="down"></block></script><list></list></block></script><scripts><script x="340" y="401.6666666666652"><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="#"/><l>1</l></list></block><block var="list"/></block><block s="reportUnicodeAsLetter"><l>10</l></block></list></block><script></script><list></list></block></script></scripts></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;list&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%upvar"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>list</l><block var="data"/></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><script><block s="doSetVar"><l>#</l><block var="i"/></block><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="write %&apos;text&apos; to clipboard" type="command" category="Program"><comment x="0" y="0" w="222.99999999999997" collapsed="false">Writes X to the clipboard</comment><header></header><code></code><translations>el:εγγραφή του _ στο πρόχειρο&#xD;de:schreibe _ in die Zwischenablage&#xD;</translations><inputs><input type="%mlt">copy/paste</input></inputs><script><block s="doWarp"><script><block s="doRun"><block s="reportJSFunction"><list><l>txt</l></list><l> navigator.clipboard.writeText(txt);</l></block><list><block var="text"/></list></block></script></block></script></block-definition><block-definition s="create a new %&apos;cat&apos; %&apos;type&apos; block $nl with spec %&apos;spec&apos; params %&apos;parms&apos; $nl defaults %&apos;defaults&apos; types %&apos;types&apos; $nl options %&apos;options&apos; readonly? %&apos;readonly?&apos; $nl $- definition %&apos;definition&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">motion<options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;control&#xD;sensing&#xD;operators&#xD;variables</options></input><input type="%s" readonly="true">command<options>command&#xD;reporter&#xD;predicate</options></input><input type="%s"></input><input type="%mult%s"></input><input type="%mult%s"></input><input type="%mult%s"></input><input type="%mult%mlt"></input><input type="%mult%b"></input><input type="%cmdRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>cat</l><l>spc</l><l>def</l><l>dfl</l><l>tps</l><l>ops</l><l>rdy</l><l>prm</l><l>typ</l></list><l>dfl = dfl.itemsArray();&#xD;tps = tps.itemsArray();&#xD;ops = ops.itemsArray();&#xD;rdy = rdy.itemsArray();&#xD;prm = prm.itemsArray();&#xD;let gbs = world.children[0].stage.globalBlocks;&#xD;let tmp = gbs.find(e =&gt; e.spec===spc);&#xD;if (tmp) return;&#xD;let dfn = new CustomBlockDefinition();&#xD;dfn.spec = spc;&#xD;dfn.type = typ;&#xD;dfn.isGlobal = true;&#xD;dfn.category = cat;&#xD;dfl.forEach((e, f) =&gt; {&#xD; dfn.declarations.set(prm[f], [tps[f], dfl[f], ops[f], rdy[f]]);&#xD;}); // Params, spec, defaults, readonly, options, and types MUST match up!&#xD;dfn.body = def;&#xD;gbs.push(dfn);&#xD;world.children[0].switchToDevMode();&#xD;world.children[0].switchToUserMode();&#xD;world.children = [world.children[0]];&#xD;world.rerender();</l></block><list><block var="cat"/><block var="spec"/><block var="definition"/><block var="defaults"/><block var="types"/><block var="options"/><block var="readonly?"/><block var="parms"/><block var="type"/></list></block></script></block-definition><block-definition s="get custom block from %&apos;spec&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>blockSpec</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    block = stage.globalBlocks.find(&#xD;e=&gt;e.spec===blockSpec);&#xD;if(!block)return false;&#xD;return new Context(null, block.type==="command"?new&#xD;                   CustomCommandBlockMorph(block)&#xD;                   :new CustomReporterBlockMorph&#xD;                   (block,block.type==="predicate"));</l></block><list><block var="spec"/></list></block></block></script></block-definition><block-definition s="delete custom block %&apos;spec&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>spc</l></list><l>let gbs = world.children[0].stage.globalBlocks,&#xD;    spcs = gbs.map(e=&gt;e.spec);&#xD;if (!(spcs.includes(spc))) return;&#xD;gbs.splice(spcs.indexOf(spc));&#xD;world.children[0].switchToDevMode();&#xD;world.children[0].switchToUserMode();&#xD;world.children=[world.children[0]];&#xD;world.rerender();</l></block><list><block var="spec"/></list></block></script></block-definition><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; $(2)-0.00000001" type="command" category="Database"><header></header><code></code><translations>ca:desa clau: _ amb valor: _ al navegador&#xD;</translations><inputs><input type="%s"></input><input type="%b"></input></inputs><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><custom-block s="bool %s %s"><block var="value"/><l>BT</l></custom-block></list></block></script><scripts><comment x="340.41816406249995" y="20" w="204" collapsed="false">The data base vars are extremely important for moving variables and other values from scene to scene.&#xD;&#xD;The key acts like the name of the variable.&#xD;Original blocks are from the library under database. All database vars are stored in the browser not cloud.</comment></scripts></block-definition><block-definition s="value from key: %&apos;key&apos; $.-0.000000000001" type="predicate" category="Database"><comment x="0" y="0" w="204" collapsed="false">The data base vars are extremely important for moving variables and other values from scene to scene.&#xD;&#xD;The key acts like the name of the variable. Reports the database var with the key name. Reports false if key is not found.&#xD;Original blocks are from the library under database. All database vars are stored in the browser not cloud.</comment><header></header><code></code><translations>ca:obté valor de clau: _ al navegador&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="bool %s %s"><block s="reportApplyExtension"><l>db_get(key)</l><list><block var="key"/></list></block><l>TB</l></custom-block></block></script></block-definition><block-definition s="%&apos;A&apos; /1\ %&apos;b&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="reportQuotient"><block var="A"/><block var="b"/></block><block s="reportQuotient"><block var="b"/><block var="A"/></block></list></block></block></script></block-definition><block-definition s="%&apos;A&apos; &lt;-/-&gt; %&apos;b&apos;" type="reporter" category="Operators2"><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="reportQuotient"><block var="A"/><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicMax"><list><block var="b"/><block var="A"/></list></block><block s="reportVariadicMin"><list><block var="b"/><block var="A"/></list></block></block><l>2</l></block></block><block s="reportQuotient"><block var="b"/><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicMax"><list><block var="b"/><block var="A"/></list></block><block s="reportVariadicMin"><list><block var="b"/><block var="A"/></list></block></block><l>2</l></block></block></list></block></block></script></block-definition><block-definition s="%&apos;A&apos; -/- %&apos;b&apos;" type="reporter" category="Operators2"><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="reportQuotient"><block var="b"/><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block var="A"/><block var="b"/></block><l>2</l></block><block var="b"/></list></block></block><block s="reportQuotient"><block var="A"/><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block var="A"/><block var="b"/></block><l>2</l></block><block var="b"/></list></block></block></list></block></block></script></block-definition><block-definition s="$π#-1.2-0-0-0" type="reporter" category="Ωω♾"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><custom-block s="repeat %n %cs"><custom-block s="/ %s /"><custom-block s="mid of %n &amp; %n"><custom-block s="$ω-1.08-0-0-0"></custom-block><custom-block s="$Ω-1.06-0-0-0"></custom-block></custom-block></custom-block><script><block s="doChangeVar"><l>a</l><l>1</l></block></script><variables><variable name="a"><l>0</l></variable><variable name="Ω"><l>0</l></variable></variables></custom-block><block s="doReport"><custom-block s="%n digits of PI"><block var="a"/></custom-block></block></script></block-definition><block-definition s="do in parallel %&apos;actions&apos; and wait" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs.  Launches a separate thread for each of them, so they are done in parallel, then waits for them all to complete.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed.  Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo e espera&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>threads</l></list></block><block s="doSetVar"><l>threads</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>is running?</l></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doRun"><block var="each script"/><list></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list></list></block><block s="doReport"><block s="reifyScript"><script><block s="doReport"><block var="is running?"/></block></script><list></list></block></block></script><list></list></block><list></list></block></autolambda><list><l>each script</l></list></block><block var="actions"/></block></block><block s="doWaitUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="test"/><list></list></block></autolambda><list><l>test</l></list></block><block var="threads"/></block></block></block></script></block-definition><block-definition s="do in parallel %&apos;actions&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs.  Launches a separate thread for each of them, so they are done in parallel, then continues with the current script while they all run.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed.  Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="actions"/></block><l>0</l></list></block><script><block s="fork"><block s="reportListItem"><l>1</l><block var="actions"/></block><list></list></block><custom-block s="do in parallel %mult%cs"><block s="reportCDR"><block var="actions"/></block></custom-block></script><list></list></block></script></block-definition><block-definition s="mid of %&apos;a&apos; &amp; %&apos;b&apos;" type="reporter" category="Operators2"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block var="a"/><block var="b"/></block><l>2</l></block><block var="b"/></list></block></block></script></block-definition><block-definition s="/ %&apos;in&apos; /" type="reporter" category="Ωω♾"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="$Ω-1.06-0-0-0"></custom-block></block></script></block-definition><block-definition s="forever %&apos;run&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%ca"></input></inputs><script><block s="doForever"><script><block s="doRun"><block var="run"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; times %&apos;repeats&apos; %&apos;run&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%ca"></input></inputs><script><block s="doFor"><l>i</l><l>1</l><block var="num"/><script><block s="doSetVar"><l>repeats</l><block var="i"/></block><block s="doRun"><block var="run"/><list></list></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="repeat until %&apos;true&apos; %&apos;repeats&apos; %&apos;run&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="34083">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%upvar"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>a</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="true"/><list></list></block><script><block s="doChangeVar"><l>a</l><l>1</l></block><block s="doSetVar"><l>repeats</l><block var="a"/></block><block s="doRun"><block var="run"/><list></list></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="wait %&apos;time&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doWait"><block var="time"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="$Wait-1.35-255-0-0 %&apos;time&apos; %&apos;how long in frames it’s been&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>how long in frames it’s been</l><l>0</l></block><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportVariadicProduct"><list><block var="time"/><l>60</l></list></block><block var="how long in frames it’s been"/></list></block><script><block s="doChangeVar"><l>how long in frames it’s been</l><l>1</l></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="frames %&apos;in&apos; to seconds %&apos;options&apos;" type="reporter" category="JBit operators"><variables><list struct="atomic" id="34145">a,b,c</list></variables><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s" readonly="true"><options>using 60 fps=1&#xD;using current fps=2</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="options"/><l>1</l></list></block><script><block s="doReport"><block s="reportQuotient"><block var="in"/><l>60</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="options"/><l>2</l></list></block><script><block s="doReport"><block s="reportQuotient"><block var="in"/><custom-block s="FPS"></custom-block></block></block></script><list></list></block></script><scripts><script x="66.9951171875" y="554.0000000000005"><block s="reportQuotient"><block var="in"/><l></l></block></script><script x="212" y="324.2"><block s="doSetVar"><l>TestingVar</l><l>0</l></block></script><script x="74" y="216.00000000000006"><block s="doIf"><block s="reportVariadicEquals"><list><block var="options"/><l>3</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>b</l><custom-block s="FPS"></custom-block></block><block s="doRepeat"><block var="b"/><script><block s="doAddToList"><block s="reportRound"><block s="reportJoinWords"><list><custom-block s="FPS"></custom-block></list></block></block><block var="a"/></block></script></block><block s="doWarp"><script><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block><script><block s="doSetVar"><l>c</l><block s="reportVariadicSum"><list><block var="c"/><block s="reportListItem"><l>1</l><block var="a"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="a"/></block></script></block></script></block><block s="doReport"><block s="reportQuotient"><block var="c"/><block var="b"/></block></block></script><list></list></block></script></scripts></block-definition><block-definition s="run %&apos;r&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doRun"><block var="r"/><list></list></block><block s="doReport"><block var="r"/></block></script></block-definition><block-definition s="launch %&apos;r&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="fork"><block var="r"/><list></list></block><block s="doReport"><block var="r"/></block></script></block-definition><block-definition s="call %&apos;r&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="r"/><list></list></block></block></script></block-definition><block-definition s="%&apos;nane&apos; %&apos;r&apos; %&apos;stuff&apos;" type="reporter" category="JBit operators"><comment x="0" y="0" w="90" collapsed="false">Works like the ‘tell ??? to ???’ and the ‘ask ??? for ???’ blocks.</comment><variables><list struct="atomic" id="34275">a,b</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s" readonly="true"><options>give&#xD;do ={&#xD;do&#xD;wait for completion=do and wait for completion&#xD;}</options></input><input type="%repRing"></input></inputs><script><block s="doIf"><custom-block s="%s = %s"><block var="r"/><l>give</l></custom-block><script><block s="doReport"><block s="reportAskFor"><block var="nane"/><block var="stuff"/><list></list></block></block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><block var="r"/><l>do</l></custom-block><script><block s="doTellTo"><block var="nane"/><block var="stuff"/><list></list></block><block s="doReport"><block var="stuff"/></block></script><list></list></block><block s="doIf"><custom-block s="%s = %s"><block var="r"/><l>do and wait for completion</l></custom-block><script><block s="doRun"><block s="reifyScript"><script><block s="doTellTo"><block var="nane"/><block var="stuff"/><list></list></block></script><list></list></block><list></list></block><block s="doReport"><block var="stuff"/></block></script><list></list></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="doIfElse"><block s="reportVariadicEquals"><list><block var="scope"/><l>script</l></list></block><script><block s="doForEach"><l>each item</l><block var="names"/><script><block s="doRun"><block s="reportJSFunction"><list><l>varName</l><l>proc</l></list><l>if ((typeof varName) != "string" || varName === "") {&#xD;    throw new Error("name isn&apos;t a string: " + varName);&#xD;}&#xD;if (!proc.homeContext.variables.vars[varName]) proc.homeContext.variables.addVar(varName);</l></block><list><block var="each item"/></list></block></script></block></script><script><block s="doDeclareVariables"><list><l>global</l></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="scope"/><l>sprite</l></list></block><script><block s="doSetVar"><l>global</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>global</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doForEach"><l>each item</l><block var="names"/><script><block s="doRun"><block s="reportJSFunction"><list><l>varName</l><l>global</l><l>proc</l></list><l>if ((typeof varName) != "string" || varName === "") {&#xD;    throw new Error("name isn&apos;t a string: " + varName);&#xD;}&#xD;if (global &amp;&amp; !proc.homeContext.variables.parentFrame.parentFrame.vars[varName]) this.addVariable(varName, true);&#xD;if (!global &amp;&amp; !proc.homeContext.variables.parentFrame.vars[varName]) this.addVariable(varName, false);</l></block><list><block var="each item"/><block var="global"/></list></block></script></block><block s="doRun"><block s="reportJSFunction"><list></list><l>var ide = this.parentThatIsA(IDE_Morph);&#xD;ide.flushBlocksCache(&apos;variables&apos;); // b/c of inheritance&#xD;ide.refreshPalette();</l></block><list></list></block></script></block></script></block-definition><block-definition s="a new clone of myself" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="newClone"><l><option>myself</option></l></block></block></script></block-definition><block-definition s="delete this clone" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doReport"><custom-block s="%b"><l><bool>true</bool></l></custom-block></block></script></block-definition><block-definition s="switch to scene %&apos;fff&apos; and broadcast %&apos;ccc&apos;" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s"><options>§_messagesMenu</options></input></inputs><script><block s="doSwitchToScene"><block var="fff"/><list><block var="ccc"/></list></block></script></block-definition><block-definition s="$pointRight %&apos;h&apos; $pause" type="reporter" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doIfElse"><block var="h"/><script><block s="doPauseAll"></block><block s="doReport"><block var="h"/></block></script><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doRun"><block s="reportJSFunction"><list></list><l>world.children[0].stage.threads.processes.forEach(&#xD;function (proc) {&#xD;proc.isPaused = false;&#xD;})</l></block><list></list></block></script><list></list></block><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="touching %&apos;g&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportTouchingObject"><block var="g"/></block></block></script></block-definition><block-definition s="touching %&apos;newcolor&apos;" type="predicate" category="JBit operators"><header></header><code></code><translations></translations><inputs><input type="%clr"></input></inputs><script><block s="doReport"><custom-block s="touching color %n ?"><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block s="reportTextSplit"><custom-block s="substring of %txt before %txt"><custom-block s="substring of %txt after %txt"><block var="newcolor"/><l>(</l></custom-block><l>)</l></custom-block><l><option>csv</option></l></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l><l>255</l></list></block></list></block></list></block></custom-block></block></script></block-definition><block-definition s="Fffcdd" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="gffg" readonly="true">fdfd<options>gffggf&#xD;Fxshbv&#xD;cfhjv</options></input></inputs><script><block s="forward"><l>10</l></block></script></block-definition><block-definition s="fcdd" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="gffg" readonly="true">fdfd<options>gffggf&#xD;Fxshbv&#xD;cfhjv</options></input></inputs><script><block s="forward"><l>10</l></block></script></block-definition><block-definition s="Initialize $gearBig-2-255-0-0" type="command" category="Other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block></script></block-definition><block-definition s="INFO &quot;My own blocks&quot;" type="command" category="0. My own blocks"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><l>INFO about "My own blocks"</l><l>This category is the right place to keep your own newly developed blocks.&#xD;(For teachers: this makes the correction of student projects much easier, because their results are not scattered over the other categories). </l></custom-block></script></block-definition><block-definition s="create a %&apos;what&apos; ( of %&apos;sprite&apos; ) $nl with name %&apos;spriteName&apos;" type="reporter" category="control"><comment x="0" y="0" w="87" collapsed="false">Creates a new sprite, a duplicate, or a permanent clone.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">duplicate<options>permanent Clone =permanentClone&#xD;duplicate&#xD;new sprite=newSprite</options></input><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input><input type="%txt">spriteName</input></inputs><script><block s="doDeclareVariables"><list><l>existingSprites</l><l>newSprite</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite required!</l><l>create sprite/...</l></custom-block></script><list></list></block><block s="doSetVar"><l>what</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><custom-block s="trim %txt by %mult%txt"><block var="what"/><list><l> </l></list></custom-block><l> </l></block></block></block><block s="doSetVar"><l>existingSprites</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doApplyExtension"><l>SciS_createObject(operation,sprite,spriteName)</l><list><block var="what"/><block var="target"/><block var="spriteName"/></list></block><block s="doForEach"><l>item</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="existingSprites"/><block var="item"/></block></block><script><block s="doSetVar"><l>newSprite</l><block var="item"/></block></script><list></list></block></script></block><block s="doIf"><block s="reportIsA"><block var="newSprite"/><l><option>sprite</option></l></block><script><custom-block s="change SpriteName of %s to %txt"><block var="newSprite"/><block var="spriteName"/></custom-block><custom-block s="select sprite %s"><block var="target"/></custom-block><block s="doReport"><block var="newSprite"/></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>something wrong!</l><l>create new sprite of sprite</l></custom-block></script></block></script></block-definition><block-definition s="import Sprite" type="command" category="control"><comment x="0" y="0" w="163.78016826923104" collapsed="false">Imports a stored sprite from a file selected with filepicker.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>ready</l><l>b</l></list></block><block s="doSetVar"><l>ready</l><block s="reportApplyExtension"><l>SciS_importSprite(params)</l><list><block s="reportNewList"><list><l>1</l></list></block></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="ready"/><list></list></block></block></block><block s="doApplyExtension"><l>SciS_importSprite(params)</l><list><block s="reportNewList"><list><l>2</l><block s="reportListItem"><l>2</l><block s="evaluate"><block var="ready"/><list></list></block></block></list></block></list></block></script></block-definition><block-definition s="is JavaScript enabled?" type="predicate" category="sensing"><comment x="0" y="0" w="238.3035156249999" collapsed="false">Returns &quot;true&quot; if JavaScript is enabled, else &quot;false&quot;.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return &apos;ok&apos;;</l></block><list></list></block></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><l>error</l><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></custom-block></script></block-definition><block-definition s="is key %&apos;n&apos; pressed?" type="predicate" category="sensing"><comment x="0" y="0" w="135.4999999999999" collapsed="false">Returns &quot;true&quot; if the key no. n is pressed, else &quot;false&quot;.</comment><header></header><code></code><translations></translations><inputs><input type="%n">27</input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="n"/><block s="reportApplyExtension"><l>SciS_currentKeyPressed()</l><list></list></block></list></block></block></script></block-definition><block-definition s="datetime" type="reporter" category="sensing" space="true"><comment x="0" y="0" w="117.53846153846155" collapsed="false">Reports date and time in standard notation.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>month</l><l>hour</l><l>minute</l><l>second</l><l>day</l><l>f</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>month</l><block s="reportDate"><l><option>month</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="month"/><l>10</l></list></block><script><block s="doSetVar"><l>month</l><block s="reportJoinWords"><list><l>0</l><block var="month"/></list></block></block></script><list></list></block><block s="doSetVar"><l>day</l><block s="reportDate"><l><option>date</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="day"/><l>10</l></list></block><script><block s="doSetVar"><l>day</l><block s="reportJoinWords"><list><l>0</l><block var="day"/></list></block></block></script><list></list></block><block s="doSetVar"><l>hour</l><block s="reportDate"><l><option>hour</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hour"/><l>10</l></list></block><script><block s="doSetVar"><l>hour</l><block s="reportJoinWords"><list><l>0</l><block var="hour"/></list></block></block></script><list></list></block><block s="doSetVar"><l>minute</l><block s="reportDate"><l><option>minute</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="minute"/><l>10</l></list></block><script><block s="doSetVar"><l>minute</l><block s="reportJoinWords"><list><l>0</l><block var="minute"/></list></block></block></script><list></list></block><block s="doSetVar"><l>second</l><block s="reportDate"><l><option>second</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="second"/><l>10</l></list></block><script><block s="doSetVar"><l>second</l><block s="reportJoinWords"><list><l>0</l><block var="second"/></list></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportDate"><l><option>year</option></l></block><l>-</l><block var="month"/><l>-</l><block var="day"/><l>T</l><block var="hour"/><l>:</l><block var="minute"/><l>:</l><block var="second"/></list></block></block></script></block></script></block-definition><block-definition s="datetime: %&apos;dt&apos; $arrowRight %&apos;time&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="97.6923076923077" collapsed="false">Reports the selected part of the datetime.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt" readonly="true">seconds today<options>Julian Date&#xD;decimal years&#xD;days this year&#xD;hours this year&#xD;minutes this year&#xD;seconds this year&#xD;hours today&#xD;minutes today&#xD;seconds today</options></input></inputs><script><block s="doDeclareVariables"><list><l>h</l><l>m</l><l>s</l><l>hms</l><l>separator</l><l>YYYY</l><l>MM</l><l>DD</l><l>YMD</l><l>monthdays</l><l>days</l><l>JD</l><l>jm</l><l>jy</l><l>i</l><l>p</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>monthdays</l><block s="reportNewList"><list><l>31</l><l>28</l><l>31</l><l>30</l><l>31</l><l>30</l><l>31</l><l>31</l><l>30</l><l>31</l><l>30</l><l>31</l></list></block></block><block s="doSetVar"><l>separator</l><custom-block s="index of %txt in %txt"><l>T</l><block var="dt"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="separator"/><l>0</l></list></block><script><block s="doSetVar"><l>separator</l><custom-block s="index of %txt in %txt"><l> </l><block var="dt"/></custom-block></block></script><list></list></block><block s="doSetVar"><l>YYYY</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><l>1</l><block s="reportDifference"><block var="separator"/><l>7</l></block></custom-block></block><block s="doSetVar"><l>MM</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportDifference"><block var="separator"/><l>5</l></block><block s="reportDifference"><block var="separator"/><l>4</l></block></custom-block></block><block s="doSetVar"><l>DD</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportDifference"><block var="separator"/><l>2</l></block><block s="reportDifference"><block var="separator"/><l>1</l></block></custom-block></block><block s="doSetVar"><l>h</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportVariadicSum"><list><block var="separator"/><l>1</l></list></block><block s="reportVariadicSum"><list><block var="separator"/><l>2</l></list></block></custom-block></block><block s="doSetVar"><l>m</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportVariadicSum"><list><block var="separator"/><l>4</l></list></block><block s="reportVariadicSum"><list><block var="separator"/><l>5</l></list></block></custom-block></block><block s="doSetVar"><l>s</l><custom-block s="substring of %txt from %n to %n"><block var="dt"/><block s="reportVariadicSum"><list><block var="separator"/><l>7</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="dt"/></block></custom-block></block><block s="doSetVar"><l>days</l><block var="DD"/></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block var="MM"/><l>1</l></block></list></block><script><block s="doChangeVar"><l>days</l><block s="reportListItem"><block var="i"/><block var="monthdays"/></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="YYYY"/><l>4</l></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block var="MM"/><l>2</l></list></block></list></block><script><block s="doChangeVar"><l>days</l><l>1</l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>Julian Date</l></list></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="YYYY"/><l>0</l></list></block><script><block s="doChangeVar"><l>YYYY</l><l>1</l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="MM"/><l>2</l></list></block><script><block s="doSetVar"><l>jy</l><block var="YYYY"/></block><block s="doSetVar"><l>jm</l><block s="reportVariadicSum"><list><block var="MM"/><l>1</l></list></block></block></script><script><block s="doSetVar"><l>jy</l><block s="reportDifference"><block var="YYYY"/><l>1</l></block></block><block s="doSetVar"><l>jm</l><block s="reportVariadicSum"><list><block var="MM"/><l>13</l></list></block></block></script></block><block s="doSetVar"><l>JD</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>365.25</l><block var="jy"/></list></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>30.6001</l><block var="jm"/></list></block></block></list></block><block s="reportVariadicSum"><list><block var="DD"/><l>1720995</l></list></block></list></block></block><block s="doIf"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportVariadicSum"><list><block var="DD"/><block s="reportVariadicProduct"><list><l>31</l><block s="reportVariadicSum"><list><block var="MM"/><block s="reportVariadicProduct"><list><l>12</l><block var="YYYY"/></list></block></list></block></list></block></list></block><block s="reportVariadicSum"><list><l>15</l><block s="reportVariadicProduct"><list><l>31</l><block s="reportVariadicSum"><list><l>10</l><block s="reportVariadicProduct"><list><l>12</l><l>1582</l></list></block></list></block></list></block></list></block></list></block><script><block s="doChangeVar"><l>JD</l><block s="reportVariadicSum"><list><block s="reportDifference"><l>2</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>0.01</l><block var="jy"/></list></block></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>0.01</l><l>0.25</l></list></block><block var="jy"/></list></block></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicSum"><list><block var="JD"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportDifference"><block var="h"/><l>12</l></block><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>decimal years</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="YYYY"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="days"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block><l>365.252199</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>days this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="days"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>hours this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>24</l><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>minutes this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>24</l><l>60</l></list></block><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>60</l></list></block><block var="m"/></list></block><block s="reportQuotient"><block var="s"/><l>60</l></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>seconds this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>24</l><l>3600</l></list></block><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>3600</l></list></block><block s="reportVariadicProduct"><list><block var="m"/><l>60</l></list></block></list></block><block var="s"/></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>hours today</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>minutes today</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>60</l></list></block><block var="m"/></list></block><block s="reportQuotient"><block var="s"/><l>60</l></block></list></block></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>3600</l></list></block><block s="reportVariadicProduct"><list><block var="m"/><l>60</l></list></block></list></block><block var="s"/></list></block></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="input dialog on %&apos;sprite&apos; with title %&apos;title&apos; $nl and items %&apos;items&apos;" type="reporter" category="sensing" space="true"><comment x="0" y="0" w="140.83333333333334" collapsed="false">Input dialog for a list of items. Click item by mouse and then ok. Returns the selected item.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input><input type="%txt">title</input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>result</l><l>height</l><l>width</l><l>clickpoint</l><l>ok</l><l>x</l><l>y</l><l>costume</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite required!</l><l>input dialog on ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>costume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>height</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListAttribute"><l><option>length</option></l><block var="items"/></block><l>25</l></list></block><l>70</l></list></block></block><block s="doSetVar"><l>width</l><block s="reportTextAttribute"><l><option>length</option></l><block var="title"/></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="items"/></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="items"/></block></block><block var="width"/></list></block><script><block s="doSetVar"><l>width</l><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="items"/></block></block></block></script><list></list></block></script></block><block s="doSetVar"><l>width</l><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicSum"><list><block var="width"/><block s="reportTextAttribute"><l><option>length</option></l><l> (click on it)</l></block></list></block></list></block></block><block s="doSetVar"><l>costume</l><block s="reportGet"><l><option>costume</option></l></block></block><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %mult%s fill color: %mult%s on %txt"><l>continuous</l><l>1</l><list><l>black</l></list><list><l>lightGray</l></list><block var="target"/></custom-block><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><block s="reportJoinWords"><list><block var="title"/><l> (click on it)</l></list></block><list><l>10</l><l>20</l></list><l>18</l><l><bool>true</bool></l><block var="target"/><l><bool>false</bool></l></custom-block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="items"/></block><script><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><block s="reportJoinWords"><list><block var="i"/><l>: </l><block s="reportListItem"><block var="i"/><block var="items"/></block></list></block><list><l>15</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="i"/><l>25</l></list></block><l>30</l></list></block></list><l>18</l><l><bool>true</bool></l><block var="target"/><l><bool>false</bool></l></custom-block></script></block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>draw</l><list><l>25</l><block s="reportDifference"><block var="height"/><l>30</l></block></list><list><l>50</l><block s="reportDifference"><block var="height"/><l>5</l></block></list><block var="target"/><l><bool>false</bool></l></custom-block><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><block var="result"/><list><l>28</l><block s="reportDifference"><block var="height"/><l>12</l></block></list><l>18</l><l><bool>true</bool></l><block var="target"/><l><bool>false</bool></l></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>draw</l><list><l>70</l><block s="reportDifference"><block var="height"/><l>30</l></block></list><list><l>100</l><block s="reportDifference"><block var="height"/><l>5</l></block></list><block var="target"/><l><bool>false</bool></l></custom-block><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><l>ok</l><list><l>75</l><block s="reportDifference"><block var="height"/><l>12</l></block></list><l>18</l><l><bool>true</bool></l><block var="target"/><l><bool>false</bool></l></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>false</bool></l></custom-block></script><list></list></block><list></list></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block var="ok"/><script><block s="show"></block><block s="doIf"><block s="reportMouseDown"></block><script><block s="doWaitUntil"><block s="reportNot"><block s="reportMouseDown"></block></block></block><block s="doWarp"><script><block s="doSetVar"><l>clickpoint</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>costumeCoordinates</l><block var="target"/><l><bool>false</bool></l></custom-block></block><block s="doSetVar"><l>x</l><block s="reportListItem"><l>1</l><block var="clickpoint"/></block></block><block s="doSetVar"><l>y</l><block s="reportListItem"><l>2</l><block var="clickpoint"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="x"/><l>15</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block s="reportVariadicSum"><list><block var="width"/><l>35</l></list></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="y"/><l>38</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="y"/><block s="reportDifference"><block var="height"/><l>35</l></block></list></block></list></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block s="reportDifference"><block var="y"/><l>38</l></block><l>25</l></block></block><l>1</l></list></block></block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><l>27</l><block s="reportDifference"><block var="height"/><l>28</l></block></list><list><l>48</l><block s="reportDifference"><block var="height"/><l>7</l></block></list><block var="target"/><l><bool>false</bool></l></custom-block><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><block var="result"/><list><l>28</l><block s="reportDifference"><block var="height"/><l>12</l></block></list><l>18</l><l><bool>true</bool></l><block var="target"/><l><bool>false</bool></l></custom-block><block s="show"></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="x"/><l>70</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><l>100</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="y"/><block s="reportDifference"><block var="height"/><l>30</l></block></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block s="reportDifference"><block var="height"/><l>5</l></block></list></block></list></block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>true</bool></l></custom-block></script><list></list></block><list></list></block><block s="doSwitchToCostume"><block var="costume"/></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="result"/><l>0</l></list></block><script><block s="doReport"><block s="reportListItem"><block var="result"/><block var="items"/></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of bounds!</l><l>input dialog on ...</l></custom-block></script></block></script><list></list></block></script></block></script><list></list></block></script></block></script></block-definition><block-definition s="%&apos;choice&apos; %&apos;name&apos; of %&apos;table&apos; $arrowRightOutline number" type="reporter" category="other"><comment x="0" y="0" w="272.1666666666668" collapsed="false">Reports the row or column number of the row or column with the name entered, or reports an error message. If the the name is a number You can mark this with a  # (e.g. #123).</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">column<options>column&#xD;row</options></input><input type="%s">name</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>firstLine</l><l>data</l><l>i</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>data</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>data</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>row/column ... of ... --&gt; number</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table is empty!</l><l>row/column ... of ... --&gt; number</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table is empty!</l><l>row/column ... of ... --&gt; number</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>column</l></list></block><script><block s="doSetVar"><l>firstLine</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doIf"><block s="reportIsA"><block var="name"/><l><option>number</option></l></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="name"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="name"/><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></list></block></list></block><script><block s="doReport"><block var="name"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>row/column ... of ... --&gt; number</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>first</l></list></block><script><block s="doReport"><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>last</l></list></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="name"/></block><l>#</l></list></block><script><block s="doSetVar"><l>name</l><custom-block s="substring of %txt from %n to %n"><block var="name"/><l>2</l><block s="reportTextAttribute"><l><option>length</option></l><block var="name"/></block></custom-block></block></script><list></list></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></list></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><block var="firstLine"/></block><block var="name"/></list></block><script><block s="doSetVar"><l>n</l><block var="i"/></block></script><list></list></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="name"/></block><l>1</l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportUnicode"><block var="name"/></block><block s="reportUnicode"><l>A</l></block></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportUnicode"><block var="name"/></block><block s="reportUnicode"><l>Z</l></block></list></block></list></block></list></block><script><block s="doSetVar"><l>n</l><block s="reportDifference"><block s="reportUnicode"><block var="name"/></block><l>64</l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="firstLine"/></block></list></block><script><block s="doSetVar"><l>n</l><l>0</l></block></script><list></list></block></script><list></list></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><block var="n"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: name not found!</l><l>row/column ... of ... --&gt; number</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>row</l></list></block><script><block s="doIf"><block s="reportIsA"><block var="name"/><l><option>number</option></l></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="name"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="name"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block></list></block><script><block s="doReport"><block var="name"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>row/column ... of ... --&gt; number</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>first</l></list></block><script><block s="doReport"><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>last</l></list></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="name"/></block><l>#</l></list></block><script><block s="doSetVar"><l>name</l><custom-block s="substring of %txt from %n to %n"><block var="name"/><l>2</l><block s="reportTextAttribute"><l><option>length</option></l><block var="name"/></block></custom-block></block></script><list></list></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="name"/></list></block><script><block s="doSetVar"><l>n</l><block var="i"/></block></script><list></list></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><block var="n"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: name not found!</l><l>row/column ... of ... --&gt; number</l></custom-block></script></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: something wrong!</l><l>row/column ... of ... --&gt; number</l></custom-block></script></block></script></block-definition><block-definition s="%&apos;choice&apos; %&apos;n&apos; of %&apos;table&apos; $arrowRightOutline name" type="reporter" category="3. Data tools"><comment x="0" y="0" w="141.1904761904761" collapsed="false">Reports the row or column name of the row or column with the number entered, or reports an error message.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">column<options>column&#xD;row</options></input><input type="%n">1</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>firstLine</l><l>data</l><l>c</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>data</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>data</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>table</l></custom-block></block><script><block s="doReport"><l>ERROR: only tables supported!</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="doReport"><l>ERROR: table is empty!</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>column</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></list></block></list></block><l>ERROR: index out of range!</l><block s="reportListItem"><block var="n"/><block s="reportListItem"><l>1</l><block var="data"/></block></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>row</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block></list></block><l>ERROR: index out of range!</l><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="n"/><block var="data"/></block></block></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="evaluate predicate %&apos;predicate&apos; with %&apos;param&apos;" type="predicate" category="2. Math tools"><comment x="0" y="0" w="118.33333333333329" collapsed="false">Evaluates the predicate with a given parameter.</comment><header></header><code></code><translations></translations><inputs><input type="%s">ringified predicate</input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="predicate"/><l><option>predicate</option></l></block><script><block s="doReport"><block s="evaluate"><block var="predicate"/><list><block var="param"/></list></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block-definition><block-definition s="evaluate intervals %&apos;intervals&apos; with %&apos;x&apos;" type="predicate" category="2. Math tools"><comment x="0" y="0" w="118.65384615384613" collapsed="false">Evaluates the intervals with a given parameter.</comment><header></header><code></code><translations></translations><inputs><input type="%l">ringified predicate</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block></block><block s="reportNot"><custom-block s="is %s a %txt"><block var="intervals"/><l>listOfIntervals</l></custom-block></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doForEach"><l>interval</l><block var="intervals"/><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval"/></block><l>&lt;</l></list></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="interval"/></block><block var="x"/></list></block><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><script><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="interval"/></block><block var="x"/></list></block><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval"/></block><l>&lt;</l></list></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="x"/><block s="reportListItem"><l>4</l><block var="interval"/></block></list></block><script><block s="doIf"><block var="result"/><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script><script><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block s="reportListItem"><l>4</l><block var="interval"/></block></list></block><script><block s="doIf"><block var="result"/><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="%&apos;a&apos; %&apos;assertion&apos; %&apos;b&apos; ?" type="predicate" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%b">false</input><input type="%s" readonly="true">implies --&gt;<options>implies --&gt;&#xD;is equivalent to &lt;--&gt;</options></input><input type="%b">true</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="assertion"/><l>implies --&gt;</l></list></block><script><block s="doReport"><block s="reportVariadicOr"><list><block s="reportNot"><block var="a"/></block><block var="b"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="assertion"/><l>is equivalent to &lt;--&gt;</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block></block></script><list></list></block><block s="doReport"><l>ERROR: something went wrong!</l></block></script></block-definition><block-definition s="merge intervals %&apos;theIntervals&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="322.5" collapsed="false">Intervals should be of structure [leftLimit,operator1,operator2,rightLimit]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>n</l><l>m</l><l>interval1</l><l>interval2</l><l>merged?</l><l>leftMarker</l><l>rightMarker</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="theIntervals"/><l>listOfIntervals</l></custom-block></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="theIntervals"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="theIntervals"/></block></script><script><block s="doReport"><l>ERROR: intervals necessary!</l></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="theIntervals"/></block><l>2</l></list></block><script><block s="doReport"><block var="theIntervals"/></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="theIntervals"/></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block></list></block><script><block s="doSetVar"><l>interval1</l><block s="reportListItem"><block var="n"/><block var="result"/></block><comment w="105.83333333333333" collapsed="false">compare the nth interval with the rest</comment></block><block s="doSetVar"><l>merged?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>m</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="m"/><block var="n"/></list></block><script><block s="doChangeVar"><l>m</l><l>1</l></block></script><script><block s="doSetVar"><l>interval2</l><block s="reportListItem"><block var="m"/><block var="result"/></block></block><block s="doIfElse"><custom-block s="are intervals %l and %l overlapping?"><block var="interval1"/><block var="interval2"/></custom-block><script><block s="doSetVar"><l>leftMarker</l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block></list></block><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>2</l><block var="interval2"/></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>&lt;</l></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>2</l><block var="interval2"/></block></list></block></block></block></block><comment w="90" collapsed="false">determine new limits</comment></block><block s="doSetVar"><l>rightMarker</l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>3</l><block var="interval2"/></block></list></block><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>3</l><block var="interval1"/></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>&lt;</l></list></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>3</l><block var="interval2"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>3</l><block var="interval1"/></block></list></block></block></block></block></block><block s="doSetVar"><l>merged?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReplaceInList"><block var="n"/><block var="result"/><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="leftMarker"/></block><block s="reportListItem"><l>2</l><block var="leftMarker"/></block><block s="reportListItem"><l>2</l><block var="rightMarker"/></block><block s="reportListItem"><l>1</l><block var="rightMarker"/></block></list></block><comment w="90" collapsed="false">replace two intervals by the new one</comment></block><block s="doDeleteFromList"><block var="m"/><block var="result"/></block></script><script><block s="doChangeVar"><l>m</l><l>1</l></block></script></block></script></block></script></block><block s="doIf"><block s="reportNot"><block var="merged?"/></block><script><block s="doChangeVar"><l>n</l><l>1</l></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="are intervals %&apos;interval1&apos; and %&apos;interval2&apos; overlapping?" type="predicate" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><custom-block s="is %s a %txt"><block var="interval1"/><l>interval</l></custom-block><custom-block s="is %s a %txt"><block var="interval2"/><l>interval</l></custom-block></list></block></block><script><block s="doReport"><l>ERROR: intervals required!</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>1</l><block var="interval1"/></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>1</l><block var="interval1"/></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>1</l><block var="interval1"/></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval2"/></block><l>&lt;</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>≤</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval2"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>&lt;</l></list></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval2"/></block><l>&lt;</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>&lt;</l></list></block></list></block></list></block></list></block></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>4</l><block var="interval2"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="interval2"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval2"/></block><l>&lt;</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>≤</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval2"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>&lt;</l></list></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval2"/></block><l>&lt;</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>&lt;</l></list></block></list></block></list></block></list></block></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="predicate tree %&apos;tree&apos; $arrowRightThin list of intervals" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><block s="reportListItem"><l>1</l><block var="tree"/></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="tree"/></block><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="tree"/></block><l><option>list</option></l></block><script><block s="doReplaceInList"><l>3</l><block var="tree"/><block s="evaluate"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>3</l><block var="tree"/></block></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="trim %txt by %mult%txt"><block var="value"/><list><l>[</l><l>]</l></list></custom-block></autolambda><list><l>value</l></list></block><block s="reportCDR"><block s="reportListItem"><l>3</l><block var="tree"/></block></block></block></block></block></script><list></list></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l></l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="tree"/></block><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="tree"/></block><l><option>list</option></l></block><script><block s="doReplaceInList"><l>2</l><block var="tree"/><block s="evaluate"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="trim %txt by %mult%txt"><block var="value"/><list><l>[</l><l>]</l></list></custom-block></autolambda><list><l>value</l></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></block></block></block></script><list></list></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l></l></list></block></list></block><script><block s="doReport"><l>ERROR: senseless predicate</l></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>&lt;</l><l>&lt;</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l>&lt;</l><l>&lt;</l><l>Infinity</l></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>&lt;</l><l>&lt;</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l>&lt;</l><l>&lt;</l><l>Infinity</l></list></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l>≤</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l>≤</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l>≤</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l>≤</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l>&lt;</l><block s="reportListItem"><l>3</l><block var="tree"/></block></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l>&lt;</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="tree"/></block><l></l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>3</l><block var="tree"/></block><l>&lt;</l><l>≤</l><l>Infinity</l></list></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>-Infinity</l><l>≤</l><l>&lt;</l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="intersect interval lists %l and %l"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>2</l><block var="tree"/></block></custom-block><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>3</l><block var="tree"/></block></custom-block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="merge interval lists %l and %l"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>2</l><block var="tree"/></block></custom-block><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>3</l><block var="tree"/></block></custom-block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></list></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block><block s="reportNewList"><list><l>not</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block></list></block></list></block></custom-block></block></script><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="intersect interval lists %&apos;intervals1&apos; and %&apos;intervals2&apos;" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>m</l><l>n</l><l>interval</l><l>e</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><custom-block s="is %s a %txt"><block var="intervals1"/><l>listOfIntervals</l></custom-block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block><l>0</l></list></block></list></block><block s="reportVariadicOr"><list><custom-block s="is %s a %txt"><block var="intervals2"/><l>listOfIntervals</l></custom-block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block><l>0</l></list></block></list></block></list></block></block><script><block s="doReport"><l>ERROR: interval lists required!</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block><l>1</l></list></block><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block><l>1</l></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block></list></block><script><block s="doSetVar"><l>m</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block></list></block><script><block s="doSetVar"><l>interval</l><custom-block s="intersect intervals %l %l"><block s="reportListItem"><block var="n"/><block var="intervals1"/></block><block s="reportListItem"><block var="m"/><block var="intervals2"/></block></custom-block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="interval"/></block><l>0</l></list></block><script><block s="doAddToList"><block var="interval"/><block var="result"/></block></script><list></list></block><block s="doChangeVar"><l>m</l><l>1</l></block></script></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doReport"><custom-block s="merge intervals %l"><block var="result"/></custom-block></block></script></block></script></block-definition><block-definition s="merge interval lists %&apos;intervals1&apos; and %&apos;intervals2&apos;" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>n</l><l>c</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><custom-block s="is %s a %txt"><block var="intervals1"/><l>listOfIntervals</l></custom-block><custom-block s="is %s a %txt"><block var="intervals2"/><l>listOfIntervals</l></custom-block></list></block></block><script><block s="doReport"><l>ERROR: interval lists required!</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block><l>1</l></list></block><script><block s="doReport"><block var="intervals2"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block><l>1</l></list></block><script><block s="doReport"><block var="intervals1"/></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="intervals1"/></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block></list></block><script><block s="doAddToList"><block s="reportListItem"><block var="n"/><block var="intervals2"/></block><block var="result"/></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doReport"><custom-block s="merge intervals %l"><block var="result"/></custom-block></block></script></block></script></block-definition><block-definition s="intersect intervals %&apos;interval1&apos; %&apos;interval2&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="322.5" collapsed="false">Intervals should be of structure [leftLimit,operator1,operator2,rightLimit]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>leftEdge</l><l>rightEdge</l><l>op1</l><l>op2</l><l>e</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><custom-block s="is %s a %txt"><block var="interval1"/><l>interval</l></custom-block><custom-block s="is %s a %txt"><block var="interval2"/><l>interval</l></custom-block></list></block></block><script><block s="doReport"><l>ERROR: intervals required!</l></block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="are intervals %l and %l overlapping?"><block var="interval1"/><block var="interval2"/></custom-block></block><script><block s="doReport"><block s="reportNewList"><list></list></block><comment w="90" collapsed="false">an empty interval</comment></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></list></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><block s="doSetVar"><l>op1</l><block s="reportListItem"><l>2</l><block var="interval2"/></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="interval2"/></block></list></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>1</l><block var="interval2"/></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>&lt;</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval2"/></block><l>&lt;</l></list></block></list></block><script><block s="doSetVar"><l>op1</l><l>&lt;</l></block></script><script><block s="doSetVar"><l>op1</l><l>≤</l></block></script></block></script><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>1</l><block var="interval1"/></block></block><block s="doSetVar"><l>op1</l><block s="reportListItem"><l>2</l><block var="interval1"/></block></block></script></block></script><comment w="82.00716145833326" collapsed="false">define left edge and operator</comment></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></list></block><script><block s="doSetVar"><l>rightEdge</l><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><block s="doSetVar"><l>op2</l><block s="reportListItem"><l>3</l><block var="interval1"/></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval2"/></block></list></block><script><block s="doSetVar"><l>rightEdge</l><block s="reportListItem"><l>4</l><block var="interval1"/></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>&lt;</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval2"/></block><l>&lt;</l></list></block></list></block><script><block s="doSetVar"><l>op2</l><l>&lt;</l></block></script><script><block s="doSetVar"><l>op2</l><l>≤</l></block></script></block></script><script><block s="doSetVar"><l>rightEdge</l><block s="reportListItem"><l>4</l><block var="interval2"/></block></block><block s="doSetVar"><l>op2</l><block s="reportListItem"><l>3</l><block var="interval2"/></block></block></script></block></script><comment w="82.00716145833326" collapsed="false">define right edge and operator</comment></block><block s="doReport"><block s="reportNewList"><list><block var="leftEdge"/><block var="op1"/><block var="op2"/><block var="rightEdge"/></list></block></block></script></block></script></block-definition><block-definition s="is interval %&apos;interval&apos; subinterval of interval list %&apos;intervals&apos; ?" type="predicate" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>isSubinterval</l><l>b</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="interval"/><l>interval</l></custom-block></block><script><block s="doReport"><l>ERROR: interval required!</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intervals"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="intervals"/><l>listOfIntervals</l></custom-block></block><script><block s="doReport"><l>ERROR: interval list required!</l></block></script><list></list></block><block s="doForEach"><l>item</l><custom-block s="merge intervals %l"><block var="intervals"/></custom-block><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="intersect intervals %l %l"><block var="interval"/><block var="item"/></custom-block><block var="interval"/></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="elements of %&apos;elements&apos; not covered by predicate %&apos;predicate&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="269" collapsed="false">Returns all elements of a list not covered by the predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>coveredElements</l><l>b</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>coveredElements</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="evaluate predicate %s with %s"><block var="predicate"/><block var="element"/></custom-block></autolambda><list><l>element</l></list></block><block var="elements"/></block></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="coveredElements"/><l></l></block></block></autolambda><list></list></block><block var="elements"/></block></block></script></block></script></block-definition><block-definition s="cleaned up set %&apos;set&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="224.6666666666666" collapsed="false">Returns a set only with elements in item 3 not covered by the intervals or the predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><block s="doReport"><l>ERROR: parameter is not a set!</l></block></script><list></list></block><block s="doSetVar"><l>result</l><custom-block s="copy of %s"><block var="set"/></custom-block></block><block s="doReplaceInList"><l>3</l><block var="result"/><custom-block s="%s without duplicates"><custom-block s="elements %l not covered by intervals %l"><block s="reportListItem"><l>3</l><block var="result"/></block><block s="reportListItem"><l>4</l><block var="result"/></block></custom-block></custom-block></block><block s="doReplaceInList"><l>3</l><block var="result"/><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><custom-block s="%s without duplicates"><custom-block s="elements %l not covered by predicate %s"><block s="reportListItem"><l>3</l><block var="result"/></block><block s="reportListItem"><l>5</l><block var="result"/></block></custom-block></custom-block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>5</l><block var="result"/></block><l></l></list></block><script><block s="doReplaceInList"><l>4</l><block var="result"/><custom-block s="intervals %l not covered by predicate %s"><block s="reportListItem"><l>4</l><block var="result"/></block><block s="reportListItem"><l>5</l><block var="result"/></block></custom-block></block></script><list></list></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="result"/></block></block></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block><l><option>number</option></l></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block><l>≤</l><l>≤</l><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block></list></block><block s="reportListItem"><l>4</l><block var="result"/></block></block><block s="doDeleteFromList"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block></script><script><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doReplaceInList"><l>2</l><block var="result"/><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="result"/></block></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>5</l><block var="result"/></block><l></l></list></block></list></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="elements %&apos;elements&apos; not covered by intervals %&apos;intervals&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="269" collapsed="false">Returns all elements of a list not covered by the intervals.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>coveredElements</l><l>b</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>coveredElements</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="evaluate intervals %l with %s"><block var="intervals"/><block var="element"/></custom-block></autolambda><list><l>element</l></list></block><block var="elements"/></block></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="coveredElements"/><l></l></block></block></autolambda><list></list></block><block var="elements"/></block></block></script></block></script></block-definition><block-definition s="elements %&apos;elements&apos; not covered by predicate %&apos;predicate&apos;" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>coveredElements</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>coveredElements</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="predicate"/><list><block var="element"/></list></block></autolambda><list><l>element</l></list></block><block var="elements"/></block></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListContainsItem"><block var="coveredElements"/><l></l></block></block></autolambda><list></list></block><block var="elements"/></block></block></script></block></script></block-definition><block-definition s="intervals %&apos;intervals&apos; not covered by predicate %&apos;predicate&apos;" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="interval"/></block><block s="reportListItem"><l>4</l><block var="interval"/></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval"/></block><l>≤</l></list></block><block s="reportVariadicNotEquals"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportListItem"><l>1</l><block var="interval"/></block></block><l>Infinity</l></list></block><block s="evaluate"><block var="predicate"/><list><block s="reportListItem"><l>1</l><block var="interval"/></block></list></block></list></block></block></autolambda><list><l>interval</l></list></block><block var="intervals"/></block></block></script></block-definition><block-definition s="is predicate tree %&apos;predicateTree&apos; translateable to intervals?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="110.153846153846" collapsed="false">Test wether the predicate is translatable to a list of intervals.</comment><header></header><code></code><translations></translations><inputs><input type="%l">ringified predicate</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="predicateTree"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><l>comparisonOperator</l></custom-block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></list></block><script><block s="doReport"><custom-block s="is predicate tree %l translateable to intervals?"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="predicateTree"/></block><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block></list></block></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><custom-block s="is predicate tree %l translateable to intervals?"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></custom-block><custom-block s="is predicate tree %l translateable to intervals?"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block></custom-block></list></block></block></script><list></list></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block><l><option>text</option></l></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="predicateTree"/></block><l></l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></block><l>[</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></block><l>]</l></list></block></list></block></list></block><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block><l><option>number</option></l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="predicateTree"/></block></block><l>0</l></list></block><script><block s="doIf"><block s="reportIsA"><block s="evaluate"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>3</l><block var="predicateTree"/></block></block><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>0</l></list></block><script><block s="doReport"><custom-block s="substring of %txt from %n to %n"><block var="value"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>1</l></block></custom-block></block></script><list></list></block><block s="doReport"><block var="value"/></block></script><list><l>value</l></list></block><block s="reportCDR"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block></block></block></block><l><option>number</option></l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script><list></list></block></script><list></list></block></script><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="predicateTree"/></block><l><option>text</option></l></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="predicateTree"/></block><l></l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><l>3</l><block var="predicateTree"/></block></block><l>[</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><l><option>last</option></l><block s="reportListItem"><l>3</l><block var="predicateTree"/></block></block><l></l></list></block></list></block></list></block><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block><l><option>number</option></l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></block><l>0</l></list></block><script><block s="doIf"><block s="reportIsA"><block s="evaluate"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></block><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>0</l></list></block><script><block s="doReport"><custom-block s="substring of %txt from %n to %n"><block var="value"/><l>2</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="value"/></block><l>1</l></block></custom-block></block></script><list></list></block><block s="doReport"><block var="value"/></block></script><list><l>value</l></list></block><block s="reportCDR"><block s="reportListItem"><l>2</l><block var="predicateTree"/></block></block></block></block><l><option>number</option></l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script><list></list></block></script><list></list></block></script><list></list></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="difference of interval %&apos;interval1&apos; and %&apos;interval2&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="322.5" collapsed="false">Intervals should be of structure [leftLimit,operator1,operator2,rightLimit]</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>leftEdge</l><l>rightEdge</l><l>op1</l><l>op2</l><l>intersection</l><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><custom-block s="is %s a %txt"><block var="interval1"/><l>interval</l></custom-block><custom-block s="is %s a %txt"><block var="interval2"/><l>interval</l></custom-block></list></block></block><script><block s="doReport"><l>ERROR: intervals required!</l></block></script><list></list></block><block s="doSetVar"><l>interval1</l><custom-block s="copy of %s"><block var="interval1"/></custom-block></block><block s="doSetVar"><l>interval2</l><custom-block s="copy of %s"><block var="interval2"/></custom-block></block><block s="doSetVar"><l>intersection</l><custom-block s="intersect intervals %l %l"><block var="interval1"/><block var="interval2"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="intersection"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="interval1"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="interval1"/><block var="intersection"/></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>1</l><block var="intersection"/></block></list></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="intersection"/></block><l>&lt;</l></list></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="intersection"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>1</l><block var="intersection"/></block></list></block><block var="result"/></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>4</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="intersection"/></block><l>≤</l></list></block><script><block s="doSetVar"><l>op1</l><l>&lt;</l></block></script><script><block s="doSetVar"><l>op1</l><l>≤</l></block></script></block><block s="doAddToList"><block s="reportNewList"><list><block var="leftEdge"/><block var="op1"/><block s="reportListItem"><l>3</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block var="result"/></block></script><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="intersection"/></block><l>&lt;</l></list></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="intersection"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></list></block><block var="result"/></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="intersection"/></block><l>&lt;</l></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>≤</l><block s="reportListItem"><l>1</l><block var="intersection"/></block></list></block><block var="result"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>&lt;</l><block s="reportListItem"><l>1</l><block var="intersection"/></block></list></block><block var="result"/></block></script></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>4</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><script><block s="doSetVar"><l>leftEdge</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="intersection"/></block><l>≤</l></list></block><script><block s="doSetVar"><l>op1</l><l>&lt;</l></block></script><script><block s="doSetVar"><l>op1</l><l>≤</l></block></script></block><block s="doAddToList"><block s="reportNewList"><list><block var="leftEdge"/><block var="op1"/><block s="reportListItem"><l>3</l><block var="interval1"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block var="result"/></block></script><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval1"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="intersection"/></block><l>&lt;</l></list></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>4</l><block var="intersection"/></block><l>≤</l><l>≤</l><block s="reportListItem"><l>4</l><block var="intersection"/></block></list></block><block var="result"/></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="intersection"/></block><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="interval1"/></block><block s="reportListItem"><l>2</l><block var="interval1"/></block><l>&lt;</l><block s="reportListItem"><l>4</l><block var="interval1"/></block></list></block><block var="result"/></block></script><list></list></block><block s="doReplaceInList"><l>4</l><block var="result"/><custom-block s="merge intervals %l"><block s="reportListItem"><l>4</l><block var="result"/></block></custom-block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="list of numbers %&apos;numbers&apos; $arrowRightOutline list of intervals" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="numbers"/><script><block s="doAddToList"><block s="reportNewList"><list><block var="item"/><l>≤</l><l>≤</l><block var="item"/></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="difference of interval lists %&apos;intervals1&apos; and %&apos;intervals2&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="120" collapsed="false">determines intervals1 \ intervals2</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>m</l><l>n</l><l>interval2</l><l>interval1</l><l>difference</l><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><custom-block s="is %s a %txt"><block var="intervals1"/><l>listOfIntervals</l></custom-block><custom-block s="is %s a %txt"><block var="intervals2"/><l>listOfIntervals</l></custom-block></list></block></block><script><block s="doReport"><l>ERROR: two interval lists required!</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="intervals1"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="intervals2"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="intervals1"/></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>m</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals2"/></block></list></block><script><block s="doSetVar"><l>interval2</l><block s="reportListItem"><block var="m"/><block var="intervals2"/></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals1"/></block></list></block><script><block s="doSetVar"><l>interval1</l><block s="reportListItem"><block var="n"/><block var="intervals1"/></block></block><block s="doSetVar"><l>difference</l><custom-block s="difference of interval %l and %l"><block var="interval1"/><block var="interval2"/></custom-block></block><block s="doForEach"><l>interval</l><block var="difference"/><script><block s="doAddToList"><block var="interval"/><block var="result"/></block></script></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doChangeVar"><l>m</l><l>1</l></block></script></block><block s="doReport"><custom-block s="merge intervals %l"><block var="result"/></custom-block></block></script></block></script><scripts><script x="202.33333333333334" y="486.8888888888889"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><custom-block s="intersect intervals %l %l"><block var="interval1"/><block var="interval2"/></custom-block></block><l>0</l></list></block></script></scripts></block-definition><block-definition s="numbers in interval list %&apos;intervals&apos;" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="intervals"/><l>listOfIntervals</l></custom-block></block><script><block s="doReport"><l>ERROR: interval list required!</l></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>interval</l><block var="intervals"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="interval"/></block><block s="reportListItem"><l>4</l><block var="interval"/></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval"/></block><l>≤</l></list></block></list></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="interval"/></block><block var="result"/></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="interval list %&apos;intervals&apos; $arrowRightThin predicate" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>predicate</l><l>i</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="intervals"/><l>listOfIntervals</l></custom-block></block><script><block s="doReport"><l>ERROR: interval list required!</l></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>interval</l><block var="intervals"/><script><block s="doAddToList"><custom-block s="interval %l $arrowRightThin predicate"><block var="interval"/></custom-block><block var="result"/></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>0</l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>1</l></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="result"/></block></block></script><list></list></block><block s="doSetVar"><l>predicate</l><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><block s="reportListItem"><l>1</l><block var="result"/></block><block s="reportListItem"><l>2</l><block var="result"/></block></list></block></block><block s="doSetVar"><l>i</l><l>3</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block></list></block><script><block s="doSetVar"><l>predicate</l><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><block var="predicate"/><block s="reportListItem"><block var="i"/><block var="result"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="predicate"/></block></script></block></script></block-definition><block-definition s="interval %&apos;interval&apos; $arrowRightThin predicate" type="predicate" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>p1</l><l>p2</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="interval"/><l>interval</l></custom-block></block><script><block s="doReport"><l>ERROR: interval required!</l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="interval"/></block><l>&lt;</l></list></block><script><block s="doSetVar"><l>p1</l><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportListItem"><l>1</l><block var="interval"/></block></list></block></block></script><script><block s="doSetVar"><l>p1</l><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reportListItem"><l>1</l><block var="interval"/></block></list></block></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="interval"/></block><l>&lt;</l></list></block><script><block s="doSetVar"><l>p2</l><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l></l><block s="reportListItem"><l>4</l><block var="interval"/></block></list></block></block></script><script><block s="doSetVar"><l>p2</l><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l></l><block s="reportListItem"><l>4</l><block var="interval"/></block></list></block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><block var="p1"/><block var="p2"/></list></block></block></script></block></script></block-definition><block-definition s="extract numbers from interval list %&apos;intervals&apos;" type="reporter" category="2. Math tools"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="intervals"/><l>listOfIntervals</l></custom-block></block><script><block s="doReport"><l>ERROR: interval list required!</l></block></script><list></list></block><block s="doSetVar"><l>intervals</l><custom-block s="copy of %s"><block var="intervals"/></custom-block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="intervals"/></block></list></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="intervals"/></block></block><block s="reportListItem"><l>4</l><block s="reportListItem"><block var="i"/><block var="intervals"/></block></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="intervals"/></block></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block s="reportListItem"><block var="i"/><block var="intervals"/></block></block><l>≤</l></list></block></list></block><script><block s="doDeleteFromList"><block var="i"/><block var="intervals"/></block></script><script><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doReport"><block var="intervals"/></block></script></block></script></block-definition><block-definition s="INFO &quot;Math tools&quot;" type="command" category="2. Math tools"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "Math tools"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks from different mathematical fields.&#xD;From linear algebra there are vectors and matrices that can be created in different ways. The properties of vectors, e.g. minimum, variance or standard deviation, can be determined directly.&#xD;With scalars, vectors, and matrices all arithmetic operations can be performed. With the help of matrices, mappings are realized or systems of equations are solved.&#xD;Complex numbers in Cartesian (cnC) or polar form (cnP) can also be calculated.&#xD;Vectors and complex numbers as well as figures defined by vectors are displayed on a MathPad in two or three dimensions. The MathPad can also show numerical sets.&#xD;From numerical mathematics come blocks for determining the roots of a function, series and series elements, and derivatives. Finite series and integrals are also calculated.&#xD;For frequency analyses, a block for the Fast Fourier Transformation (FFT) as well as its inverse serves. In addition, the frequency spectrum can be output.&#xD;For statistical purposes, blocks of the usual distribution functions are available.&#xD;Sets can be defined by an enumeration of elements, intervals or predicates. After that, blocks are available for all set operations.&#xD;If possible, sets are converted into interval lists. If this does not succeed, then the subset and the equality predicate are not determined in some cases.&#xD;There are some more hidden blocks for dealing with sets, e.g. to merge interval lists, to determine their intersection, to turn predicates into intervals, and so on.&#xD;You can find them in the list "export blocks" from the file menu.</l></custom-block></custom-block></script></block-definition><block-definition s="show global message title: %&apos;title&apos; $nl message: %&apos;message&apos;" type="command" category="looks"><comment x="0" y="0" w="171.99999999999997" collapsed="false">Shows the message with headline in the middle of the window.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">headline</input><input type="%txt">theMessage</input></inputs><script><block s="doWarp"><script><block s="doApplyExtension"><l>SciS_showmessage(title,message)</l><list><block var="title"/><block var="message"/></list></block></script></block></script></block-definition><block-definition s="vector %&apos;items&apos;" type="reporter" category="2. Math tools" space="true"><comment x="0" y="0" w="161.38461538461547" collapsed="false">Reports a vector, built by the items.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="items"/><l>row-vector</l></custom-block><script><block s="doReport"><block var="items"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only numbers are allowed in vectors!</l><l>vector ...</l></custom-block></script></block></script></block-definition><block-definition s="random vector dim %&apos;n&apos; $nl range %&apos;min&apos; to %&apos;max&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="98.65934065934077" collapsed="false">Returns a new vector of dimension n with random elements.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRandom"><block var="min"/><block var="max"/></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></block></block></script></block-definition><block-definition s="matrix of vectors %&apos;vectors&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="114.67948717948764" collapsed="false">Returns a matrix formed from the input vectors.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>length</l><l>transposed?</l><l>transposed2?</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="vectors"/></block><l>1</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no vectors found!</l><l>matrix of vectors</l></custom-block></script><list></list></block><block s="doSetVar"><l>length</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="vectors"/></block></block></block><block s="doSetVar"><l>transposed?</l><custom-block s="is %s a %txt"><block s="reportListItem"><l>1</l><block var="vectors"/></block><l>column-vector</l></custom-block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>vector</l><block var="vectors"/><script><block s="doSetVar"><l>transposed2?</l><custom-block s="is %s a %txt"><block var="vector"/><l>column-vector</l></custom-block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block var="transposed?"/><block s="reportNot"><block var="transposed2?"/></block></list></block><block s="reportVariadicAnd"><list><block s="reportNot"><block var="transposed?"/></block><block var="transposed2?"/></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: mixed row and clumn vectors are not allowed!</l><l>matrix of vectors</l></custom-block></script><script><block s="doIf"><block var="transposed2?"/><script><block s="doSetVar"><l>vector</l><custom-block s="transpose %s"><block var="vector"/></custom-block></block></script><list></list></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="vector"/></block><block var="length"/></list></block><script><block s="doAddToList"><block var="vector"/><block var="result"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: different types of vectors!</l><l>matrix of vectors</l></custom-block></script></block></script></block><block s="doIf"><block var="transposed?"/><script><block s="doSetVar"><l>result</l><custom-block s="transpose %s"><block var="result"/></custom-block></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="random %&apos;n&apos; x %&apos;m&apos; matrix $nl range %&apos;min&apos; to %&apos;max&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="129.76299579326923" collapsed="false">Returns a new nxm-matrix with random elements.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%n">2</input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="m"/><l>1</l></list></block></list></block><script><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doFor"><l>i</l><l>1</l><block var="m"/><script><block s="doAddToList"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportRandom"><block var="min"/><block var="max"/></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="transpose %&apos;data&apos;" type="reporter" category="2. Math tools" space="true"><comment x="0" y="0" w="114.83909545553388" collapsed="false">Creates the transpose of a vector, matrix, or table.</comment><header></header><code></code><translations></translations><inputs><input type="%s">vector or matrix</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: vector or matrix required!</l><l>transpose vector or matrix</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="doReport"><block var="data"/></block></script><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>SciS_transpose(data)</l><list><block var="data"/></list></block></block><block s="doIf"><block s="reportIsA"><block var="result"/><l><option>text</option></l></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><block var="result"/><l>transpose vector or matrix</l></custom-block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block></script></block></script></block-definition><block-definition s="%&apos;choice&apos; of %&apos;data&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="211.42857142857147" collapsed="false">Determines a property of a matrix or vector.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">min<options>min&#xD;max&#xD;minpos&#xD;maxpos&#xD;number&#xD;sum&#xD;mean&#xD;median&#xD;variance&#xD;standard-deviation&#xD;softmax</options></input><input type="%s">matrix or vector</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>mean</l><l>sum</l><l>isVector</l><l>dim</l><l>posX</l><l>posY</l><l>pos</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only lists supported!</l><l>... of matrix or vector</l></custom-block></script><list></list></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIfElse"><custom-block s="is %s a %txt"><block var="data"/><l>vector</l></custom-block><script><block s="doSetVar"><l>isVector</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIf"><custom-block s="is %s a %txt"><block var="data"/><l>column-vector</l></custom-block><script><block s="doSetVar"><l>data</l><custom-block s="transpose %s"><block var="data"/></custom-block></block></script><list></list></block></script><script><block s="doSetVar"><l>isVector</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></list></block><script><block s="doSetVar"><l>dim</l><l>0</l></block></script><script><block s="doSetVar"><l>dim</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block></script></block><block s="doSetVar"><l>data</l><block s="reportListAttribute"><l><option>flatten</option></l><block var="data"/></block></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>softmax</l></list></block><script><block s="doIfElse"><block var="isVector"/><script><block s="doSetVar"><l>sum</l><block s="reportVariadicSum"><block s="reportMonadic"><l><option>e^</option></l><block var="data"/></block></block></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportMonadic"><l><option>e^</option></l><l></l></block><block var="sum"/></block></autolambda><list></list></block><block var="data"/></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: softmax is only defined for vectors!</l><l>... of matrix or vector</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>median</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportListAttribute"><l><option>sorted</option></l><block var="data"/></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block><l>1</l></list></block><script><block s="doReport"><block s="reportListItem"><block s="reportRound"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block></block><block var="result"/></block></block></script><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportListItem"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block><block var="result"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>2</l></block><l>1</l></list></block><block var="result"/></block></list></block><l>2</l></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>min</l></list></block><script><block s="doReport"><block s="reportVariadicMin"><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>max</l></list></block><script><block s="doReport"><block s="reportVariadicMax"><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>number</l></list></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>sum</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>mean</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicSum"><block var="data"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>minpos</l></list></block><script><block s="doIfElse"><block var="isVector"/><script><block s="doReport"><block s="reportListIndex"><block s="reportVariadicMin"><block var="data"/></block><block var="data"/></block></block></script><script><block s="doSetVar"><l>pos</l><block s="reportListIndex"><block s="reportVariadicMin"><block var="data"/></block><block var="data"/></block></block><block s="doSetVar"><l>posX</l><block s="reportModulus"><block var="pos"/><block var="dim"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="posX"/><l>0</l></list></block><script><block s="doSetVar"><l>posX</l><block var="dim"/></block></script><list></list></block><block s="doSetVar"><l>posY</l><l>1</l></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block var="pos"/><block var="dim"/></list></block><script><block s="doChangeVar"><l>pos</l><block s="reportMonadic"><l><option>neg</option></l><block var="dim"/></block></block><block s="doChangeVar"><l>posY</l><l>1</l></block></script></block><block s="doReport"><block s="reportNewList"><list><block var="posX"/><block var="posY"/></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>maxpos</l></list></block><script><block s="doIfElse"><block var="isVector"/><script><block s="doReport"><block s="reportListIndex"><block s="reportVariadicMax"><block var="data"/></block><block var="data"/></block></block></script><script><block s="doSetVar"><l>pos</l><block s="reportListIndex"><block s="reportVariadicMax"><block var="data"/></block><block var="data"/></block></block><block s="doSetVar"><l>posX</l><block s="reportModulus"><block var="pos"/><block var="dim"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="posX"/><l>0</l></list></block><script><block s="doSetVar"><l>posX</l><block var="dim"/></block></script><list></list></block><block s="doSetVar"><l>posY</l><l>1</l></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block var="pos"/><block var="dim"/></list></block><script><block s="doChangeVar"><l>pos</l><block s="reportMonadic"><l><option>neg</option></l><block var="dim"/></block></block><block s="doChangeVar"><l>posY</l><l>1</l></block><block s="doReport"><block s="reportNewList"><list><block var="posX"/><block var="posY"/></list></block></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="choice"/><l>variance</l></list></block><block s="reportVariadicEquals"><list><block var="choice"/><l>standard-deviation</l></list></block></list></block><script><block s="doSetVar"><l>mean</l><block s="reportQuotient"><block s="reportVariadicSum"><block var="data"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>SciS_variance(data,mean)</l><list><block var="data"/><block var="mean"/></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>variance</l></list></block><script><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>standard-deviation</l></list></block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block var="result"/><l>NaN</l></list></block><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block var="result"/></block></block></script><script><block s="doReport"><l>NaN</l></block></script></block></script><list></list></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown option!</l><l>... of matrix or vector</l></custom-block></script></block></script></block-definition><block-definition s="linear operation %&apos;a&apos; %&apos;op&apos; %&apos;b&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="80.41758241758271" collapsed="false">Linear operations with scalars, vectors and matrices.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true">*<options>+&#xD;-&#xD;*&#xD;X</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>isAtransposed?</l><l>isBtransposed?</l><l>dimA</l><l>dimB</l><l>row</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>op</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="op"/><l> </l></block></block></block><block s="doIf"><block s="reportIsA"><block var="a"/><l><option>number</option></l></block><script><block s="doIf"><block s="reportIsA"><block var="b"/><l><option>number</option></l><comment w="119.45205479452062" collapsed="false">number number operation</comment></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>+</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>-</l></list></block><script><block s="doReport"><block s="reportDifference"><block var="a"/><block var="b"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation between numbers!</l><l>linear operation</l></custom-block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>vector</l></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation between number and vector!</l><l>linear operation</l></custom-block></script></block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>matrix</l></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation between number and matrix!</l><l>linear operation</l></custom-block></script></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation with a number!</l><l>linear operation</l></custom-block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="a"/><l>vector</l></custom-block><script><block s="doIf"><block s="reportIsA"><block var="b"/><l><option>number</option></l></block><script><block s="doReport"><custom-block s="linear operation %s %s %s"><block var="b"/><block var="op"/><block var="a"/></custom-block><comment w="125.59523809523816" collapsed="false">vector number operation.</comment></block></script><list></list></block><block s="doSetVar"><l>isAtransposed?</l><custom-block s="is %s a %txt"><block var="a"/><l>column-vector</l></custom-block></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>vector</l></custom-block><script><block s="doSetVar"><l>isBtransposed?</l><custom-block s="is %s a %txt"><block var="b"/><l>column-vector</l></custom-block></block><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: different length of vectors!</l><l>linear operation</l></custom-block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>+</l></list></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block var="isAtransposed?"/><block var="isBtransposed?"/></list></block><block s="reportVariadicAnd"><list><block s="reportNot"><block var="isAtransposed?"/></block><block s="reportNot"><block var="isBtransposed?"/></block></list></block></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block></script><list><l><bool>true</bool></l><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: different types of vectors!</l><l>linear operation</l></custom-block></script></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>-</l></list></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block var="isAtransposed?"/><block var="isBtransposed?"/></list></block><block s="reportVariadicAnd"><list><block s="reportNot"><block var="isAtransposed?"/></block><block s="reportNot"><block var="isBtransposed?"/></block></list></block></list></block><script><block s="doReport"><block s="reportDifference"><block var="a"/><block var="b"/></block></block></script><list><l><bool>true</bool></l><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: different types of vectors!</l><l>linear operation</l></custom-block></script></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block><script><block s="doIf"><block var="isAtransposed?"/><script><block s="doSetVar"><l>a</l><custom-block s="transpose %s"><block var="a"/></custom-block></block></script><list></list></block><block s="doIf"><block var="isBtransposed?"/><script><block s="doSetVar"><l>b</l><custom-block s="transpose %s"><block var="b"/></custom-block></block></script><list></list></block><block s="doReport"><block s="reportCombine"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="op"/><l>X</l></list></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block var="isAtransposed?"/><block var="isBtransposed?"/></list></block><block s="reportVariadicAnd"><list><block s="reportNot"><block var="isAtransposed?"/></block><block s="reportNot"><block var="isBtransposed?"/></block></list></block></list></block><script><block s="doIf"><block var="isAtransposed?"/><script><block s="doSetVar"><l>a</l><custom-block s="transpose %s"><block var="a"/></custom-block></block></script><list></list></block><block s="doIf"><block var="isBtransposed?"/><script><block s="doSetVar"><l>b</l><custom-block s="transpose %s"><block var="b"/></custom-block></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block><l>3</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block><l>3</l></list></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="a"/></block><block s="reportListItem"><l>3</l><block var="b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="a"/></block><block s="reportListItem"><l>2</l><block var="b"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="a"/></block><block s="reportListItem"><l>1</l><block var="b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="a"/></block><block s="reportListItem"><l>3</l><block var="b"/></block></list></block></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="a"/></block><block s="reportListItem"><l>2</l><block var="b"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="a"/></block><block s="reportListItem"><l>1</l><block var="b"/></block></list></block></block></list></block></block><block s="doIf"><block var="isAtransposed?"/><script><block s="doSetVar"><l>result</l><custom-block s="transpose %s"><block var="result"/></custom-block></block></script><list></list></block><block s="doReport"><block var="result"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong dimension of vectors!</l><l>linear operation</l></custom-block></script></block></script><list><l><bool>true</bool></l><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: different types of vectors!</l><l>linear operation</l></custom-block></script></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong dimension of vectors!</l><l>linear operation</l></custom-block></script></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal vector operation!</l><l>linear operation</l></custom-block></script></block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>matrix</l></custom-block><script><block s="doIf"><custom-block s="is %s a %txt"><block var="a"/><l>column-vector</l></custom-block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: the vector should be a row vector!</l><l>linear operation</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="a"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></list></block><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block></list></block><script><block s="doReport"><block s="reportCombine"><custom-block s="transpose %s"><block s="reportVariadicProduct"><list><block var="a"/><block s="reportListAttribute"><l><option>columns</option></l><block var="b"/></block></list></block></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation between vector and matrix!</l><l>linear operation</l></custom-block></script></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation!</l><l>linear operation</l></custom-block></script><list></list><comment w="119.45205479452062" collapsed="false">vector matrix operation</comment></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation!</l><l>linear operation</l></custom-block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="a"/><l>matrix</l></custom-block><script><block s="doIf"><block s="reportIsA"><block var="b"/><l><option>number</option></l><comment w="119.45205479452062" collapsed="false">matrix number operation</comment></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation between number and matrix!</l><l>linear operation</l></custom-block></script></block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>vector</l></custom-block><script><block s="doIf"><custom-block s="is %s a %txt"><block var="b"/><l>column-vector</l></custom-block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="a"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></list></block><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block></list></block><script><block s="doReport"><block s="reportCombine"><custom-block s="transpose %s"><block s="reportVariadicProduct"><list><block var="a"/><custom-block s="transpose %s"><block var="b"/></custom-block></list></block></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation between matrix and vector!</l><l>linear operation</l></custom-block></script></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation!</l><l>linear operation</l></custom-block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: the vector should be a column vector!</l><l>linear operation</l></custom-block></script><list></list><comment w="119.45205479452062" collapsed="false">matrix vector operation</comment></block><block s="doIfElse"><custom-block s="is %s a %txt"><block var="b"/><l>matrix</l><comment w="119.45205479452062" collapsed="false">matrix matrix operation</comment></custom-block><script><block s="doSetVar"><l>dimA</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="a"/></block></block><block s="doSetVar"><l>dimB</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="b"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>+</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="dimA"/><block var="dimB"/></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: different dimensions!</l><l>linear operation</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>-</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="dimA"/><block var="dimB"/></list></block><script><block s="doReport"><block s="reportDifference"><block var="a"/><block var="b"/></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: different dimensions!</l><l>linear operation</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="dimA"/></block><block s="reportListItem"><l>1</l><block var="dimB"/></block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportCombine"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportVariadicProduct"><list><block var="row"/><block s="reportListAttribute"><l><option>columns</option></l><block var="b"/></block></list></block></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script><list><l>row</l></list></block><block var="a"/></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong dimensions!</l><l>linear operation</l></custom-block></script></block></script><list></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation between matrices</l><l>linear operation</l></custom-block></script></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation</l><l>linear operation</l></custom-block></script></block></script></block-definition><block-definition s="apply %&apos;matrix&apos; to %&apos;points&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="179.4761904761905" collapsed="false">Applies a mapping matrix to an object that is given as a matrix of points.</comment><header></header><code></code><translations></translations><inputs><input type="%s">matrix</input><input type="%s">list of points</input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="points"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: object as matrix of points required!</l><l>apply ... to list of points</l></custom-block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="points"/></block><l>0</l></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: at least one point required!</l><l>apply ... to list of points</l></custom-block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="matrix"/><l>matrix</l></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="matrix"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="points"/></block></block></list></block><script><block s="doReport"><custom-block s="transpose %s"><custom-block s="linear operation %s %s %s"><block var="matrix"/><l>*</l><custom-block s="transpose %s"><block var="points"/></custom-block></custom-block></custom-block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong dimension of mapping matrix!</l><l>apply ... to list of points</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: mapping matrix required!</l><l>apply ... to list of points</l></custom-block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="solve %&apos;A&apos; *x= %&apos;b&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="219.04761904761926" collapsed="false">Solves a linear system of max. 50 equations.</comment><header></header><code></code><translations></translations><inputs><input type="%s">matrix</input><input type="%s">column vector</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>matrix</l><l>found</l><l>x</l><l>nonzero</l><l>help</l><l>solved</l><l>j</l><l>k</l><l>d</l><l>r</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="A"/><l>matrix</l></custom-block><comment w="137.85714285714286" collapsed="false">some tests for correct data</comment></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing matrix!</l><l>solve A*x=b</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="b"/><l>column-vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing column-vector!</l><l>solve A*x=b</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="A"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: matrix is empty!</l><l>solve A*x=b</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="A"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="b"/></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong dimension of vector!</l><l>solve A*x=b</l></custom-block></script><list></list></block><block s="doSetVar"><l>b</l><custom-block s="transpose %s"><block var="b"/></custom-block></block><block s="doSetVar"><l>matrix</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="A"/></block><comment w="191.5707465277778" collapsed="false">create matrix with attached column b</comment></block><block s="doSetVar"><l>solved</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="A"/></block><l>50</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: matrix too large!</l><l>solve A*x=b</l></custom-block></script><list></list></block><custom-block s="add %s %s to %s"><l>column</l><block var="b"/><block var="A"/><comment w="191.5707465277778" collapsed="false">create matrix with attached column b</comment></custom-block><block s="doSetVar"><l>d</l><block s="reportListAttribute"><l><option>length</option></l><block var="matrix"/></block><comment w="106.71245659722217" collapsed="false">Try to solve matrix</comment></block><block s="doSetVar"><l>r</l><l>1</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="r"/><block var="d"/></list></block><block s="reportNot"><block var="solved"/></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><l>0</l></list></block><script><block s="doSetVar"><l>nonzero</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block><comment w="137.82649739583348" collapsed="false">find nonzero element</comment></block><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block var="found"/><block s="reportVariadicGreaterThan"><list><block var="nonzero"/><block var="d"/></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="nonzero"/><block var="matrix"/></block></block><l>0</l></list></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doChangeVar"><l>nonzero</l><l>1</l></block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block var="found"/></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no solution found!</l><l>solve A*x=b</l></custom-block></script><script><block s="doSetVar"><l>matrix</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block var="row"/></block></block><block s="doReplaceInList"><block var="r"/><block var="row"/><block s="reportListItem"><block var="nonzero"/><block var="row"/></block></block><block s="doReplaceInList"><block var="nonzero"/><block var="row"/><block var="help"/></block><block s="doReport"><block var="row"/></block></script><list><l>row</l></list></block><block var="matrix"/></block><comment w="90" collapsed="false">swap rows</comment></block></script></block></script><list></list></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><comment w="90" collapsed="false">normalize row</comment></block><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><l>1</l></block><block s="doSetVar"><l>k</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="k"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><block s="reportQuotient"><block s="reportListItem"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><block var="help"/></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doSetVar"><l>k</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="k"/><block var="d"/></list></block><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="k"/><block var="r"/></list></block><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="help"/><l>0</l></list></block><script><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><l>0</l></block><block s="doSetVar"><l>j</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="j"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><block s="reportDifference"><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block><block s="reportVariadicProduct"><list><block var="help"/><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block></list></block></block></block><block s="doChangeVar"><l>j</l><l>1</l></block></script></block></script><list></list></block></script><list></list></block><block s="doChangeVar"><l>k</l><l>1</l></block></script><comment w="90" collapsed="false">diagonalize</comment></block><block s="doChangeVar"><l>r</l><l>1</l></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><l/></block></block></script><list></list></block><block var="matrix"/></block></block></script></block></script></block-definition><block-definition s="apply Gauss method to %&apos;A&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="228.14285714285742" collapsed="false">Reports a list of matrix A in triangle form, the rank of A, column change and column positions.</comment><header></header><code></code><translations></translations><inputs><input type="%s">matrix</input></inputs><script><block s="doDeclareVariables"><list><l>Ab</l><l>rank</l><l>row</l><l>found</l><l>help</l><l>i</l><l>c</l><l>columchange</l><l>column positions</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="A"/><l>matrix</l></custom-block><comment w="137.85714285714286" collapsed="false">some tests for correct data</comment></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: this is not a matrix!</l><l>aooly Gauss method ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="A"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: matrix is empty!</l><l>aooly Gauss method ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>Ab</l><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="A"/></block><comment w="186.6028794642858" collapsed="false">a copy of A is used to let A unchanged</comment></block><block s="doSetVar"><l>rank</l><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></block><block s="doSetVar"><l>row</l><l>1</l></block><block s="doSetVar"><l>columchange</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>column positions</l><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="Ab"/></block></block></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="row"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></list></block><block s="reportVariadicLessThan"><list><block var="rank"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></list></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block><l>0</l></list><comment w="155" collapsed="false">find a non zero pivot element</comment></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>i</l><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></list></block><block var="found"/></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block><l>0</l></list></block></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block><block s="doReplaceInList"><block var="i"/><block var="Ab"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block><block s="doReplaceInList"><block var="row"/><block var="Ab"/><block var="help"/></block></script><list></list></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="90" collapsed="false">search downwards</comment></block><block s="doIf"><block s="reportNot"><block var="found"/></block><script><block s="doSetVar"><l>i</l><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="Ab"/></block></block><l>1</l></block></list></block><block var="found"/></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block><l>0</l></list></block></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doFor"><l>column</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="i"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="i"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="row"/><block s="reportListItem"><block var="column"/><block var="Ab"/></block><block var="help"/></block><block s="doSetVar"><l>columchange</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="row"/><block var="column positions"/></block></block><block s="doReplaceInList"><block var="row"/><block var="column positions"/><block s="reportListItem"><block var="i"/><block var="column positions"/></block></block><block s="doReplaceInList"><block var="i"/><block var="column positions"/><block var="help"/></block></script></block></script><list></list></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="90" collapsed="false">search to the right</comment></block></script><list></list></block></script><list></list></block><block s="doSetVar"><l>c</l><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="c"/><l>0</l></list></block></block><script><block s="doReplaceInList"><block var="row"/><block var="Ab"/><block s="reportQuotient"><block s="reportListItem"><block var="row"/><block var="Ab"/></block><block var="c"/></block></block><block s="doSetVar"><l>i</l><block s="reportVariadicSum"><list><block var="row"/><l>1</l></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="Ab"/></block></list></block><script><block s="doSetVar"><l>c</l><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="i"/><block var="Ab"/><block s="reportDifference"><block s="reportListItem"><block var="i"/><block var="Ab"/></block><block s="reportVariadicProduct"><list><block var="c"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></list></block></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>rank</l><block s="reportDifference"><block var="row"/><l>1</l></block></block></script></block><block s="doChangeVar"><l>row</l><l>1</l></block></script></block><block s="doSetVar"><l>row</l><block var="rank"/></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block var="row"/><l>1</l></list></block><script><block s="doSetVar"><l>i</l><block s="reportDifference"><block var="row"/><l>1</l></block></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block var="i"/><l>1</l></list></block><script><block s="doSetVar"><l>c</l><block s="reportListItem"><block var="row"/><block s="reportListItem"><block var="i"/><block var="Ab"/></block></block></block><block s="doReplaceInList"><block var="i"/><block var="Ab"/><block s="reportDifference"><block s="reportListItem"><block var="i"/><block var="Ab"/></block><block s="reportVariadicProduct"><list><block var="c"/><block s="reportListItem"><block var="row"/><block var="Ab"/></block></list></block></block></block><block s="doChangeVar"><l>i</l><l>-1</l></block></script></block><block s="doChangeVar"><l>row</l><l>-1</l></block></script><comment w="137.85714285714286" collapsed="false">transform to diagonal form E</comment></block><block s="doReport"><block s="reportNewList"><list><block var="Ab"/><block var="rank"/><block var="columchange"/><block var="column positions"/></list></block></block></script></block></script></block-definition><block-definition s="polynomial interpolation for %&apos;data&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="139.41454664057406" collapsed="false">Calculates the coefficients of the interpolation polynomial for a 2xn-matrix of points.</comment><header></header><code></code><translations></translations><inputs><input type="%s">list of points</input></inputs><script><block s="doDeclareVariables"><list><l>matrix</l><l>found</l><l>x</l><l>row</l><l>help</l><l>n</l><l>solved</l><l>j</l><l>k</l><l>d</l><l>r</l><l>nonzero</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: matrix required!</l><l>polynomial interpolation for ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>2</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: not enough points!</l><l>polynomial interpolation for ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>2</l></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: 2-dimensional points required!</l><l>polynomial interpolation for ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>matrix</l><block s="reportNewList"><list></list></block><comment w="191.5707465277778" collapsed="false">create matrix of powers of x and y-value</comment></block><block s="doSetVar"><l>solved</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><l>50</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: too many points!</l><l>polynomial interpolation for ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>data</l><block s="reportListAttribute"><l><option>sorted</option></l><block var="data"/></block></block><block s="doFor"><l>i</l><l>1</l><block var="n"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>j</l><block s="reportDifference"><block var="n"/><l>1</l></block></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block var="j"/><l>0</l></list></block><script><block s="doSetVar"><l>x</l><l>1</l></block><block s="doSetVar"><l>k</l><block var="j"/></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block var="k"/><l>0</l></list></block><script><block s="doSetVar"><l>x</l><block s="reportVariadicProduct"><list><block var="x"/><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block></list></block></block><block s="doChangeVar"><l>k</l><l>-1</l></block></script></block><block s="doAddToList"><block var="x"/><block var="row"/></block><block s="doChangeVar"><l>j</l><l>-1</l></block></script></block><block s="doAddToList"><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="row"/></block><block s="doAddToList"><block var="row"/><block var="matrix"/></block></script></block><block s="doSetVar"><l>d</l><block s="reportListAttribute"><l><option>length</option></l><block var="matrix"/></block><comment w="106.71245659722217" collapsed="false">Try to solve matrix</comment></block><block s="doSetVar"><l>r</l><l>1</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="r"/><block var="d"/></list></block><block s="reportNot"><block var="solved"/></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><l>0</l></list></block><script><block s="doSetVar"><l>nonzero</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block><comment w="137.82649739583348" collapsed="false">find nonzero element</comment></block><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block var="found"/><block s="reportVariadicGreaterThan"><list><block var="nonzero"/><block var="d"/></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="nonzero"/><block var="matrix"/></block></block><l>0</l></list></block><script><block s="doSetVar"><l>found</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doChangeVar"><l>nonzero</l><l>1</l></block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block var="found"/></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no solution found!</l><l>polynomial interpolation for ...</l></custom-block></script><script><block s="doSetVar"><l>matrix</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block var="row"/></block></block><block s="doReplaceInList"><block var="r"/><block var="row"/><block s="reportListItem"><block var="nonzero"/><block var="row"/></block></block><block s="doReplaceInList"><block var="nonzero"/><block var="row"/><block var="help"/></block><block s="doReport"><block var="row"/></block></script><list><l>row</l></list></block><block var="matrix"/></block><comment w="90" collapsed="false">swap rows</comment></block></script></block></script><list></list></block><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><comment w="90" collapsed="false">normalize row</comment></block><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><l>1</l></block><block s="doSetVar"><l>k</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="k"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block><block s="reportQuotient"><block s="reportListItem"><block var="k"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block><block var="help"/></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doSetVar"><l>k</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="k"/><block var="d"/></list></block><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="k"/><block var="r"/></list></block><script><block s="doSetVar"><l>help</l><block s="reportListItem"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="help"/><l>0</l></list></block><script><block s="doReplaceInList"><block var="r"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><l>0</l></block><block s="doSetVar"><l>j</l><block s="reportVariadicSum"><list><block var="r"/><l>1</l></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="j"/><block s="reportVariadicSum"><list><block var="d"/><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block><block s="reportDifference"><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="k"/><block var="matrix"/></block></block><block s="reportVariadicProduct"><list><block var="help"/><block s="reportListItem"><block var="j"/><block s="reportListItem"><block var="r"/><block var="matrix"/></block></block></list></block></block></block><block s="doChangeVar"><l>j</l><l>1</l></block></script></block></script><list></list></block></script><list></list></block><block s="doChangeVar"><l>k</l><l>1</l></block></script><comment w="90" collapsed="false">diagonaize</comment></block><block s="doChangeVar"><l>r</l><l>1</l></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><l/></block></block></script><list></list></block><block var="matrix"/></block></block></script></block></script></block-definition><block-definition s="%&apos;p&apos; ( %&apos;x&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="124.41780821917837" collapsed="false">Calculates the value of a polynomial for input x.</comment><header></header><code></code><translations></translations><inputs><input type="%s">polynomial as list of coefficients</input><input type="%n">1</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>grade</l><l>result</l><l>i</l></list></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="p"/><l>row-vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no polynomial found!</l><l>polynomial(x)=...</l></custom-block></script><script><block s="doSetVar"><l>grade</l><block s="reportListAttribute"><l><option>length</option></l><block var="p"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="grade"/><l>0</l></list></block><script><block s="doReport"><l>0</l></block></script><list></list></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="grade"/><l>1</l></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="p"/></block></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="p"/></block><block var="x"/></list></block><block s="reportListItem"><l>2</l><block var="p"/></block></list></block></block><block s="doSetVar"><l>i</l><l>3</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="grade"/></list></block><script><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="result"/><block var="x"/></list></block><block s="reportListItem"><block var="i"/><block var="p"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="affine transformation of %&apos;data&apos; $nl by %&apos;originalPoints&apos; --&gt; %&apos;targetPoints&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="96.94142127403848" collapsed="false">Applies an affine transformation to a list of points.&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">list of points</input><input type="%s">3 original points</input><input type="%s">3 target points</input></inputs><script><block s="doDeclareVariables"><list><l>a11</l><l>a12</l><l>a13</l><l>a21</l><l>a22</l><l>a23</l><l>S</l><l>P1</l><l>P2</l><l>P3</l><l>Q1</l><l>Q2</l><l>Q3</l><l>ok</l><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: at least one point required!</l><l>affine transformation of ...</l></custom-block></script><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>2</l></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dimension should be 2!</l><l>affine transformation of ...</l></custom-block></script><list></list></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list of points as data required!</l><l>affine transformation of ...</l></custom-block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIfElse"><block s="reportIsA"><block var="originalPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="originalPoints"/></block><l>3</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: 3 original points required!</l><l>affine transformation of ...</l></custom-block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block></block><l>2</l></list></block></list></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list of original points  required!</l><l>affine transformation of ...</l></custom-block></script></block><block s="doIfElse"><block s="reportIsA"><block var="targetPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="targetPoints"/></block><l>3</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: 3 target points required!</l><l>affine transformation of ...</l></custom-block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block></block><l>2</l></list></block></list></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list of target points  required!</l><l>affine transformation of ...</l></custom-block></script></block><block s="doIf"><block s="reportNot"><block var="ok"/></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dimensions should be 2!</l><l>affine transformation of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>P1</l><block s="reportListItem"><l>1</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P2</l><block s="reportListItem"><l>2</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P3</l><block s="reportListItem"><l>3</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>Q1</l><block s="reportListItem"><l>1</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q2</l><block s="reportListItem"><l>2</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q3</l><block s="reportListItem"><l>3</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>S</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="P2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="P3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="P1"/></block></block></list></block></list></block></list></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="S"/><l>0</l></list></block></block><script><block s="doSetVar"><l>a11</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a12</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a21</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a22</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a13</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a23</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a11"/></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a12"/></list></block></list></block><block var="a13"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a21"/></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="data"/></block></block><block var="a22"/></list></block></list></block><block var="a23"/></list></block></list></block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: denominator is zero</l><l>affine transformation of ...</l></custom-block></script></block></script></block-definition><block-definition s="%&apos;re&apos; + %&apos;im&apos; * i" type="reporter" category="2. Math tools" space="true"><comment x="0" y="0" w="122.28571428571438" collapsed="false">Reports a complex number in Cartesian form.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>cnC</l><block var="re"/><block var="im"/></list></block></block></script></block-definition><block-definition s="%&apos;r&apos; * e^i %&apos;phi&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="106.42857142857126" collapsed="false">Reports a complex number in polar form.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">30</input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>cnP</l><block var="r"/><block var="phi"/></list></block></block></script></block-definition><block-definition s="%&apos;z&apos; $arrowRightThin %&apos;selection&apos; - form" type="reporter" category="2. Math tools"><comment x="0" y="0" w="130.71428571428555" collapsed="false">Reports a complex number in polar or Cartesian form.</comment><header></header><code></code><translations></translations><inputs><input type="%s">complex number</input><input type="%txt" readonly="true">polar<options>polar&#xD;Cartesian</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number</l></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>polar</l></list></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-form</l></custom-block><script><block s="doReport"><block var="z"/></block></script><script><block s="doReport"><block s="reportNewList"><list><l>cnP</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>3</l><block var="z"/></block></list></block></list></block></block><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></block></block></list></block></block></script></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-Cartesian-form</l></custom-block><script><block s="doReport"><block var="z"/></block></script><script><block s="doReport"><block s="reportNewList"><list><l>cnC</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></list></block></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: complex number expected!</l><l>complex number --&gt; complex number</l></custom-block></script></block></script></block></script></block-definition><block-definition s="%&apos;choice&apos; of a %&apos;z&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="191.42857142857125" collapsed="false">Reports properties of complex numbers.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">real-part<options>absolute-value&#xD;real-part&#xD;imaginary-part&#xD;phase&#xD;conjugate</options></input><input type="%s">complex number</input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number</l></custom-block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>absolute-value</l></list></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-form</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>3</l><block var="z"/></block></list></block></list></block></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>real-part</l></list></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-Cartesian-form</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>imaginary-part</l></list></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-Cartesian-form</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>phase</l></list></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-form</l></custom-block><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="z"/></block></block></script><script><block s="doReport"><block s="reportMonadic"><l><option>atan</option></l><block s="reportQuotient"><block s="reportListItem"><l>3</l><block var="z"/></block><block s="reportListItem"><l>2</l><block var="z"/></block></block></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>conjugate</l></list></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="z"/><l>complex-number-polar-form</l></custom-block><script><block s="doReport"><block s="reportNewList"><list><l>cnP</l><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><l>cnC</l><block s="reportListItem"><l>2</l><block var="z"/></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportListItem"><l>3</l><block var="z"/></block></block></list></block></block></script></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown operator!</l><l>... of complex number</l></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: complex number expected!</l><l>... of complex number</l></custom-block></script></block></script></block></script></block-definition><block-definition s="complex operation %&apos;z1&apos; %&apos;op&apos; %&apos;z2&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="240" collapsed="false">Reports arithmetic results of two complex numbers.</comment><header></header><code></code><translations></translations><inputs><input type="%s">z1</input><input type="%s" readonly="true">+<options>+&#xD;-&#xD;*&#xD;/</options></input><input type="%s">z2</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>denominator</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="z1"/><l>complex-number</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: first argument is not a complex number</l><l>complex operation ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="z2"/><l>complex-number</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: second argument is not a complex number</l><l>complex operation ...</l></custom-block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="z1"/><l>complex-number-polar-form</l></custom-block><script><block s="doSetVar"><l>z1</l><block s="reportNewList"><list><l>cnC</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z1"/></block></block></list></block></list></block></block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="z2"/><l>complex-number-polar-form</l></custom-block><script><block s="doSetVar"><l>z2</l><block s="reportNewList"><list><l>cnC</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z2"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="z2"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z2"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="z2"/></block></block></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>+</l></list></block><script><block s="doReport"><block s="reportNewList"><list><l>cnC</l><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>-</l></list></block><script><block s="doReport"><block s="reportNewList"><list><l>cnC</l><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>*</l></list></block><script><block s="doReport"><block s="reportNewList"><list><l>cnC</l><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>/</l></list></block><script><block s="doSetVar"><l>denominator</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z2"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z2"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="denominator"/><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: denominator is zero!</l><l>complex operation ...</l></custom-block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><l>cnC</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></list></block><block var="denominator"/></block><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>3</l><block var="z1"/></block><block s="reportListItem"><l>2</l><block var="z2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="z1"/></block><block s="reportListItem"><l>3</l><block var="z2"/></block></list></block></block><block var="denominator"/></block></list></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as a MathPad width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; with close-button %&apos;withCloseButton?&apos; left? %&apos;left?&apos; size: %&apos;closeButtonSize&apos;" type="command" category="2. Math tools" space="true"><comment x="0" y="0" w="142.5" collapsed="false">Creates a new  empty costume of the specified size and color and sets local properties</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%txt" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%b">false</input><input type="%b">false</input><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><block var="color"/><block var="withCloseButton?"/><block var="left?"/><block var="closeButtonSize"/></custom-block><block s="doReplaceInList"><l>typeOfConfiguration</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><l>MathPad</l></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>unknown</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>onlyPoints</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>withGrid?</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>dimensions</l><l>3</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xMin</l><l>-10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xMax</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yMin</l><l>-10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yMax</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>zMin</l><l>-10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>zMax</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>startPoint</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_MathpadAddAxes(costume,properties)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></list></block></script></block></script><scripts><comment x="491.5000000000003" y="85.16666666666666" w="181.49372863769622" collapsed="false">costume attributes and line attributes same as SketchPad:&#xD;&#xD;other attributes:&#xD;- draw only ponts, not arrows&#xD;- dimension of coordinate system&#xD;- max. value on scales&#xD;- start point of arrows</comment></scripts></block-definition><block-definition s="new dictionary" type="reporter" category="lists" space="true"><comment x="0" y="0" w="140.66666666666666" collapsed="false">Reports an empty dictionary.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>key</l><l>value</l></list></block></list></block></block></script></block-definition><block-definition s="%&apos;color&apos; as %&apos;colortype&apos;" type="reporter" category="pen"><comment x="0" y="0" w="192.952380952381" collapsed="false">Reports an RGB-value specified by name, number, tree or four values, or list. Default value is gray.</comment><header></header><code></code><translations></translations><inputs><input type="%s">gray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%txt" readonly="true">RGB-value<options>RGB-value&#xD;RGBA-value</options></input></inputs><script><block s="doDeclareVariables"><list><l>colors</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>colors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>black</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportNewList"><list><l>red</l><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block></list></block><block s="reportNewList"><list><l>green</l><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block></list></block><block s="reportNewList"><list><l>blue</l><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block></list></block><block s="reportNewList"><list><l>gray</l><block s="reportNewList"><list><l>180</l><l>180</l><l>180</l></list></block></list></block><block s="reportNewList"><list><l>orange</l><block s="reportNewList"><list><l>255</l><l>165</l><l>0</l></list></block></list></block><block s="reportNewList"><list><l>cyan</l><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block></list></block><block s="reportNewList"><list><l>magenta</l><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block></list></block><block s="reportNewList"><list><l>yellow</l><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block></list></block><block s="reportNewList"><list><l>white</l><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l></list></block></list></block><block s="reportNewList"><list><l>lightGray</l><block s="reportNewList"><list><l>230</l><l>230</l><l>230</l></list></block></list></block></list></block></block><block s="doIf"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doIf"><custom-block s="is %s a %txt"><block var="color"/><l>vector</l></custom-block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>3</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="colortype"/><l>RGB-value</l></list></block><script><block s="doReport"><block var="color"/></block></script><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="color"/><block s="reportNewList"><list><l>255</l></list></block></list></block></block></script></block></script><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>4</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="colortype"/><l>RGB-value</l></list></block><script><block s="doReport"><custom-block s="subsection of %s in %s from %br %s %s to %s %s"><l>list-data</l><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l><l>4</l></list></block><l>1</l><l>1</l><l>3</l><l>1</l></custom-block></block></script><script><block s="doReport"><block var="color"/></block></script></block></script><l><bool>true</bool></l><script><block s="doReport"><custom-block s="%s as %txt"><l>gray</l><block var="colortype"/></custom-block></block></script></list></block></script><list><l><bool>true</bool></l><script><block s="doReport"><custom-block s="%s as %txt"><l>gray</l><block var="colortype"/></custom-block></block></script></list></block></script><list><block s="reportIsA"><block var="color"/><l><option>number</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block var="color"/><block var="colors"/></block></block><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doReport"><custom-block s="%s as %txt"><block s="reportListItem"><l>2</l><block var="color"/></block><block var="colortype"/></custom-block></block></script><script><block s="doReport"><custom-block s="%s as %txt"><l>gray</l><block var="colortype"/></custom-block></block></script></block></script><block s="reportIsA"><block var="color"/><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block var="color"/><block var="colors"/></block></block><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doReport"><custom-block s="%s as %txt"><block var="color"/><block var="colortype"/></custom-block></block></script><script><block s="doReport"><custom-block s="%s as %txt"><l>gray</l><block var="colortype"/></custom-block></block></script></block></script><l><bool>true</bool></l><script><block s="doReport"><custom-block s="%s as %txt"><l>gray</l><block var="colortype"/></custom-block></block></script></list></block></script></block></script></block-definition><block-definition s="new costume size: %&apos;width&apos; %&apos;height&apos; %&apos;color&apos;" type="reporter" category="looks" space="true"><comment x="0" y="0" w="126.4531901041667" collapsed="false">Returns an empty costume of the given width and height with background color given as text or list.</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%s" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input></inputs><script><block s="doWarp"><script><block s="doSetVar"><l>color</l><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_newcostume(w,h,color)</l><list><block var="width"/><block var="height"/><block var="color"/></list></block></block></script></block></script></block-definition><block-definition s="is variable %&apos;varname&apos; in the scope of %&apos;sprite&apos; ?" type="predicate" category="variables"><comment x="0" y="0" w="118.6666666666668" collapsed="false">Reports true if the varname is part of the scope of the sprite. the varname is not used case-sensitive!</comment><header></header><code></code><translations></translations><inputs><input type="%s">varname</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><block s="reportIsA"><block var="target"/><l><option>stage</option></l></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite or stage required!</l><l>thisBlock</l></custom-block></script><list></list></block><block s="doReport"><block s="reportListContainsItem"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>var_names(scope)</l><list><l></l></list></block></autolambda><list></list></block><list><l>sprite</l></list></block><block var="varname"/></block></block></script></block></script></block-definition><block-definition s="set MathPadProperty %&apos;key&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="2. Math tools"><comment x="0" y="0" w="105.83333333333333" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">dimensions<options>typeOfConfiguration&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;MathPad properties={&#xD;type of data=typeOfData&#xD;draw only points, not arrows=onlyPoints&#xD;dimensions&#xD;max value on scales=maxValue&#xD;min value on scales=minValue&#xD;start point for arrows=startPoint&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>MathPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Target isn&apos;t configured as MathPad!</l><l>set MathPadProperty</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="value"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Missing variable "myProperties"!</l><l>set MathPadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="MathPadProperty %&apos;key&apos; of %&apos;sprite&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="86.11904761904775" collapsed="false">Returns the value of a property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">dimensions<options>typeOfConfiguration&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;MathPad properties={&#xD;type of data=typeOfData&#xD;draw only points, not arrows=onlyPoints&#xD;dimensions&#xD;max value on scales=maxValue&#xD;min value on scales=minValue&#xD;start point for arrows=startPoint&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>MathPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as MathPad!</l><l>MathPadProperty ...</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing variable myProperties!</l><l>MathPadProperty ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set MathPad costume properties width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; offsets: %&apos;leftOffset&apos; %&apos;upperOffset&apos; $nl with close-button %&apos;closeButton&apos; left? %&apos;left?&apos; size %&apos;size&apos; on %&apos;sprite&apos;" type="command" category="2. Math tools"><comment x="0" y="0" w="124.32706197102944" collapsed="false">a simple way to set some costume attributes:&#xD;1: width&#xD;2: height&#xD;3: back color red&#xD;4: back color green&#xD;5: back color blue&#xD;6: left offset for MathPad&#xD;    position on stage&#xD;7: upper offset for MathPad&#xD;    position on stage&#xD;8: close-button properties</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%mult%s"></input><input type="%n">0</input><input type="%n">0</input><input type="%b">true</input><input type="%b">false</input><input type="%n">15</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>MathPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Target isn&apos;t configured as MathPad!</l><l>set MathPad costume properties</l></custom-block></script><list></list></block><custom-block s="configure %s as a MathPad width: %n height: %n %br color: %txt with close-button %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block><block var="closeButton"/><block var="left?"/><block var="size"/></custom-block><block s="doReplaceInList"><l>offsets</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block s="reportNewList"><list><block var="leftOffset"/><block var="upperOffset"/></list></block></block></script></block></script></block-definition><block-definition s="set MathPad properties lineWidth: %&apos;lineWidth&apos; onlyPoints? %&apos;onlyPoints&apos; grid? %&apos;withGrid?&apos; $nl dimension: %&apos;dimensions&apos; xMin: %&apos;xMin&apos; xMax: %&apos;xMax&apos; yMin: %&apos;yMin&apos; yMax: %&apos;yMax&apos; $nl zMin: %&apos;zMin&apos; zMax: %&apos;zMax&apos; startPoint: %&apos;x&apos; %&apos;y&apos; %&apos;z&apos; on %&apos;sprite&apos;" type="command" category="2. Math tools"><comment x="0" y="0" w="160.99372863769568" collapsed="false">a simple way to set some MathPad attributes:&#xD;1: line width&#xD;2: draw only ponts, not arrows&#xD;3: dimension of coordinate system&#xD;4: max. value on scales&#xD;5: start point of arrows</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%b">false</input><input type="%b"></input><input type="%n">3</input><input type="%n">-10</input><input type="%n">10</input><input type="%n">-10</input><input type="%n">10</input><input type="%n">-10</input><input type="%n">10</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>oldDimensions</l><l>oldXmax</l><l>oldXmin</l><l>oldYmin</l><l>oldYmax</l><l>oldZmin</l><l>oldZmax</l><l>oldWithGrid?</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>MathPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Target isn&apos;t configured as MathPad!</l><l>set MathPad properties</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="xMin"/><block var="xMax"/></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="yMin"/><block var="yMax"/></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="zMin"/><block var="zMax"/></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Irregular ranges!</l><l>set MathPad properties</l></custom-block></script><list></list></block><block s="doSetVar"><l>oldDimensions</l><block s="reportListItem"><l>dimensions</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doSetVar"><l>oldXmax</l><block s="reportListItem"><l>xMax</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doSetVar"><l>oldXmin</l><block s="reportListItem"><l>xMin</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doSetVar"><l>oldYmax</l><block s="reportListItem"><l>yMax</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doSetVar"><l>oldYmin</l><block s="reportListItem"><l>yMin</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doSetVar"><l>oldZmin</l><block s="reportListItem"><l>zMin</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doSetVar"><l>oldZmax</l><block s="reportListItem"><l>zMax</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doSetVar"><l>oldWithGrid?</l><block s="reportListItem"><l>withGrid?</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block><block s="doReplaceInList"><l>lineWidth</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="lineWidth"/></block><block s="doReplaceInList"><l>onlyPoints</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="onlyPoints"/></block><block s="doReplaceInList"><l>dimensions</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="dimensions"/></block><block s="doReplaceInList"><l>xMin</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="xMin"/></block><block s="doReplaceInList"><l>xMax</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="xMax"/></block><block s="doReplaceInList"><l>yMin</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="yMin"/></block><block s="doReplaceInList"><l>yMax</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="yMax"/></block><block s="doReplaceInList"><l>zMin</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="zMin"/></block><block s="doReplaceInList"><l>zMax</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="zMax"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimensions"/><l>3</l></list></block><script><block s="doReplaceInList"><l>startPoint</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block s="reportNewList"><list><block var="x"/><block var="y"/><block var="z"/></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="dimensions"/><l>2</l></list></block><script><block s="doReplaceInList"><l>startPoint</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script><block s="reportVariadicNotEquals"><list><block var="dimensions"/><l>1</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Irregular dimension!</l><l>set MathPad properties</l></custom-block></script></list></block><block s="doReplaceInList"><l>withGrid?</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="withGrid?"/></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicNotEquals"><list><block var="oldDimensions"/><block var="dimensions"/></list></block><block s="reportVariadicNotEquals"><list><block var="oldXmax"/><block var="xMax"/></list></block><block s="reportVariadicNotEquals"><list><block var="oldXmin"/><block var="xMin"/></list></block><block s="reportVariadicNotEquals"><list><block var="oldYmax"/><block var="yMax"/></list></block><block s="reportVariadicNotEquals"><list><block var="oldYmin"/><block var="yMin"/></list></block><block s="reportVariadicNotEquals"><list><block var="oldZmin"/><block var="zMin"/></list></block><block s="reportVariadicNotEquals"><list><block var="oldZmax"/><block var="zMax"/></list></block><block s="reportVariadicNotEquals"><list><block var="oldWithGrid?"/><block var="withGrid?"/></list></block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><custom-block s="MathPadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><custom-block s="MathPadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><custom-block s="MathPadProperty %txt of %txt"><l>backColor</l><block var="target"/></custom-block></custom-block></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_MathpadAddAxes(costume,properties)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="plot %&apos;choice&apos; %&apos;data&apos; color: %&apos;color&apos; on MathPad %&apos;sprite&apos; $nl Change startpoint? %&apos;changeStartpoint&apos;" type="command" category="2. Math tools"><comment x="0" y="0" w="164.4999999999994" collapsed="false">Draws a vector, complex number, or object of points from the start point stored in the properties.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">vector<options>vector&#xD;complex-number&#xD;line-to&#xD;object-of</options></input><input type="%l"></input><input type="%s" readonly="true">black<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>MathPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Target isn&apos;t configured as MathPad!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Data are required as list!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><block var="choice"/></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>object-of</l></list></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></list></block><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>At least two points necessary!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>dimensions</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Wrong dimension!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_MathPadPlot(costume,data,color,properties,choice)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="data"/><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="choice"/></list></block></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>complex-number</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><l>cnC</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><l>cnP</l></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Complex number required!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>dimensions</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><l>2</l></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Wrong dimension!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><l>cnP</l></list></block><script><block s="doSetVar"><l>data</l><block s="reportNewList"><list><l>cnC</l><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="data"/></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportListItem"><l>3</l><block var="data"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="data"/></block><block s="reportMonadic"><l><option>sin</option></l><block s="reportListItem"><l>3</l><block var="data"/></block></block></list></block></list></block></block></script><list></list></block><block s="doSetVar"><l>data</l><block s="reportNewList"><list><block s="reportListItem"><l>2</l><block var="data"/></block><block s="reportListItem"><l>3</l><block var="data"/></block></list></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_MathPadPlot(costume,data,color,properties,choice)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="data"/><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="choice"/></list></block></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_MathpadAddAxes(costume,properties)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="choice"/><l>vector</l></list></block><block s="reportVariadicEquals"><list><block var="choice"/><l>line-to</l></list></block></list></block><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Vector required!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>dimensions</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Wrong dimension!</l><l>plot ... on MathPad</l></custom-block></script><list></list></block><block s="doIf"><custom-block s="is %s a %txt"><block var="data"/><l>column-vector</l></custom-block><script><block s="doSetVar"><l>data</l><custom-block s="transpose %s"><block var="data"/></custom-block></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_MathPadPlot(costume,data,color,properties,choice)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="data"/><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="choice"/></list></block></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="changeStartpoint"/><block s="reportVariadicNotEquals"><list><block var="choice"/><l>object-of</l></list></block></list></block><script><block s="doReplaceInList"><l>startPoint</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="data"/></block></script><list></list></block></script></block></script></block-definition><block-definition s="plot set %&apos;set&apos; setname: %&apos;setname&apos; $nl color: %&apos;color&apos; linewidth: %&apos;linewidth&apos; level(1..5): %&apos;level&apos; on MathPad %&apos;sprite&apos; $nl" type="command" category="2. Math tools"><comment x="0" y="0" w="124.49999999999937" collapsed="false">Draws members of a set.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt">set1</input><input type="%s" readonly="true">black<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%n">1</input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>width</l><l>height</l><l>properties</l><l>dl</l><l>x</l><l>xmin</l><l>xmax</l><l>x0</l><l>leftOffset</l><l>upperOffset</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>MathPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Target isn&apos;t configured as MathPad!</l><l>plot set</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Set required!</l><l>plot set</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>dimensions</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><l>1</l></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Dimension should be "1"!</l><l>plot set</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNumbers"><l>1</l><l>5</l></block><block var="level"/></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Wrong level!</l><l>plot set</l></custom-block></script><list></list></block><block s="doSetVar"><l>properties</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doSetVar"><l>width</l><block s="reportListItem"><l>width</l><block var="properties"/></block></block><block s="doSetVar"><l>height</l><block s="reportListItem"><l>height</l><block var="properties"/></block></block><block s="doSetVar"><l>xmin</l><block s="reportListItem"><l>xMin</l><block var="properties"/></block></block><block s="doSetVar"><l>xmax</l><block s="reportListItem"><l>xMax</l><block var="properties"/></block></block><block s="doSetVar"><l>leftOffset</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>offsets</l><block var="properties"/></block></block></block><block s="doSetVar"><l>upperOffset</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>offsets</l><block var="properties"/></block></block></block><block s="doSetVar"><l>dl</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportDifference"><block var="height"/><l>30</l></block><l>5</l></block></block></block><block s="doSetVar"><l>level</l><block s="reportVariadicSum"><list><l>30</l><block s="reportVariadicProduct"><list><block var="dl"/><block var="level"/></list></block></list></block></block><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>neg</option></l><block var="xmin"/></block><block var="width"/></list></block><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="color"/></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>3</l></list></block><script><block s="doSetVar"><l>color</l><block s="reportNewList"><list><l>255</l><l>0</l><l>2</l></list></block></block></script><list></list></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="color"/><l></l></list></block><script><block s="doSetVar"><l>color</l><block s="reportNewList"><list><l>255</l><l>0</l><l>230</l></list></block></block></script><list></list></block></script><script><block s="doSetVar"><l>color</l><block s="reportNewList"><list><l>255</l><l>0</l><l>230</l></list></block></block></script></block></script></block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><block var="color"/></custom-block><custom-block s="set MathPadProperty %txt of %txt to %s"><l>lineWidth</l><block var="target"/><block var="linewidth"/></custom-block><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_MathPadPlotSet(set,setname,properties,atY,costume)</l><list><block var="set"/><block var="setname"/><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block s="reportVariadicSum"><list><block s="reportDifference"><block var="height"/><block var="level"/></block><block var="upperOffset"/><l>20</l></list></block><custom-block s="costume of %s"><block var="target"/></custom-block></list></block></block></script></block></script></block-definition><block-definition s="MathPad Example: vektor addition" type="command" category="2. Math tools" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as a MathPad width: %n height: %n %br color: %txt with close-button %b left? %b size: %n"><l>theStage</l><l>400</l><l>300</l><l>lightGray</l><l><bool>true</bool></l><l><bool>true</bool></l><l>15</l></custom-block><custom-block s="plot %s %l color: %s on MathPad %txt %br Change startpoint? %b"><l>vector</l><custom-block s="linear operation %s %s %s"><custom-block s="vector %mult%n"><list><l>3</l><l>4</l><l>0</l></list></custom-block><l>+</l><custom-block s="vector %mult%n"><list><l>-5</l><l>0</l><l>4</l></list></custom-block></custom-block><l>red</l><l>theStage</l><l><bool>false</bool></l></custom-block><custom-block s="plot %s %l color: %s on MathPad %txt %br Change startpoint? %b"><l>vector</l><custom-block s="vector %mult%n"><list><l>3</l><l>4</l><l>0</l></list></custom-block><l>green</l><l>theStage</l><l><bool>true</bool></l></custom-block><custom-block s="plot %s %l color: %s on MathPad %txt %br Change startpoint? %b"><l>vector</l><custom-block s="vector %mult%n"><list><l>-5</l><l>0</l><l>4</l></list></custom-block><l>blue</l><l>theStage</l><l><bool>false</bool></l></custom-block></script></block-definition><block-definition s="MathPad Example: affine transformation" type="command" category="2. Math tools"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>triangle</l><l>image</l><l>sourcePoints</l><l>targetPoints</l></list></block><block s="doSetVar"><l>triangle</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>8</l><l>1</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l></list></block></list></block></block><block s="doSetVar"><l>sourcePoints</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>1</l></list></block><block s="reportNewList"><list><l>1</l><l>0</l></list></block></list></block></block><block s="doSetVar"><l>targetPoints</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>-1</l></list></block><block s="reportNewList"><list><l>-1</l><l>0</l></list></block></list></block></block><custom-block s="configure %s as a MathPad width: %n height: %n %br color: %txt with close-button %b left? %b size: %n"><l>thisSprite</l><l>500</l><l>400</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set MathPad properties lineWidth: %n onlyPoints? %b grid? %b %br dimension: %n xMin: %n xMax: %n yMin: %n yMax: %n %br zMin: %n zMax: %n startPoint: %n %n %n on %txt"><l>1</l><l><bool>false</bool></l><l><bool>true</bool></l><l>2</l><l>-10</l><l>10</l><l>-10</l><l>10</l><l>-10</l><l>10</l><l>0</l><l>0</l><l>0</l><l>thisSprite</l></custom-block><custom-block s="plot %s %l color: %s on MathPad %txt %br Change startpoint? %b"><l>object-of</l><block var="triangle"/><l>red</l><l>thisSprite</l><l><bool>false</bool></l></custom-block><block s="doSetVar"><l>image</l><custom-block s="affine transformation of %s %br by %s --&gt; %s"><block var="triangle"/><block var="sourcePoints"/><block var="targetPoints"/></custom-block></block><custom-block s="plot %s %l color: %s on MathPad %txt %br Change startpoint? %b"><l>object-of</l><block var="image"/><l>blue</l><l>thisSprite</l><l><bool>false</bool></l></custom-block></script></block-definition><block-definition s="MathPad Example: set operations" type="command" category="2. Math tools"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>set1</l><l>set2</l></list></block><block s="doSetVar"><l>set1</l><custom-block s="set of {x| %repRing }"><block s="reifyReporter"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><l></l><l>-5</l></list></block><block s="reportVariadicLessThan"><list><l></l><l>7</l></list></block></list></block></autolambda><list></list></block></custom-block></block><block s="doSetVar"><l>set2</l><custom-block s="set of {x| %repRing }"><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><l></l><l>2</l></block><l>0</l></list></block></autolambda><list></list></block></custom-block></block><custom-block s="configure %s as a MathPad width: %n height: %n %br color: %txt with close-button %b left? %b size: %n"><l>thisSprite</l><l>600</l><l>300</l><l>lightGray</l><l><bool>true</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set MathPad properties lineWidth: %n onlyPoints? %b grid? %b %br dimension: %n xMin: %n xMax: %n yMin: %n yMax: %n %br zMin: %n zMax: %n startPoint: %n %n %n on %txt"><l>1</l><l><bool>false</bool></l><l><bool>true</bool></l><l>1</l><l>-20</l><l>20</l><l>-10</l><l>10</l><l>-10</l><l>10</l><l>0</l><l>0</l><l>0</l><l>thisSprite</l></custom-block><custom-block s="plot set %l setname: %txt %br color: %s linewidth: %n level(1..5): %n on MathPad %txt %br"><block var="set1"/><l>set1: (x&gt;-5)&amp;&amp;(x&lt;7)</l><l>red</l><l>1</l><l>4</l><l>thisSprite</l></custom-block><custom-block s="plot set %l setname: %txt %br color: %s linewidth: %n level(1..5): %n on MathPad %txt %br"><block var="set2"/><l>set2: even numbers</l><l>red</l><l>2</l><l>3</l><l>thisSprite</l></custom-block><custom-block s="plot set %l setname: %txt %br color: %s linewidth: %n level(1..5): %n on MathPad %txt %br"><custom-block s="%s %s %s"><block var="set1"/><l>∩</l><block var="set2"/></custom-block><l>se1 ∩ set2</l><l>red</l><l>2</l><l>2</l><l>thisSprite</l></custom-block><custom-block s="plot set %l setname: %txt %br color: %s linewidth: %n level(1..5): %n on MathPad %txt %br"><custom-block s="%s %s %s"><block var="set1"/><l>∪</l><block var="set2"/></custom-block><l>se1 ∪ set2</l><l>red</l><l>1</l><l>1</l><l>thisSprite</l></custom-block></script></block-definition><block-definition s="rename costume %&apos;costume&apos; to %&apos;newName&apos;" type="command" category="looks"><comment x="0" y="0" w="90" collapsed="false">Changes the name of a costume.</comment><header></header><code></code><translations></translations><inputs><input type="%s">a costume</input><input type="%txt">new costume name</input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><block s="reportIsA"><block var="newName"/><l><option>text</option></l></block></list></block><script><block s="doApplyExtension"><l>SciS_renameCostume(costume,newName)</l><list><block var="costume"/><block var="newName"/></list></block></script><list><l><bool>true</bool></l><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: costume required!</l><l>rename costume</l></custom-block></script></list></block></script></block-definition><block-definition s="add key %&apos;key&apos; value %&apos;value&apos; to dictionary %&apos;dictionary&apos;" type="command" category="lists"><comment x="0" y="0" w="79.33333333333333" collapsed="false">Adds or replaces an entry in a dictionary.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="dictionary"/><l>dictionary</l></custom-block><script><block s="doIfElse"><block s="reportIsA"><block var="key"/><l><option>number</option></l></block><script><block s="doIfElse"><block s="reportListContainsItem"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="dictionary"/><l><bool>false</bool></l></custom-block><block var="key"/></block><script><block s="doReplaceInList"><block s="reportListIndex"><block var="key"/><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="dictionary"/><l><bool>true</bool></l></custom-block></block><block var="dictionary"/><block s="reportNewList"><list><block var="key"/><block var="value"/></list></block></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="key"/><block var="value"/></list></block><block var="dictionary"/></block></script></block></script><script><block s="doReplaceInList"><block var="key"/><block var="dictionary"/><block var="value"/></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dictionary required!</l><l>add key/value to dictionary</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set %&apos;varname&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="variables"><comment x="0" y="0" w="94.66666666666667" collapsed="false">Sets a local variable of a sprite to the specified value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">varname</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s">anyValue</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><block var="varname"/><block var="value"/></list></block></script></block></script></block-definition><block-definition s="get %&apos;varname&apos; of sprite %&apos;spritename&apos;" type="reporter" category="variables"><comment x="0" y="0" w="90" collapsed="false">Reports the value of a local variable.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">varname</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="spritename"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="spritename"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="spritename"/></block></block></block></block><block s="doIf"><custom-block s="is variable %s in the scope of %s ?"><block var="varname"/><block var="target"/></custom-block><script><block s="doReport"><block s="reportAttributeOf"><block var="varname"/><block var="target"/></block></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: variable don&apos;t exist.</l><l>get ... of sprite</l></custom-block></script></block></script></block-definition><block-definition s="value of key %&apos;key&apos; in dictionary %&apos;dictionary&apos;" type="reporter" category="lists"><comment x="0" y="0" w="95.33333333333333" collapsed="false">Reports the value assigned to the key.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="dictionary"/><l>dictionary</l></custom-block><script><block s="doIfElse"><block s="reportIsA"><block var="key"/><l><option>number</option></l></block><script><block s="doIfElse"><block s="reportListContainsItem"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="dictionary"/><l><bool>false</bool></l></custom-block><block var="key"/></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportListIndex"><block var="key"/><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="dictionary"/><l><bool>true</bool></l></custom-block></block><block var="dictionary"/></block></block></block></script><script><block s="doReport"><l></l></block></script></block></script><script><block s="doReport"><block s="reportListItem"><block var="key"/><block var="dictionary"/></block></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dictionary required!</l><l>value of key in dictionary</l></custom-block></script></block></script></block></script></block-definition><block-definition s="replace value of key %&apos;key&apos; in dictionary %&apos;dictionary&apos; with %&apos;new value&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">Replaces the value assigned to the key with a new value.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="dictionary"/><l>dictionary</l></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="value of key %s in dictionary %l"><block var="key"/><block var="dictionary"/></custom-block><l></l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown key!</l><l>replace value in dictionary</l></custom-block></script><script><custom-block s="add key %s value %s to dictionary %l"><block var="key"/><block var="new value"/><block var="dictionary"/></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dictionary required!</l><l>add key/value to dictionary</l></custom-block></script></block></script></block></script></block-definition><block-definition s="remove entry of key %&apos;key&apos; in dictionary %&apos;dictionary&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">Removes the entry of a key.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="dictionary"/><l>dictionary</l></custom-block><script><block s="doIfElse"><block s="reportIsA"><block var="key"/><l><option>number</option></l></block><script><block s="doIf"><block s="reportListContainsItem"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="dictionary"/><l><bool>false</bool></l></custom-block><block var="key"/></block><script><block s="doDeleteFromList"><block s="reportListIndex"><block var="key"/><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="dictionary"/><l><bool>true</bool></l></custom-block></block><block var="dictionary"/></block></script><list></list></block></script><script><block s="doDeleteFromList"><block var="key"/><block var="dictionary"/></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dictionary required!</l><l>remove entry in dictionary</l></custom-block></script></block></script></block></script></block-definition><block-definition s="read dictionary from JSON file" type="reporter" category="lists"><comment x="0" y="0" w="98" collapsed="false">Reports the content of a selected file.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="read %s -file with filepicker"><l>JSON</l></custom-block></block></script></block-definition><block-definition s="write dictionary %&apos;dictionary&apos; to JSON file %&apos;filename&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">Stores a dictionary as a JSON file.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s">filename<options>filename&#xD;filepicker</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="dictionary"/><l>dictionary</l></custom-block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="filename"/><l>filepicker</l></list></block><script><block s="doSetVar"><l>filename</l><block s="reportListItem"><l>1</l><custom-block s="select %s with filepicker"><l>file</l></custom-block></block></block></script><list></list></block><custom-block s="write %s to %s -file %txt"><block var="dictionary"/><l>JSON</l><block var="filename"/></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dictionary required!</l><l>write dictionary</l></custom-block></script></block></script></block></script></block-definition><block-definition s="copy of costume %&apos;theCostume&apos;" type="reporter" category="looks"><comment x="0" y="0" w="143.66666666666657" collapsed="false">Reports a copy of a costume.</comment><header></header><code></code><translations></translations><inputs><input type="%s">a costume</input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="theCostume"/><l><option>costume</option></l></block><script><block s="doReport"><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="theCostume"/></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="theCostume"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="theCostume"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: costume required!</l><l>copy of costume</l></custom-block></script></block></script></block-definition><block-definition s="costume of %&apos;sprite&apos;" type="reporter" category="looks"><comment x="0" y="0" w="154.1666666666665" collapsed="false">Reports the costume of a sprite or the stage.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>costume</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><block s="reportIsA"><block var="target"/><l><option>stage</option></l></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite or stage required!</l><l>costume of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>costume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doIfElse"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><script><block s="doReport"><block var="costume"/></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="costume"/><l>0</l></list></block><script><block s="doReport"><custom-block s="new costume size: %n %n %s"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>white</l></custom-block></block></script><list></list></block><block s="doReport"><block var="costume"/></block></script></block></script></block-definition><block-definition s="show %&apos;aList&apos; as dialog" type="command" category="looks" space="true"><comment x="0" y="0" w="172.76888020833348" collapsed="false">Displays a list in a dialog window.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doApplyExtension"><l>SciS_showAsDialog(theList)</l><list><block var="aList"/></list></block></script></block-definition><block-definition s="close all open dialog windows" type="command" category="looks"><comment x="0" y="0" w="90" collapsed="false">This command closes all open dialog windows in a brutal way. ;-)</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSwitchToScene"><l><option>next</option></l><list></list></block></script><l>error</l><script></script></custom-block></script></block-definition><block-definition s="layer" type="reporter" category="looks" space="true"><comment x="0" y="0" w="90" collapsed="false">Reports the current layer of a sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_layer()</l><list></list></block></block></script></block-definition><block-definition s="set layer to %&apos;n&apos;" type="command" category="looks"><comment x="0" y="0" w="90" collapsed="false">Sets the layer of a sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">0</input></inputs><script><block s="doWarp"><script><block s="goToLayer"><l><option>back</option></l></block><block s="goBack"><block s="reportMonadic"><l><option>neg</option></l><block var="n"/></block></block></script></block></script></block-definition><block-definition s="set cursor %&apos;which&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Update: Now accepts URLs!</comment><header></header><code></code><translations></translations><inputs><input type="%s">pointer<options>auto&#xD;cell&#xD;copy&#xD;crosshair&#xD;default&#xD;grab&#xD;grabbing&#xD;help&#xD;move&#xD;not-allowed&#xD;pointer&#xD;progress&#xD;text&#xD;wait&#xD;n-resize&#xD;s-resize&#xD;e-resize&#xD;w-resize&#xD;ne-resize&#xD;se-resize&#xD;nw-resize&#xD;sw-resize</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>cur</l><l>proc</l></list><l>function setTo(val){&#xD;document.body.style.cursor = val;&#xD;top.window.document.body.style.cursor = val;&#xD;}&#xD;if (cur instanceof Costume || this.costumes.asArray().map(e=&gt;e.name).includes(cur) || cur===&apos;current&apos;){&#xD;alert("Sorry, costumes don&apos;t work very well for custom cursors at the moment.");&#xD;return;&#xD;let c = newCanvas(),ctx=c.getContext(&apos;2d&apos;);&#xD;cur=proc.reportNewCostumeStretched(cur, 100, 100);&#xD;c.width = cur.width();&#xD;c.height = cur.height();&#xD;ctx.drawImage(cur.contents, 0, 0);&#xD;setTo(&apos;url("&apos;+c.toDataURL()+&apos;"), auto&apos;);&#xD;} else if (`auto&#xD;cell&#xD;copy&#xD;crosshair&#xD;default&#xD;grab&#xD;grabbing&#xD;help&#xD;move&#xD;not-allowed&#xD;pointer&#xD;progress&#xD;text&#xD;wait&#xD;n-resize&#xD;s-resize&#xD;e-resize&#xD;w-resize&#xD;ne-resize&#xD;se-resize&#xD;nw-resize&#xD;sw-resize`.split(&apos;\n&apos;).includes(cur)){&#xD;setTo(cur);&#xD;}else{&#xD;setTo(&apos;url("&apos;+cur+&apos;"),auto&apos;);&#xD;}</l></block><list><block var="which"/></list></block></script></block-definition><block-definition s="is %&apos;data&apos; a %&apos;choice&apos;" type="predicate" category="operators"><comment x="0" y="0" w="212.35029354207427" collapsed="false">Test on vector, matrix, table, predicate, interval, list of intervals, set, dictionary or complex-number.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%txt" readonly="true">vector<options>vector&#xD;row-vector&#xD;column-vector&#xD;matrix&#xD;table&#xD;dictionary&#xD;complex-number&#xD;complex-number-Cartesian-form&#xD;complex-number-polar-form&#xD;set&#xD;comparisonOperator&#xD;interval&#xD;listOfIntervals&#xD;numericalList</options></input></inputs><script><block s="doDeclareVariables"><list><l>width</l><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>comparisonOperator</l></list></block><script><block s="doReport"><block s="reportListContainsItem"><block s="reportNewList"><list><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportNot"><l/></block></autolambda><list></list></block></list></block><block var="data"/></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>vector</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doIf"><custom-block s="is %s a %txt"><block var="data"/><l>row-vector</l></custom-block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><custom-block s="is %s a %txt"><block var="data"/><l>column-vector</l></custom-block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>row-vector</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_isType(data,selection)</l><list><block var="data"/><l>row-vector</l></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>column-vector</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_isType(data,selection)</l><list><block var="data"/><l>column-vector</l></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>matrix</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_isType(data,selection)</l><list><block var="data"/><l>matrix</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>table</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_isType(data,selection)</l><list><block var="data"/><l>table</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>dictionary</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportNewList"><list><l>key</l><l>value</l></list></block></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicAnd"><list><custom-block s="is %s a %txt"><block var="data"/><l>table</l></custom-block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>2</l></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>interval</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>4</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>4</l><block var="data"/></block><l><option>number</option></l></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportListItem"><l>4</l><block var="data"/></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="data"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="data"/></block><l>&lt;</l></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="data"/></block><l>≤</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><block var="data"/></block><l>&lt;</l></list></block></list></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>complex-number</l></list></block><script><block s="doReport"><block s="reportVariadicOr"><list><custom-block s="is %s a %txt"><block var="data"/><l>complex-number-Cartesian-form</l></custom-block><custom-block s="is %s a %txt"><block var="data"/><l>complex-number-polar-form</l></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>complex-number-Cartesian-form</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>3</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><l>cnC</l></list></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>complex-number-polar-form</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>3</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><l>cnP</l></list></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>number</option></l></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>listOfIntervals</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doForEach"><l>item</l><block var="data"/><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="item"/><l>interval</l></custom-block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>set</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="data"/></block><l>set</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>5</l></list></block></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="data"/></block><l><option>Boolean</option></l></block><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="data"/></block><l><option>list</option></l></block><custom-block s="is %s a %txt"><block s="reportListItem"><l>4</l><block var="data"/></block><l>listOfIntervals</l></custom-block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>5</l><block var="data"/></block><l></l></list></block><block s="reportIsA"><block s="reportListItem"><l>5</l><block var="data"/></block><l><option>predicate</option></l></block></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>numericalList</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportIsA"><l></l><l><option>number</option></l></block></block></autolambda><list></list></block><block var="data"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="random" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportRandom"><l>0</l><l>1</l></block><l>0</l></list></block></block></script></block-definition><block-definition s="𝝅" type="reporter" category="operators"><comment x="0" y="0" w="65.33333333333333" collapsed="false">Reports Pi.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="e" type="reporter" category="operators"><comment x="0" y="0" w="122.33333333333326" collapsed="false">Reports Euler&apos;s number.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>e^</option></l><l>1</l></block></block></script></block-definition><block-definition s="%&apos;n&apos; !" type="reporter" category="operators"><comment x="0" y="0" w="190.66666666666666" collapsed="false">The factorial function, to make very large numbers, to demo bignums.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><block s="reportVariadicSum"><list><l>0</l><l>1</l></list></block><block s="reportVariadicProduct"><list><block var="n"/><custom-block s="%n !"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></list></block></block></block></script></block-definition><block-definition s="( %&apos;n&apos; ) $nl ( %&apos;k&apos; )" type="reporter" category="operators"><comment x="0" y="0" w="93.3589743589743" collapsed="false">Reports a binomial coefficient.</comment><header></header><code></code><translations></translations><inputs><input type="%n">5</input><input type="%n">3</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportVariadicProduct"><list><l>2</l><block var="k"/></list></block><block var="n"/></list></block><script><block s="doSetVar"><l>k</l><block s="reportDifference"><block var="n"/><block var="k"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="k"/><l>1</l></list></block><script><block s="doReport"><l>1</l></block></script><list></list></block><block s="doSetVar"><l>result</l><l>1</l></block><block s="doSetVar"><l>n</l><block s="reportVariadicSum"><list><block var="n"/><l>1</l></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="k"/><script><block s="doSetVar"><l>result</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="result"/><block s="reportDifference"><block var="n"/><block var="i"/></block></list></block><block var="i"/></block></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="round %&apos;x&apos; to %&apos;n&apos; digits" type="reporter" category="operators"><comment x="0" y="0" w="213.66666666666674" collapsed="false">Rounds a value to a specific number of digits.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3.1415</input><input type="%n">2</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportRound"><block s="reportVariadicProduct"><list><block var="x"/><block s="reportMonadic"><l><option>10^</option></l><block var="n"/></block></list></block></block><block s="reportMonadic"><l><option>10^</option></l><block var="n"/></block></block></block></script></block-definition><block-definition s="replace %&apos;choice&apos; %&apos;substring&apos; with %&apos;replacement&apos; in %&apos;aString&apos;" type="reporter" category="operators"><comment x="0" y="0" w="277.5" collapsed="false">Reports a string with replacement.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">all<options>all&#xD;first</options></input><input type="%txt">this</input><input type="%txt">that</input><input type="%txt">this string</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_replace(substring,replacement,aString,choice)</l><list><block var="substring"/><block var="replacement"/><block var="aString"/><block var="choice"/></list></block></block></script></block-definition><block-definition s="index of %&apos;substring&apos; in %&apos;aString&apos;" type="reporter" category="operators"><comment x="0" y="0" w="119.2307692307692" collapsed="false">Reports the index of first appearance of substring in string.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">ring</input><input type="%txt">thisString</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="substring"/><block var="aString"/></list></block></block></script></block-definition><block-definition s="root of %&apos;term&apos; $nl starting at %&apos;x0&apos; by Newton´s method" type="reporter" category="2. Math tools" space="true"><comment x="0" y="0" w="117.50000000000014" collapsed="false">Returns a root of an equation calculated with Newton&apos;s method.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>epsilon</l><l>i</l><l>f</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified term required!</l><l>root of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>epsilon</l><l>0.00001</l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doIfElse"><block s="reportIsA"><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block><l><option>number</option></l></block><script><block s="doSetVar"><l>f</l><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="i"/><l>1000</l></list></block><block s="reportVariadicLessThan"><list><block s="reportMonadic"><l><option>abs</option></l><block var="f"/></block><block s="reportVariadicProduct"><list><block var="epsilon"/><block var="epsilon"/></list></block></list></block></list></block><script><block s="doChangeVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="f"/><block var="epsilon"/></list></block><block s="reportDifference"><block var="f"/><block s="evaluate"><block var="term"/><list><block s="reportVariadicSum"><list><block var="x0"/><block var="epsilon"/></list></block></list></block></block></block></block><block s="doIfElse"><block s="reportIsA"><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block><l><option>number</option></l></block><script><block s="doSetVar"><l>f</l><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: function not defined for this value</l><l>root of ...</l></custom-block></script></block></script></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="i"/><l>1000</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no root found!</l><l>root of ...</l></custom-block></script><script><block s="doReport"><block var="x0"/></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: function not defined for this value</l><l>root of ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="sequence element %&apos;term&apos; ( %&apos;n&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="92.66666666666667" collapsed="false">Reports an element of a sequence.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">1</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified term required!</l><l>sequence element ...</l></custom-block></script><list></list></block><block s="doReport"><block s="evaluate"><block var="term"/><list><block var="n"/></list></block></block></script></block></script></block-definition><block-definition s="first %&apos;n&apos; elements of sequence %&apos;term&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="123.33333333333334" collapsed="false">Returns a list of the first n elements of a sequence.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%repRing">ringified term</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified term required!</l><l>first n elements of sequence...</l></custom-block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="term"/><list><l></l></list></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></block></block></script></block></script></block-definition><block-definition s="sequence of secant slopes for %&apos;term&apos; $nl at %&apos;x0&apos; calculated with sequence %&apos;sequence&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="164.33333333333331" collapsed="false">Returns a list of secant slopes calculated with the given sequence.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">2</input><input type="%s">1/n</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified term required!</l><l>sequence of secant slopes</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sequence"/><l>1/n</l></list></block><script><block s="doSetVar"><l>sequence</l><custom-block s="first %n elements of sequence %repRing"><l>100</l><block s="reifyReporter"><autolambda><block s="reportQuotient"><l>1</l><l></l></block></autolambda><list></list></block></custom-block></block></script><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="sequence"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list of sequence elements required!</l><l>sequence of secant slopes</l></custom-block></script><list></list></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportDifference"><block s="evaluate"><block var="term"/><list><block s="reportVariadicSum"><list><block var="x0"/><block var="element"/></list></block></list></block><block s="evaluate"><block var="term"/><list><block var="x0"/></list></block></block><block var="element"/></block></autolambda><list><l>element</l></list></block><block var="sequence"/></block></block></script></block></script></block-definition><block-definition s="derivative %&apos;term&apos; ´( %&apos;x&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="126.49999999999999" collapsed="false">Reports the secant slope &quot;nearby&quot; the given point.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified term</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>epsilon</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified term required!</l><l>derivative ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>epsilon</l><l>0.00001</l></block><block s="doReport"><block s="reportQuotient"><block s="reportDifference"><block s="evaluate"><block var="term"/><list><block s="reportVariadicSum"><list><block var="x"/><block var="epsilon"/></list></block></list></block><block s="evaluate"><block var="term"/><list><block var="x"/></list></block></block><block var="epsilon"/></block></block></script></block></script></block-definition><block-definition s="%&apos;n&apos; $nl ∑ %&apos;term&apos; $nl %&apos;i&apos; = %&apos;i0&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="106.6666666666667" collapsed="false">Returns a finite sum.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%repRing">ringified term</input><input type="%upvar"></input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified term required!</l><l>∑ of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="term"/><block s="reifyReporter"><script></script><list></list></block></list></block><script><block s="doSetVar"><l>term</l><block s="reifyReporter"><autolambda><block s="reportDifference"><l>0</l><l>0</l></block></autolambda><list></list></block></block></script><list></list></block><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>i</l><block var="i0"/></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="n"/></list></block><script><block s="doSetVar"><l>result</l><block s="reportVariadicSum"><list><block var="result"/><block s="evaluate"><block var="term"/><list><block var="i"/></list></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%&apos;b&apos; $nl ∫ %&apos;term&apos; dx $nl %&apos;a&apos; $nl calculated with %&apos;n&apos; intervals" type="reporter" category="2. Math tools"><comment x="0" y="0" w="160.50000000000003" collapsed="false">Returns the integral of a term calculated with n trapezoids.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%repRing">ringified term</input><input type="%n">1</input><input type="%n">100</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>dx</l><l>x1</l><l>x2</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="term"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified term required!</l><l>∫...dx</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block><script><block s="doReport"><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: n should be a positive value!</l><l>∫...dx</l></custom-block></script><list></list></block><block s="doSetVar"><l>dx</l><block s="reportQuotient"><block s="reportDifference"><block var="b"/><block var="a"/></block><block var="n"/></block></block><block s="doSetVar"><l>x1</l><block var="a"/></block><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>x2</l><block s="reportVariadicSum"><list><block var="x1"/><block var="dx"/></list></block></block><block s="doSetVar"><l>result</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="evaluate"><block var="term"/><list><block var="x2"/></list></block><block s="evaluate"><block var="term"/><list><block var="x1"/></list></block></list></block><l>2</l></block><block var="dx"/></list></block></block><block s="doSetVar"><l>x1</l><block var="x2"/></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="reportNumbers"><l>1</l><block var="n"/></block></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block></script></block-definition><block-definition s="%&apos;function&apos; of %&apos;data&apos; sampled with %&apos;f&apos; Hz" type="reporter" category="2. Math tools"><comment x="0" y="0" w="208.99999999999991" collapsed="false">Reports either &#xD;- data Fourier transformed to frequency-space&#xD;- &quot;raw&quot; FFT (Fast Forier Transformation) data formatted as SciSnap! complex numbers&#xD;- or iFFT real data</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">frequency_spectrum<options>frequency_spectrum&#xD;complex_FFTdata&#xD;iFFT_of_FFTdata</options></input><input type="%l"></input><input type="%n">100</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>1</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no data available!</l><l>... sampled with ... Hz</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="function"/><l>iFFT_of_FFTdata</l></list></block><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: complex data required!</l><l>... sampled with ... Hz</l></custom-block></script><list></list></block></script><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: vector required!</l><l>... sampled with ... Hz</l></custom-block></script><list></list></block></script></block><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>SciS_FFTops(data,freq,choice)</l><list></list></block></autolambda><list></list></block><list><custom-block s="copy of %s"><block var="data"/></custom-block><block var="f"/><block var="function"/></list></block></block></script></block></script></block-definition><block-definition s="b(N= %&apos;N&apos; p= %&apos;p&apos; k= %&apos;k&apos; )" type="reporter" category="2. Math tools" space="true"><comment x="0" y="0" w="208.46899739583327" collapsed="false">Reports coefficient of the binomial distribution b(N,p,k)=(N choose k)*p^k(1-p)^(N-k)</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">0.1</input><input type="%n">2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="k"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="k"/><block var="N"/></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="p"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="p"/><l>1</l></list></block></list></block></list></block><script><block s="doReport"><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="k"/></custom-block><block s="reportVariadicProduct"><list><block s="reportPower"><block var="p"/><block var="k"/></block><block s="reportPower"><block s="reportDifference"><l>1</l><block var="p"/></block><block s="reportDifference"><block var="N"/><block var="k"/></block></block></list></block></list></block></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong parameter!</l><l>b(...)</l></custom-block></script></block></script></block-definition><block-definition s="B x= %&apos;x&apos; (N= %&apos;N&apos; p= %&apos;p&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="189.1666666666667" collapsed="false">Reports binomial distribution B(N,p,k).</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input><input type="%n">0.1</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>k</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="x"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block var="N"/></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="p"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="p"/><l>1</l></list></block></list></block></list></block><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>k</l><l>0</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="k"/><block var="x"/></list></block><script><block s="doChangeVar"><l>result</l><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="k"/></custom-block><block s="reportVariadicProduct"><list><block s="reportPower"><block var="p"/><block var="k"/></block><block s="reportPower"><block s="reportDifference"><l>1</l><block var="p"/></block><block s="reportDifference"><block var="N"/><block var="k"/></block></block></list></block></list></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong parameter!</l><l>B(...)</l></custom-block></script></block></script></block-definition><block-definition s="h(N= %&apos;N&apos; M= %&apos;M&apos; n= %&apos;n&apos; k= %&apos;k&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="128.63566406249993" collapsed="false">Reports coefficient of the hypergeometric distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">3</input><input type="%n">5</input><input type="%n">2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="M"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="M"/><block var="N"/></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="n"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><block var="N"/></list></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="k"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="k"/><block var="n"/></list></block></list></block></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="M"/><block var="k"/></custom-block><custom-block s="( %n ) %br ( %n )"><block s="reportDifference"><block var="N"/><block var="M"/></block><block s="reportDifference"><block var="n"/><block var="k"/></block></custom-block></list></block><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="n"/></custom-block></block></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong parameter!</l><l>h(...)</l></custom-block></script></block></script></block-definition><block-definition s="H x= %&apos;x&apos; (N= %&apos;N&apos; M= %&apos;M&apos; n= %&apos;n&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="81.50000000000001" collapsed="false">Reports hypergeometric distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input><input type="%n">3</input><input type="%n">5</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>k</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="x"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block var="N"/></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="M"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="M"/><block var="N"/></list></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="n"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><block var="N"/></list></block></list></block></list></block><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>k</l><l>0</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="k"/><block var="x"/></list></block><script><block s="doChangeVar"><l>result</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="( %n ) %br ( %n )"><block var="M"/><block var="k"/></custom-block><custom-block s="( %n ) %br ( %n )"><block s="reportDifference"><block var="N"/><block var="M"/></block><block s="reportDifference"><block var="n"/><block var="k"/></block></custom-block></list></block><custom-block s="( %n ) %br ( %n )"><block var="N"/><block var="n"/></custom-block></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong parameter!</l><l>H(...)</l></custom-block></script></block></script></block-definition><block-definition s="p(θ= %&apos;theta&apos; k= %&apos;k&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="119.63566406249996" collapsed="false">Reports coefficient of the Poisson distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">0.05</input><input type="%n">2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="theta"/></list></block><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="k"/></list></block></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportPower"><block var="theta"/><block var="k"/></block><block s="reportMonadic"><l><option>e^</option></l><block s="reportMonadic"><l><option>neg</option></l><block var="theta"/></block></block></list></block><custom-block s="%n !"><block var="k"/></custom-block></block></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong parameter!</l><l>p(...)</l></custom-block></script></block></script></block-definition><block-definition s="P x= %&apos;x&apos; p(θ= %&apos;theta&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="76.16666666666667" collapsed="false">Reports Poisson distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">0.05</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>k</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="x"/></list></block><block s="reportVariadicLessThanOrEquals"><list><l>0</l><block var="theta"/></list></block></list></block><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doSetVar"><l>k</l><l>0</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="k"/><block var="x"/></list></block><script><block s="doChangeVar"><l>result</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportPower"><block var="theta"/><block var="k"/></block><block s="reportMonadic"><l><option>e^</option></l><block s="reportMonadic"><l><option>neg</option></l><block var="theta"/></block></block></list></block><custom-block s="%n !"><block var="k"/></custom-block></block></block><block s="doChangeVar"><l>k</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong parameter!</l><l>P(...)</l></custom-block></script></block></script></block-definition><block-definition s="pareto (xmin= %&apos;xmin&apos; k= %&apos;k&apos; x= %&apos;x&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="115.63566406250024" collapsed="false">Reports coefficient of the Pareto distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">3</input><input type="%n">2</input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="x"/><block var="xmin"/></list></block><script><block s="doReport"><l>0</l></block></script><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="k"/><block s="reportPower"><block var="xmin"/><block var="k"/></block></list></block><block s="reportPower"><block var="x"/><block s="reportVariadicSum"><list><block var="k"/><l>1</l></list></block></block></block></block></script></block></script></block-definition><block-definition s="n (x= %&apos;x&apos; μ= %&apos;mue&apos; σ= %&apos;sigma&apos; )" type="reporter" category="2. Math tools"><comment x="0" y="0" w="110.16666666666679" collapsed="false">Reports coefficient of the normal distribution.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">0</input><input type="%n">1</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportMonadic"><l><option>e^</option></l><block s="reportVariadicProduct"><list><l>-0.5</l><block s="reportPower"><block s="reportQuotient"><block s="reportDifference"><block var="x"/><block var="mue"/></block><block var="sigma"/></block><l>2</l></block></list></block></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicProduct"><list><l>2</l><custom-block s="𝝅"></custom-block></list></block></block><block var="sigma"/></list></block></block></block></script></block-definition><block-definition s="𝜙" type="reporter" category="2. Math tools" space="true"><comment x="0" y="0" w="90" collapsed="false">The empty set.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="set of { %mult%s }"><list></list></custom-block></block></script></block-definition><block-definition s="|R" type="reporter" category="2. Math tools"><comment x="0" y="0" w="148.07692307692318" collapsed="false">The real (computer-) numbers.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="set of {x| %n %txt x %s %s }"><l>-Infinity</l><l>≤</l><l>≤</l><l>Infinity</l></custom-block></block></script></block-definition><block-definition s="set of { %&apos;elements&apos; }" type="reporter" category="2. Math tools"><comment x="0" y="0" w="192.6738932291671" collapsed="false">Returns a set by listing the elements, predicates, and defined intervals. The three sections are treated as a disjunction: Elements belong to the set if they are enumerated, lie within intervals, or satisfy the predicate. If possible, they are defined by intervals.&#xD;The sequence is: &lt;set&gt;&lt;isNumerical&gt;&lt;list of elements&gt;&lt;list of intervals&gt;&lt;predicate&gt;.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list><l>set</l><l></l><custom-block s="%s without duplicates"><block var="elements"/></custom-block><block s="reportNewList"><list></list></block><l></l></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="result"/></block></block></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block><l><option>number</option></l></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block><l>≤</l><l>≤</l><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block></list></block><block s="reportListItem"><l>4</l><block var="result"/></block></block><block s="doDeleteFromList"><block var="i"/><block s="reportListItem"><l>3</l><block var="result"/></block></block></script><script><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doReplaceInList"><l>2</l><block var="result"/><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="result"/></block></block><l>0</l></list></block></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="set of {x| %&apos;leftLimit&apos; %&apos;op1&apos; x %&apos;op2&apos; %&apos;rightLimit&apos; }" type="reporter" category="2. Math tools"><comment x="0" y="0" w="200.8405598958334" collapsed="false">Creation of a set by one numerical interval. &#xD;Predicates and elements should be defined by other blocks. &#xD;Returns a set by listing the elements, predicates, and defined intervals. The three sections are treated as a disjunction: Elements belong to the set if they are enumerated, lie within intervals, or satisfy the predicate. If possible, they are defined by intervals.&#xD;The sequence is: &lt;set&gt;&lt;isNumerical&gt;&lt;list of elements&gt;&lt;list of intervals&gt;&lt;predicate&gt;.</comment><header></header><code></code><translations></translations><inputs><input type="%n">-Infinity<options>-Infinity</options></input><input type="%txt" readonly="true">≤<options>≤&#xD;&lt;</options></input><input type="%s" readonly="true">≤<options>≤&#xD;&lt;</options></input><input type="%s">Infinity<options>Infinity</options></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="leftLimit"/><l><option>number</option></l></block><block s="reportIsA"><block var="rightLimit"/><l><option>number</option></l></block></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="leftLimit"/><block var="rightLimit"/></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: that defines no interval!</l><l>set of {x...}</l></custom-block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><l>set</l><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportNewList"><list></list></block><block s="reportNewList"><list><block s="reportNewList"><list><block var="leftLimit"/><block var="op1"/><block var="op2"/><block var="rightLimit"/></list></block></list></block><l></l></list></block></block></script></block></script></block-definition><block-definition s="set of {x| %&apos;predicate&apos; }" type="reporter" category="2. Math tools"><comment x="0" y="0" w="213.72311197916727" collapsed="false">Creation of a set by a predicate. &#xD;Intervals and elements should be defined by other blocks. If possible the predicate is translated to a list of intervals. &#xD;Returns a set by listing the elements, predicates, and defined intervals. The three sections are treated as a disjunction: Elements belong to the set if they are enumerated, lie within intervals, or satisfy the predicate. If possible, they are defined by intervals.&#xD;The sequence is: &lt;set&gt;&lt;isNumerical&gt;&lt;list of elements&gt;&lt;list of intervals&gt;&lt;predicate&gt;.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing">ringified predicate</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>predicateTree</l></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="predicate"/><l><option>predicate</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: parameter is not a predicate!</l><l>set of ... predicate</l></custom-block></script><list></list></block><block s="doSetVar"><l>predicateTree</l><block s="reportTextSplit"><block var="predicate"/><l><option>blocks</option></l></block></block><block s="doIfElse"><custom-block s="is predicate tree %l translateable to intervals?"><block var="predicateTree"/></custom-block><script><block s="doReport"><block s="reportNewList"><list><l>set</l><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportNewList"><list></list></block><custom-block s="predicate tree %l $arrowRightThin list of intervals"><block var="predicateTree"/></custom-block><l></l></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><l>set</l><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportNewList"><list></list></block><block s="reportNewList"><list></list></block><block var="predicate"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="is %&apos;element&apos; ε %&apos;set&apos; ?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="124.90476190476211" collapsed="false">Reports whether &quot;element&quot; is element of &quot;set&quot;.</comment><header></header><code></code><translations></translations><inputs><input type="%s">element</input><input type="%s">set</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="is %s numerical?"><block var="set"/></custom-block><custom-block s="is %s a %txt"><block var="element"/><l>complex-number</l></custom-block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="%s of a %s"><l>imaginary-part</l><block var="element"/></custom-block><l>0</l></list></block><script><block s="doSetVar"><l>element</l><custom-block s="%s of a %s"><l>real-part</l><block var="element"/></custom-block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><list></list></block></script></block><block s="doIfElse"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_isElementOfSet(set,element,proc)</l><list><block var="set"/><block var="element"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: set required!</l><l>is ... ε ...</l></custom-block></script></block></script></block-definition><block-definition s="is %&apos;set1&apos; ⊆ %&apos;set2&apos; ?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="108.57142857142861" collapsed="false">Is set1 subset of set2?</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>notCoveredIntervals</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: first parameter is not a set!</l><l>is set1 ⊆ set2</l></custom-block></script><list></list><comment w="107.14285714285722" collapsed="false">are these two sets?</comment></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: second parameter is not a set!</l><l>is set1 ⊆ set2</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>5</l><block var="set1"/></block><l></l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: question cann&apos;t be answered yet for unreducible predicates in set1!</l><l>is set1 ⊆ set2</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>5</l><block var="set2"/></block><l></l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: question cann&apos;t be answered yet for unreducible predicates in set2!</l><l>is set1 ⊆ set2</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>5</l><block var="set2"/></block><l></l></list></block><script><block s="doSetVar"><l>notCoveredIntervals</l><custom-block s="intervals %l not covered by predicate %s"><block s="reportListItem"><l>4</l><block var="set1"/></block><block s="reportListItem"><l>5</l><block var="set2"/></block></custom-block></block></script><script><block s="doSetVar"><l>notCoveredIntervals</l><block s="reportListItem"><l>4</l><block var="set1"/></block></block></script></block><block s="doForEach"><l>interval</l><block var="notCoveredIntervals"/><script><block s="doIf"><block s="reportNot"><custom-block s="is interval %l subinterval of interval list %l ?"><block var="interval"/><block s="reportListItem"><l>4</l><block var="set2"/></block></custom-block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doForEach"><l>element</l><block s="reportListItem"><l>3</l><block var="set1"/></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><custom-block s="evaluate predicate %s with %s"><block s="reportListItem"><l>5</l><block var="set2"/></block><block var="element"/></custom-block><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set2"/></block><block var="element"/></custom-block><block s="reportListContainsItem"><block s="reportListItem"><l>3</l><block var="set2"/></block><block var="element"/></block></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block><comment w="144.2857142857143" collapsed="false">item is not element of set2</comment></block></script><list></list></block></script><comment w="116.16666666666674" collapsed="false">Compare elements</comment></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="is %&apos;set1&apos; = %&apos;set2&apos; ?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="142.3076923076923" collapsed="false">Are theses two sets equal?</comment><header></header><code></code><translations></translations><inputs><input type="%s">set1</input><input type="%s">set2</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set1"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: first parameter is not a set!</l><l>ist set1 = set2</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set2"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: second parameter is not a set!</l><l>ist set1 = set2</l></custom-block></script><list></list></block><block s="doReport"><block s="reportVariadicAnd"><list><custom-block s="is %s ⊆ %s ?"><block var="set1"/><block var="set2"/></custom-block><custom-block s="is %s ⊆ %s ?"><block var="set2"/><block var="set1"/></custom-block></list></block></block></script></block></script></block-definition><block-definition s="%&apos;n&apos; elements ε |N of %&apos;set&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="187.91208791208803" collapsed="false">Reports up to n elements of a set. Numers are natural numbers smaller than maxSetValue in SciSnap!-properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%s">set</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: second parameter is not a set!</l><l>n elements of set</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportListItem"><l>3</l><block var="set"/></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="set"/></block></block><l>0</l></list></block><script><block s="doSetVar"><l>i</l><l>0</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="i"/><custom-block s="SciSnap! global property %s"><l>maxSetValue</l></custom-block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>2</l><block var="n"/></list></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="set"/></block></block></list></block></list></block></list></block><script><block s="doIf"><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="set"/></block><block var="i"/></custom-block><script><block s="doAddToList"><block var="i"/><block var="result"/></block></script><list></list></block><block s="doIf"><custom-block s="evaluate predicate %s with %s"><block s="reportListItem"><l>5</l><block var="set"/></block><block var="i"/></custom-block><script><block s="doAddToList"><block var="i"/><block var="result"/></block></script><list></list></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="135.71428571428572" collapsed="false">maxSetValue should be close to infinity ;-)</comment></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></list></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="result"/></block><comment w="57.14285714285713" collapsed="false">clean up</comment></block><block s="doUntil"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><block var="n"/></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="result"/></block></script></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="result"/></block><l><option>list</option></l></block><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></list></block></block></script><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></list></block></block></script></block></script></block></script></block-definition><block-definition s="section %&apos;choice&apos; of %&apos;set&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="200.38095238095238" collapsed="false">Reports the enumerated elements and numbers written as intervals of the set.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">elements<options>elements&#xD;intervals&#xD;predicate</options></input><input type="%s">this set</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: parameter is not a set!</l><l>... of set</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>elements</l></list></block><script><block s="doReport"><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>3</l><block var="set"/></block><custom-block s="numbers in interval list %l"><block s="reportListItem"><l>4</l><block var="set"/></block></custom-block></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="choice"/><l>intervals</l></list></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="set"/></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>predicate</l></list></block><script><block s="doReport"><block s="reportListItem"><l>5</l><block var="set"/></block></block></script><l><bool>true</bool></l><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong option!</l><l>... of set</l></custom-block></script></list></block></script></block></script></block-definition><block-definition s="%&apos;type&apos; edge of interval %&apos;interval&apos;" type="reporter" category="2. Math tools"><comment x="0" y="0" w="131.5" collapsed="false">Returns the value of the left or right edge of an interval.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">left<options>left&#xD;right</options></input><input type="%s"></input></inputs><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="interval"/><l>interval</l></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>left</l></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="interval"/></block></block></script><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="interval"/></block></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: interval missing!</l><l>left edge of interval</l></custom-block></script></block></script></block-definition><block-definition s="element %&apos;element&apos; $arrowRightOutline text" type="reporter" category="2. Math tools"><comment x="0" y="0" w="138.24542124542145" collapsed="false">Reports simple types, sets and lists as string.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>is first element</l><l>elements</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>number</option></l></block><script><block s="doReport"><block s="reportJoinWords"><list><l></l><block var="element"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>Boolean</option></l></block><script><block s="doIfElse"><block var="element"/><script><block s="doReport"><l>true</l></block></script><script><block s="doReport"><l>false</l></block></script></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>text</option></l></block><script><block s="doReport"><block var="element"/></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="element"/><l><option>list</option></l></block><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="element"/><l>set</l></custom-block><script><block s="doSetVar"><l>result</l><l>{</l></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>elements</l><block s="reportListItem"><l>3</l><block var="element"/></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>4</l><block var="element"/></block></block><l>0</l></list></block><script><block s="doSetVar"><l>i</l><l>0</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="i"/><custom-block s="SciSnap! global property %s"><l>maxSetValue</l></custom-block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="elements"/></block><block s="reportVariadicSum"><list><l>40</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="element"/></block></block></list></block></list></block></list></block><script><block s="doIf"><custom-block s="evaluate intervals %l with %s"><block s="reportListItem"><l>4</l><block var="element"/></block><block var="i"/></custom-block><script><block s="doAddToList"><block var="i"/><block var="elements"/></block></script><list></list></block><block s="doIf"><custom-block s="evaluate predicate %s with %s"><block s="reportListItem"><l>5</l><block var="element"/></block><block var="i"/></custom-block><script><block s="doAddToList"><block var="i"/><block var="result"/></block></script><list></list></block><block s="doChangeVar"><l>i</l><l>1</l></block></script><comment w="135.71428571428572" collapsed="false">maxSetValue should be close to infinity ;-)</comment></block></script><list></list></block><block s="doSetVar"><l>elements</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></list></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="elements"/></block></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="elements"/></block><l>20</l></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="elements"/></block></script></block><block s="doForEach"><l>item</l><block var="elements"/><script><block s="doIfElse"><block var="is first element"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>,</l><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block></script></block></script></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="elements"/></block><l>18</l></list></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>,...}</l></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>}</l></list></block></block></script></block></script><script><block s="doSetVar"><l>result</l><l>[</l></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="element"/></block><l>20</l></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="element"/></block></script></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>item</l><block var="element"/><script><block s="doIfElse"><block var="is first element"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block><block s="doSetVar"><l>is first element</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>,</l><custom-block s="element %s $arrowRightOutline text"><block var="item"/></custom-block></list></block></block></script></block></script></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="element"/></block><l>18</l></list></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>,...]</l></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l>]</l></list></block></block></script></block></script></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no simple type!</l><l>elements --&gt; text</l></custom-block></script></block></script></block-definition><block-definition s="text %&apos;text&apos; $arrowRightOutline elements" type="reporter" category="2. Math tools"><comment x="0" y="0" w="124.00000000000004" collapsed="false">Converts a string to a list of elements.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">1,2,[3,4],{6,7,8..12}</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>inputlist</l><l>element</l><l>substring</l><l>i</l><l>element1</l><l>element2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>text</l><block s="reportTextSplit"><block var="text"/><l>,</l></block></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block><l>1</l></list></block><script><block s="doSetVar"><l>element</l><custom-block s="replace %txt %txt with %txt in %txt"><l>all</l><l> </l><l></l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="element"/></block><l>0</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="element"/><l><option>number</option></l><comment w="90" collapsed="false">find numbers</comment></block><script><block s="doAddToList"><block var="element"/><block var="result"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="element"/><l>true</l></list><comment w="90" collapsed="false">find booleans</comment></block><script><block s="doAddToList"><block s="reportBoolean"><l><bool>true</bool></l></block><block var="result"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="element"/><l>false</l></list></block><script><block s="doAddToList"><block s="reportBoolean"><l><bool>false</bool></l></block><block var="result"/></block></script><script><block s="doSetVar"><l>i</l><custom-block s="index of %txt in %txt"><l>.</l><block var="element"/></custom-block><comment w="110.6666666666667" collapsed="false">find number intervals</comment></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="i"/><l>0</l></list></block><script><block s="doSetVar"><l>element1</l><custom-block s="substring of %txt from %n to %n"><block var="element"/><l>1</l><block s="reportDifference"><block var="i"/><l>1</l></block></custom-block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportLetter"><block s="reportVariadicSum"><list><block var="i"/><l>1</l></list></block><block var="element"/></block><l>.</l></list></block><script><block s="doSetVar"><l>element2</l><custom-block s="substring of %txt from %n to %n"><block var="element"/><block s="reportVariadicSum"><list><block var="i"/><l>2</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="element"/></block></custom-block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="element1"/><l><option>number</option></l></block><block s="reportIsA"><block var="element2"/><l><option>number</option></l></block></list></block><script><block s="doSetVar"><l>i</l><block var="element1"/></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="element2"/></list></block><script><block s="doAddToList"><block var="i"/><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing number close to ".."</l><l>text --&gt; elements</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing "."</l><l>text --&gt; elements</l></custom-block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="element"/></block><l>[</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block><l>0</l></list></block><script><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>]</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></list></block></list></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>]</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block><l>0</l></list></block></list></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block><l>0</l></list></block><script><block s="doSetVar"><l>i</l><custom-block s="index of %txt in %txt"><l>]</l><block var="element"/></custom-block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="i"/><l>2</l></list></block><script><block s="doAddToList"><custom-block s="text %txt $arrowRightOutline elements"><custom-block s="substring of %txt from %n to %n"><block var="element"/><l>2</l><block s="reportDifference"><block var="i"/><l>1</l></block></custom-block></custom-block><block var="result"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing "]"</l><l>text --&gt; elements</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing "]"</l><l>text --&gt; elements</l></custom-block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block var="element"/></block><l>{</l></list><comment w="90" collapsed="false">find sets</comment></block><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block><l>0</l></list></block><script><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>}</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></list></block></list></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>}</l><block s="reportListItem"><l>1</l><block var="text"/></block></custom-block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block><l>0</l></list></block></list></block><script><block s="doSetVar"><l>element</l><block s="reportJoinWords"><list><block var="element"/><l>,</l><block s="reportListItem"><l>1</l><block var="text"/></block></list></block></block><block s="doDeleteFromList"><l>1</l><block var="text"/></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block><l>0</l></list></block><script><block s="doSetVar"><l>i</l><custom-block s="index of %txt in %txt"><l>}</l><block var="element"/></custom-block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="i"/><l>2</l></list></block><script><block s="doSetVar"><l>element1</l><block s="reportNewList"><list><l>set</l><l></l><block s="reportNewList"><list></list></block><block s="reportNewList"><list></list></block><l></l></list></block></block><block s="doReplaceInList"><l>3</l><block var="element1"/><custom-block s="text %txt $arrowRightOutline elements"><custom-block s="substring of %txt from %n to %n"><block var="element"/><l>2</l><block s="reportDifference"><block var="i"/><l>1</l></block></custom-block></custom-block></block><block s="doReplaceInList"><l>2</l><block var="element1"/><custom-block s="is %s a %txt"><block s="reportListItem"><l>3</l><block var="element1"/></block><l>numericalList</l></custom-block></block><block s="doAddToList"><block var="element1"/><block var="result"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing "}"</l><l>text --&gt; elements</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing "}"</l><l>text --&gt; elements</l></custom-block></script></block></script><script><block s="doAddToList"><block var="element"/><block var="result"/><comment w="171.99999999999997" collapsed="false">other elements interpreted as string</comment></block></script></block></script><comment w="90" collapsed="false">find lists</comment></block></script></block></script></block></script></block></script></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="INFO &quot;Data tools&quot;" type="command" category="3. Data tools"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "Data tools"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks to deal with data, mainly organized as tables.&#xD;Data can be imported from different sources, or can be created in different ways. If they are imported to the SciSnap!Data-variable, some properties - i.e. min, max, numer of columns, ... -&#xD;are determined and saved in SciSnap!Properties. The access to table elements can be performed by indices or labels in the first row or column - i.e. data(name, 33).&#xD;Blocks to work with parts of tables are available - i.e. to get subsections. For tables and subsection properties like ranges, mean, covariance or correlations can be calculated.&#xD;To tables some methods of machine learning can be applied - i.e. regression line calculation, k-means-clustering with different metrics, k-next-neighbours, DBSCAN or ID3 decision tree. &#xD;You can also perform pooling operations, calculate the entropy, or use convolution kernels i.e. for image operations like edge detection.&#xD;If the content of a table is numerical, so the table is a matrix, you can use the blocks of the Math-tools.</l></custom-block></custom-block></script></block-definition><block-definition s="empty table" type="reporter" category="3. Data tools" space="true"><comment x="0" y="0" w="114.1666666666667" collapsed="false">Returns an empty table.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="copy of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="map %repRing over %l"><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block><block var="data"/></custom-block></block></script></block-definition><block-definition s="data %&apos;data&apos; as %&apos;type&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="90" collapsed="false">Type conversions</comment><header></header><code></code><translations></translations><inputs><input type="%s">table or list</input><input type="%s" readonly="true">CSV<options>DATAASTEXT&#xD;CSV&#xD;JSON</options></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_convertData(data,type)</l><list><block var="data"/><block var="type"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables or lists can be converted!</l><l>data ... as ...</l></custom-block></script></block></script></block-definition><block-definition s="%&apos;n&apos; x %&apos;m&apos; table $nl initialized with %&apos;value&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="101.66666666666679" collapsed="false">Reports a new table initialized with value.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input><input type="%s">a value</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>row</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block var="value"/><block var="row"/></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="m"/><script><block s="doAddToList"><custom-block s="copy of %s"><block var="row"/></custom-block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%&apos;n&apos; by %&apos;m&apos; table $nl with labels: %&apos;labels&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="98.5" collapsed="false">Reports a table with labeled columns.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input><input type="%mult%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>row</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportIsA"><block var="labels"/><l><option>list</option></l></block><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="n"/></list></block><script><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="labels"/></block></list></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="labels"/></block></block><l>0</l></list></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="labels"/></block><block var="row"/></block></script><script><block s="doAddToList"><l>...</l><block var="row"/></block></script></block></script><script><block s="doAddToList"><l>...</l><block var="row"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doAddToList"><block var="row"/><block var="result"/></block><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><l></l><block var="row"/></block></script></block><block s="doRepeat"><block var="m"/><script><block s="doAddToList"><custom-block s="copy of %s"><block var="row"/></custom-block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: labels required!</l><l>new ... table with labels</l></custom-block></script></block></script></block-definition><block-definition s="%&apos;n&apos; random points with ranges x: %&apos;xmin&apos; %&apos;xmax&apos; $nl y: %&apos;ymin&apos; %&apos;ymax&apos; inside of a %&apos;shape&apos;" type="reporter" category="3. Data tools" space="true"><comment x="0" y="0" w="197.04212454212438" collapsed="false">Reports randomly distributed points in the form of a rectangle, circle, or ring.</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%n">-100</input><input type="%n">100</input><input type="%n">-100</input><input type="%n">100</input><input type="%s" readonly="true">square<options>square&#xD;circle&#xD;ring</options></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>r</l><l>alpha</l><l>d</l><l>x0</l><l>y0</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="shape"/><l>square</l></list></block><script><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportRandom"><block var="xmin"/><block var="xmax"/></block><block s="reportRandom"><block var="ymin"/><block var="ymax"/></block></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="shape"/><l>circle</l></list></block><script><block s="doSetVar"><l>r</l><block s="reportQuotient"><custom-block s="%s of %s"><l>min</l><block s="reportNewList"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="ymax"/><block var="ymin"/></block></block></list></block></custom-block><l>2</l></block></block><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="xmin"/><block var="xmax"/></list></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="ymin"/><block var="ymax"/></list></block><l>2</l></block></block><block s="doRepeat"><block var="n"/><script><block s="doSetVar"><l>alpha</l><block s="reportVariadicProduct"><list><l>360</l><custom-block s="random"></custom-block></list></block></block><block s="doSetVar"><l>d</l><block s="reportVariadicProduct"><list><block var="r"/><custom-block s="random"></custom-block></list></block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>sin</option></l><block var="alpha"/></block></list></block><block var="x0"/></list></block></block><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>cos</option></l><block var="alpha"/></block></list></block><block var="y0"/></list></block></block></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="shape"/><l>ring</l></list></block><script><block s="doSetVar"><l>r</l><block s="reportQuotient"><custom-block s="%s of %s"><l>min</l><block s="reportNewList"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="ymax"/><block var="ymin"/></block></block></list></block></custom-block><l>2</l></block></block><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="xmin"/><block var="xmax"/></list></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="ymin"/><block var="ymax"/></list></block><l>2</l></block></block><block s="doRepeat"><block var="n"/><script><block s="doSetVar"><l>alpha</l><block s="reportVariadicProduct"><list><l>360</l><custom-block s="random"></custom-block></list></block></block><block s="doSetVar"><l>d</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="r"/><block s="reportVariadicSum"><list><custom-block s="random"></custom-block><l>2</l></list></block></list></block><l>3</l></block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>sin</option></l><block var="alpha"/></block></list></block><block var="x0"/></list></block></block><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="d"/><block s="reportMonadic"><l><option>cos</option></l><block var="alpha"/></block></list></block><block var="y0"/></list></block></block></list></block><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block></script></block></script></block-definition><block-definition s="%&apos;n&apos; random points near a straight line $nl x-range %&apos;xmin&apos; %&apos;xmax&apos; gradient %&apos;m&apos; $nl y-axis-intercept %&apos;b&apos; range %&apos;delta&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="182.266797129811" collapsed="false">Creates new random data in the specified ranges swaying by a straight.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">-5</input><input type="%n">5</input><input type="%n">1</input><input type="%n">0</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>data</l><l>x</l><l>y</l><l>diff</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>data</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>diff</l><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="n"/></list></block><script><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><custom-block s="random"></custom-block><block var="diff"/></list></block><block var="xmin"/></list></block></block><block s="doSetVar"><l>y</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="m"/><block var="x"/></list></block><block s="reportVariadicProduct"><list><block var="delta"/><block s="reportDifference"><custom-block s="random"></custom-block><l>0.5</l></block></list></block></list></block><block var="b"/></list></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block><block var="data"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="data"/></block></script></block></script></block-definition><block-definition s="%&apos;n&apos; random points near %&apos;f&apos; $nl between %&apos;xmin&apos; and %&apos;xmax&apos; range %&apos;range&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="130.68681318681342" collapsed="false">Generates a list of points &quot;near&quot; a given graph.</comment><header></header><code></code><translations></translations><inputs><input type="%n">20</input><input type="%repRing"></input><input type="%n">-5</input><input type="%n">5</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>data</l><l>random</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="f"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>data</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doSetVar"><l>random</l><custom-block s="random"></custom-block></block><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="xmax"/><block var="xmin"/></block><block var="random"/></list></block><block var="xmin"/></list></block></block><block s="doSetVar"><l>y</l><block s="evaluate"><block var="f"/><list><block var="x"/></list></block></block><block s="doSetVar"><l>random</l><custom-block s="random"></custom-block></block><block s="doAddToList"><block s="reportNewList"><list><block var="x"/><block s="reportVariadicSum"><list><block var="y"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="random"/><l>0.5</l></block><block var="range"/></list></block></list></block></list></block><block var="data"/></block></script></block><block s="doReport"><block var="data"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: reporter with ring required!</l><l>n random points near ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="%&apos;choice&apos; %&apos;name&apos; of %&apos;data&apos; with first item? %&apos;WithFirstItem&apos;" type="reporter" category="3. Data tools" space="true"><comment x="0" y="0" w="277.16666666666663" collapsed="false">Reports the row or column of a table identified by number or name, or reports an error message. If the the name is a number You can mark this with a  # (e.g. #123).</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">row<options>row&#xD;column</options></input><input type="%s">numberOrName<options>first&#xD;last&#xD;numberOrName</options></input><input type="%s">SciSnap!Data</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>table</l><l>result</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>table</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>table</l><block var="data"/></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="table"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>row/column of data</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>row</l></list></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>first</l></list></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>last</l></list></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown row name!</l><l>row/column of data</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: row index out of range!</l><l>row/column of data</l></custom-block></script><script><block s="doSetVar"><l>result</l><custom-block s="copy of %s"><block s="reportListItem"><block var="n"/><block var="table"/></block></custom-block></block><block s="doIf"><block s="reportNot"><block var="WithFirstItem"/></block><script><block s="doDeleteFromList"><l>1</l><block var="result"/></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>column</l></list></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>first</l></list></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>last</l></list></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>row/column of data</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: column index out of range!</l><l>row/column of data</l></custom-block></script><script><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportListItem"><block var="n"/><l/></block></block></script><list></list></block><block var="table"/></block></block><block s="doIf"><block s="reportNot"><block var="WithFirstItem"/></block><script><block s="doDeleteFromList"><l>1</l><block var="result"/></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: something wrong!</l><l>row/column of data</l></custom-block></script></block></script></block-definition><block-definition s="add %&apos;choice&apos; %&apos;newContent&apos; to %&apos;table&apos;" type="command" category="3. Data tools"><comment x="0" y="0" w="147.61904761904785" collapsed="false">Adds a row, a column, or  column headers to a table.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">row<options>row&#xD;column&#xD;column-headers</options></input><input type="%s">a list</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>tablewidth</l><l>item</l><l>target</l><l>i</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>target</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>target</l><block var="table"/></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="target"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>add ... to ..</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>row</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block><l>0</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doAddToList"><block var="newContent"/><block var="target"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="newContent"/></list></block><block var="target"/></block></script></block></script><script><block s="doSetVar"><l>tablewidth</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="target"/></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="tablewidth"/></list></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></list></block><script><block s="doAddToList"><l></l><block var="item"/></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="newContent"/></block><block var="item"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list><block var="newContent"/></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="tablewidth"/></list></block><script><block s="doAddToList"><l></l><block var="item"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doAddToList"><block var="item"/><block var="target"/></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>column</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>newContent</l><block s="reportNewList"><list><block var="newContent"/></list></block></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block><l>0</l></list></block><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><block var="i"/><block var="newContent"/></block></list></block><block var="target"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block></list></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></list></block><script><block s="doAddToList"><l></l><block s="reportListItem"><block var="i"/><block var="target"/></block></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="newContent"/></block><block s="reportListItem"><block var="i"/><block var="target"/></block></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>column-headers</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="target"/></block><l>0</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block><l>0</l></list></block><script><block s="doAddToList"><block var="newContent"/><block var="target"/></block></script><list></list></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="newContent"/></list></block><block var="target"/></block></script></block></script><script><block s="doSetVar"><l>tablewidth</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="target"/></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="newContent"/><l><option>list</option></l></block><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="tablewidth"/></list></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="newContent"/></block></list></block><script><block s="doAddToList"><l>...</l><block var="item"/></block></script><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="newContent"/></block><block var="item"/></block></script></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><script><block s="doSetVar"><l>item</l><block s="reportNewList"><list><block var="newContent"/></list></block></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="tablewidth"/></list></block><script><block s="doAddToList"><l>...</l><block var="item"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script></block><block s="doInsertInList"><block var="item"/><l>1</l><block var="target"/></block></script></block></script><list></list></block></script></block></script></block-definition><block-definition s="delete %&apos;choice&apos; %&apos;name&apos; of %&apos;data&apos;" type="command" category="3. Data tools"><comment x="0" y="0" w="159.6666666666666" collapsed="false">Deletes a row or column of a table. identified by number or name, or reports an error message. If the the name is a number You can mark this with a  # (e.g. #123).</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">row<options>row&#xD;column</options></input><input type="%s">numberOrName<options>first&#xD;last&#xD;numberOrName</options></input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>table</l><l>result</l><l>n</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>table</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>table</l><block var="data"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="table"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only data in tables are deletable!</l><l>delete ... of table</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>row</l></list></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>first</l></list></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>last</l></list></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block><script><block s="doDeleteFromList"><block var="n"/><block var="table"/></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>column</l></list></block><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="table"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>first</l></list></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>last</l></list></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>delete ... of table</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: column index out of range!</l><l>delete ... of table</l></custom-block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block><l>1</l></list></block><block s="reportVariadicEquals"><list><block var="n"/><l>1</l></list></block></list></block><script><block s="doDeleteFromList"><l><option>all</option></l><block var="table"/></block></script><script><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script><block s="doDeleteFromList"><block var="n"/><block var="item"/></block><block s="doReport"><l></l></block></script><list><l>item</l></list></block><block var="table"/></block></block></script></block></script></block></script><list></list></block></script></block></script></block-definition><block-definition s="element %&apos;xName&apos; %&apos;yName&apos; of %&apos;table&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="130.83333333333306" collapsed="false">Reports the element a position x|y of a table, identified by numbers or names.</comment><header></header><code></code><translations></translations><inputs><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>x</l><l>y</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>element of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>x</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="xName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>element of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>y</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="yName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="y"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown row name!</l><l>element of ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="y"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="y"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates out of range!</l><l>element of ...</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><block var="x"/><block s="reportListItem"><block var="y"/><block var="source"/></block></block></block></script></block></script></block></script></block-definition><block-definition s="set element %&apos;xName&apos; %&apos;yName&apos; of %&apos;table&apos; to %&apos;value&apos;" type="command" category="3. Data tools"><comment x="0" y="0" w="120.11904761904766" collapsed="false">Replaces the value at position x|y of a table.</comment><header></header><code></code><translations></translations><inputs><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>x</l><l>y</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: operation only defined for tables!</l><l>set element of table to value</l></custom-block></script><list></list></block><block s="doSetVar"><l>x</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="xName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="x"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>set element of table to value</l></custom-block></script><list></list></block><block s="doSetVar"><l>y</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="yName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="y"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown row name!</l><l>set element of table to value</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="y"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="y"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates out of range!</l><l>set element of table to value</l></custom-block></script><script><block s="doReplaceInList"><block var="x"/><block s="reportListItem"><block var="y"/><block var="source"/></block><block var="value"/></block></script></block></script></block></script></block-definition><block-definition s="columns %&apos;columns&apos; of %&apos;table&apos; $nl from row %&apos;startnr&apos; to %&apos;endnr&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="100.42857142857069" collapsed="false">Reports the columns from row startnr to row endnr.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%s">last<options>last&#xD;numberOrName</options></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>colNumbers</l><l>n</l><l>result</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>columns of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="endnr"/><l>last</l></list></block><script><block s="doSetVar"><l>endnr</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script><list></list></block><block s="doSetVar"><l>startnr</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="startnr"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="startnr"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown row name!</l><l>columns of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>endnr</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="endnr"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="endnr"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown row name!</l><l>columns of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>colNumbers</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="columns"/><script><block s="doIfElse"><block s="reportIsA"><block var="item"/><l><option>number</option></l></block><script><block s="doAddToList"><block var="item"/><block var="colNumbers"/></block></script><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="item"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>columns of ...</l></custom-block></script><list></list></block><block s="doAddToList"><block var="n"/><block var="colNumbers"/></block></script></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_columncopy(data,cols,start,stop)</l><list><block var="source"/><block var="colNumbers"/><block var="startnr"/><block var="endnr"/></list></block></block></script></block></script></block-definition><block-definition s="subsection of %&apos;choice&apos; in %&apos;data&apos; from $nl %&apos;b1Name&apos; %&apos;b2Name&apos; to %&apos;e1Name&apos; %&apos;e2Name&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="124.57142857142848" collapsed="false">Reports a subsection of an image or table.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">RGB-data<options>table-data&#xD;matrix-data&#xD;list-data&#xD;RGB-data&#xD;FITS-data</options></input><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">numberOrName</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>width</l><l>height</l><l>begin</l><l>end</l><l>b1</l><l>b2</l><l>e1</l><l>e2</l><l>result</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>list-data</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b1Name"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown start number!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e1Name"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown end number!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list required</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="index"/><block var="b1Name"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="index"/><block var="e1Name"/></list></block></list></block><script><block s="doAddToList"><block var="value"/><block var="result"/></block></script><list></list></block><block s="doReport"><l></l></block></script><list><l>value</l><l>index</l></list></block><block var="source"/></block></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="choice"/><l>table-data</l></list></block><block s="reportVariadicEquals"><list><block var="choice"/><l>matrix-data</l></list></block></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table or matrix required</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>b1</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="b1Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b1"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>b2</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="b2Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b2"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown row name!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>e1</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="e1Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e1"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>e2</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>row</l><block var="e2Name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e2"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown row name!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>begin</l><block s="reportNewList"><list><block var="b1"/><block var="b2"/></list></block></block><block s="doSetVar"><l>end</l><block s="reportNewList"><list><block var="e1"/><block var="e2"/></list></block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_subsection(data,begin,end)</l><list><block var="source"/><block var="begin"/><block var="end"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="choice"/><l>RGB-data</l></list></block><block s="reportVariadicEquals"><list><block var="choice"/><l>FITS-data</l></list></block></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: please import image-data to SciSnap!Data first!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>RGB-data</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block><l>RGB</l></list></block><custom-block s="is %s a %txt"><block var="SciSnap!Data"/><l>matrix</l></custom-block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>width</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></block><block s="doSetVar"><l>height</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>FITS-data</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block><l>FITS</l></list></block><custom-block s="is %s a %txt"><block var="SciSnap!Data"/><l>vector</l></custom-block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>width</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></block><block s="doSetVar"><l>height</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list required</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b1Name"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown start number!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="b2Name"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown start number!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e1Name"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown end number!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="e2Name"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown end number!</l><l>subsection of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>begin</l><block s="reportNewList"><list><block var="b1Name"/><block var="b2Name"/></list></block></block><block s="doSetVar"><l>end</l><block s="reportNewList"><list><block var="e1Name"/><block var="e2Name"/></list></block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_subsectionImage(data,begin,end,width,height)</l><list><block var="source"/><block var="begin"/><block var="end"/><block var="width"/><block var="height"/></list></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="select rows of %&apos;table&apos; where $nl column %&apos;name&apos; is %&apos;op&apos; %&apos;value&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="138.33333333333334" collapsed="false">Determines the rows of a table with certain properties.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%s" readonly="true">less-than<options>less-than&#xD;greater-than&#xD;equal-to&#xD;different-from</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><custom-block s="copy of %s"><block var="table"/></custom-block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>select rows of ... where ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>select rows of ... where ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: column index out of range!</l><l>select rows of ... where ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>op</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="op"/><l><option>whitespace</option></l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>less-than</l></list></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></list></block></autolambda><list></list></block><block var="source"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>greater-than</l></list></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></list></block></autolambda><list></list></block><block var="source"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>equal-to</l></list></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></list></block></autolambda><list></list></block><block var="source"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="op"/><l>different-from</l></list></block><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="n"/><l/></block><block var="value"/></list></block></block></autolambda><list></list></block><block var="source"/></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="count values in %&apos;data&apos;" type="reporter" category="3. Data tools" space="true"><comment x="0" y="0" w="129.5" collapsed="false">counts the appearances of the values of a list or table.</comment><header></header><code></code><translations></translations><inputs><input type="%s">a table or list</input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table or list required!</l><l>count values in ...</l></custom-block></script><script><block s="doReport"><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListAttribute"><l><option>distribution</option></l><block s="reportListAttribute"><l><option>flatten</option></l><block var="data"/></block></block></block></block></script></block></script></block-definition><block-definition s="sort %&apos;data&apos; with predicate %&apos;fn&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="107.5" collapsed="false">Reports a sorted list.</comment><header></header><code></code><translations></translations><inputs><input type="%s">a list</input><input type="%predRing"></input></inputs><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportIsA"><block var="fn"/><l><option>predicate</option></l></block></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="fn"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list and predicate required!</l><l>sort ... with predicate</l></custom-block></script></block></script></block-definition><block-definition s="entropy of %&apos;data&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="168.00000000000003" collapsed="false">returns the entropy of a list of data</comment><header></header><code></code><translations></translations><inputs><input type="%s">a table or list</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doForEach"><l>item</l><custom-block s="count values in %s"><block var="data"/></custom-block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>2</l><block var="item"/></block><l>0</l></list></block><script><block s="doChangeVar"><l>result</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="item"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><block s="reportMonadic"><l><option>ln</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block var="item"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block></list></block></block></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table or list required!</l><l>entropy of ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="%&apos;data&apos; without duplicates" type="reporter" category="3. Data tools"><comment x="0" y="0" w="222.33333333333348" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicOr"><list><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>... without duplicates</l></custom-block></script><script><block s="doReport"><block s="reportListAttribute"><l><option>uniques</option></l><block var="source"/></block></block></script></block></script></block></script></block-definition><block-definition s="%&apos;data&apos; normalized by %&apos;choice&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="142.5" collapsed="false">Normalizes a table by dividing it by the specified value.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%s">mean<options>mean&#xD;max&#xD;number&#xD;sum&#xD;median&#xD;softmax</options></input></inputs><script><block s="doDeclareVariables"><list><l>divisor</l><l>source</l><l>n</l><l>sum</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only vectors supported!</l><l>... normalized by ...</l></custom-block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="choice"/><l>mean</l></list></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of %s"><l>mean</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="choice"/><l>max</l></list></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of %s"><l>max</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="choice"/><l>number</l></list></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of %s"><l>number</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="choice"/><l>sum</l></list></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of %s"><l>sum</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="choice"/><l>median</l></list></block><script><block s="doSetVar"><l>divisor</l><custom-block s="%s of %s"><l>median</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="choice"/><l>softmax</l></list></block><script><block s="doReport"><custom-block s="%s of %s"><l>softmax</l><block var="source"/></custom-block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="choice"/><l><option>number</option></l></block><script><block s="doSetVar"><l>divisor</l><block var="choice"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: illegal operation!</l><l>... normalized by ...</l></custom-block></script></block></script></block></script></block></script></block></script></block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="divisor"/><l>0</l></list></block></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><block var="divisor"/></block></autolambda><list></list></block><block var="source"/></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: divisor is 0!</l><l>... normalized by ...</l></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="%&apos;data&apos; vertical compressed $nl with factor %&apos;n&apos; by averaging" type="reporter" category="3. Data tools"><comment x="0" y="0" w="117.1428571428573" collapsed="false">Reports a vector or matrix with compressed columnsonly columns .</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>h</l><l>source</l><l>i</l><l>j</l><l>isMatrix</l><l>columnNr</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doSetVar"><l>isMatrix</l><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block><block var="isMatrix"/></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: vector or matrix required!</l><l>... vertical compressed ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: impossible operation!</l><l>... vertical compressed ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block var="isMatrix"/></block><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>source</l><l></l></block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><block var="n"/></block><l>1</l></list></block></list></block><script><block s="doSetVar"><l>h</l><block s="reportListItem"><block var="i"/><block var="source"/></block></block><block s="doSetVar"><l>j</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThanOrEquals"><list><block var="j"/><block var="n"/></list></block><script><block s="doSetVar"><l>h</l><block s="reportVariadicSum"><list><block var="h"/><block s="reportListItem"><block s="reportVariadicSum"><list><block var="i"/><block var="j"/></list></block><block var="source"/></block></list></block></block><block s="doChangeVar"><l>j</l><l>1</l></block></script></block><block s="doAddToList"><block s="reportQuotient"><block var="h"/><block var="n"/></block><block var="result"/></block><block s="doChangeVar"><l>i</l><block var="n"/></block></script></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doSetVar"><l>result</l><custom-block s="empty table"></custom-block></block><block s="doSetVar"><l>columnNr</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="columnNr"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block><script><custom-block s="add %s %s to %s"><l>column</l><custom-block s="%s vertical compressed %br with factor %n by averaging"><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="columnNr"/><block var="source"/><l><bool>true</bool></l></custom-block><block var="n"/></custom-block><block var="result"/></custom-block><block s="doChangeVar"><l>columnNr</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%&apos;typeOfPooling&apos; pooling of %&apos;data&apos; $nl with stride %&apos;stride&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="140.99999999999991" collapsed="false">Pooling operation with matrices, images and vectors. On the top of the result are the new dimensions.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">max<options>max&#xD;mean</options></input><input type="%s">SciSnap!Data</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>typeOfData</l><l>width</l><l>height</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block><block s="doSetVar"><l>typeOfData</l><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block><block s="doIfElse"><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block><script><block s="doSetVar"><l>typeOfData</l><l>vector</l></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block><script><block s="doSetVar"><l>typeOfData</l><l>matrix</l></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only defined for matrices, images, and vectors!</l><l>pooling of ...</l></custom-block></script></block></script></block></script></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="stride"/><l>1</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: stride is too small!</l><l>pooling of ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>typeOfPooling</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="typeOfPooling"/><l> </l></block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>matrix</l></list></block><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>vector</l></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>FITS</l></list></block><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>RGB</l></list></block></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only defined for images, tables, and lists!</l><l>pooling of ...</l></custom-block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>vector</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no data found!</l><l>pooling of ...</l></custom-block></script><script><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block><block s="doSetVar"><l>height</l><l>1</l></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>matrix</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no data found!</l><l>pooling of ...</l></custom-block></script><script><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block><block s="doSetVar"><l>height</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>FITS</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no data found!</l><l>pooling of ...</l></custom-block></script><script><block s="doSetVar"><l>width</l><l>1</l></block><block s="doSetVar"><l>height</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>RGB</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no data found!</l><l>pooling of ...</l></custom-block></script><script><block s="doSetVar"><l>width</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></block><block s="doSetVar"><l>height</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></block></script></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_pooling(data,width,height,typeOfPooling,stride,typeOfData)</l><list><block var="source"/><block var="width"/><block var="height"/><block var="typeOfPooling"/><block var="stride"/><block var="typeOfData"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="%&apos;table&apos; sorted by column %&apos;name&apos; $nl ascending %&apos;ascending&apos; considering headline? %&apos;withHeadline&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="101.66666666666667" collapsed="false">Sorts a list or table.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%b">true</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>result</l><l>headline</l><l>n</l><l>isTable</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doSetVar"><l>isTable</l><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><block s="doIf"><block s="reportNot"><block var="isTable"/></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables and lists supported!</l><l>... sorted by column ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="source"/></block></block><l>1</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables and lists supported!</l><l>... sorted by column ...</l></custom-block></script><list></list></block></script><list></list></block><block s="doIfElse"><block var="isTable"/><script><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="source"/></custom-block></block></script><script><block s="doSetVar"><l>n</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>... sorted by column ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><custom-block s="copy of %s"><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doSetVar"><l>headline</l><block s="reportListItem"><l>1</l><block var="result"/></block></block><block s="doDeleteFromList"><l>1</l><block var="result"/></block></script><list></list></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="result"/></block><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="result"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>... sorted by column ...</l></custom-block></script><list></list></block><block s="doIfElse"><block var="ascending"/><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %s with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><block var="column"/><l/></block><block s="reportListItem"><block var="column"/><l/></block></list></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %s with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="column"/><l/></block><block s="reportListItem"><block var="column"/><l/></block></list></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script></block></script><script><block s="doIfElse"><block var="ascending"/><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %s with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script><script><block s="doSetVar"><l>result</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="sort %s with predicate %predRing"><block var="result"/><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></autolambda><list><l>column</l></list></block><list><block var="n"/></list></block></block></script></block></script></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="result"/></block><l><option>list</option></l></block><script><custom-block s="add %s %s to %s"><l>column-headers</l><block var="headline"/><block var="result"/></custom-block></script><script><block s="doInsertInList"><block var="headline"/><l>1</l><block var="result"/></block></script></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="%&apos;choice&apos; of column %&apos;kName&apos; of %&apos;table&apos; $nl grouped by column %&apos;name&apos; considering headline? %&apos;withHeadline&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="201.66666666666666" collapsed="false">Determines a group of properties of a table.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">mean<options>min&#xD;max&#xD;number&#xD;sum&#xD;mean</options></input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input><input type="%s">numberOrName</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>copy</l><l>source</l><l>groupcolumn</l><l>valuecolumn</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>... of column ... grouped by ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>groupcolumn</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="name"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="groupcolumn"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>... of column ... grouped by ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="groupcolumn"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="groupcolumn"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: column index out of range!</l><l>... of column ... grouped by ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>valuecolumn</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="kName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="valuecolumn"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>... of column ... grouped by ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="valuecolumn"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="valuecolumn"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: column index out of range!</l><l>... of column ... grouped by ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doSetVar"><l>copy</l><block s="evaluate"><block s="reifyReporter"><autolambda><custom-block s="%s sorted by column %s %br ascending %b considering headline? %b"><block var="source"/><block var="groupcolumn"/><l><bool>true</bool></l><block var="withHeadline"/></custom-block></autolambda><list></list></block><list></list></block></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doDeleteFromList"><l>1</l><block var="copy"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="copy"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_groupeddata(aTable,compaircolumn,operation,groupcolumn)</l><list><block var="copy"/><block var="valuecolumn"/><block var="choice"/><block var="groupcolumn"/></list></block></block></script></block></script></block-definition><block-definition s="%&apos;choice&apos; of column %&apos;xName&apos; and %&apos;yName&apos; $nl of %&apos;table&apos; considering headline? %&apos;withHeadline&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="199.42307692307688" collapsed="false">Calculates the ranges, the covariance or the correlation between two columns of a table.&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">ranges<options>ranges&#xD;covariance&#xD;correlation</options></input><input type="%s">numberOrName</input><input type="%s">numberOrName</input><input type="%s">SciSnap!Data</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>copy</l><l>n</l><l>m</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="table"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="table"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only tables supported!</l><l>ranges/covariance ... of </l></custom-block></script><list></list></block><block s="doSetVar"><l>n</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="xName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>ranges/covariance ... of </l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="n"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: column index out of range!</l><l>ranges/covariance ... of </l></custom-block></script><list></list></block><block s="doSetVar"><l>m</l><custom-block s="%s %s of %s $arrowRightOutline number"><l>column</l><block var="yName"/><block var="source"/></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="m"/><l><option>number</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown column name!</l><l>ranges/covariance ... of </l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="m"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block var="m"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: column index out of range!</l><l>ranges/covariance ... of </l></custom-block></script><list></list></block><block s="doSetVar"><l>copy</l><custom-block s="copy of %s"><block var="source"/></custom-block></block><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doIf"><block s="reportNot"><block var="withHeadline"/></block><script><block s="doDeleteFromList"><l>1</l><block var="copy"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="copy"/></block><l>1</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: bad data!</l><l>ranges/covariance ... of </l></custom-block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_propertiesoftable(selection,table,x,y)</l><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block><block var="copy"/><block var="n"/><block var="m"/></list></block></block></script></block></script></block-definition><block-definition s="regression line parameters of %&apos;data&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="125.66666666666691" collapsed="false">Calculates the parameters of a regression line.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>meanX</l><l>meanY</l><l>denominator</l><l>numerator</l><l>m</l><l>b</l><l>source</l><l>sumX</l><l>sumY</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: matrix required!</l><l>regression line parameters of ...</l></custom-block></script><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block><l>2</l></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data format!</l><l>regression line parameters of ...</l></custom-block></script><list></list></block></script></block><block s="doSetVar"><l>sumX</l><l>0</l></block><block s="doSetVar"><l>sumY</l><l>0</l></block><block s="doSetVar"><l>numerator</l><l>0</l></block><block s="doSetVar"><l>denominator</l><l>0</l></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doChangeVar"><l>sumX</l><block s="reportListItem"><l>1</l><l/></block></block><block s="doChangeVar"><l>sumY</l><block s="reportListItem"><l>2</l><l/></block></block><block s="doReport"><l></l></block></script><list></list></block><block var="source"/></block></block><block s="doSetVar"><l>meanX</l><block s="reportQuotient"><block var="sumX"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></block><block s="doSetVar"><l>meanY</l><block s="reportQuotient"><block var="sumY"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doChangeVar"><l>numerator</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><l/></block><block var="meanX"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><l/></block><block var="meanY"/></block></list></block></block><block s="doChangeVar"><l>denominator</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><l/></block><block var="meanX"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><l/></block><block var="meanX"/></block></list></block></block><block s="doReport"><l></l></block></script><list></list></block><block var="source"/></block></block><block s="doSetVar"><l>m</l><block s="reportQuotient"><block var="numerator"/><block var="denominator"/></block></block><block s="doSetVar"><l>b</l><block s="reportDifference"><block var="meanY"/><block s="reportVariadicProduct"><list><block var="m"/><block var="meanX"/></list></block></block></block><block s="doReport"><block s="reportNewList"><list><block var="m"/><block var="b"/></list></block></block></script></block></script></block-definition><block-definition s="%&apos;k&apos; next neighbors of %&apos;point&apos; $nl in %&apos;data&apos;" type="reporter" category="3. Data tools" space="true"><comment x="0" y="0" w="229.00000000000006" collapsed="false">Determines the next k neighbours of a point in data. The classes of the points have to be in column 3. Reports a list with columns x, y, distance, class.</comment><header></header><code></code><translations></translations><inputs><input type="%n">5</input><input type="%s">2-dim point</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>neighbors</l><l>points</l><l>result</l><l>dummy</l><l>x1</l><l>y1</l><l>x2</l><l>y2</l><l>class</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>points</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>points</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="points"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table required!</l><l>k next neighbours of ...</l></custom-block></script><script><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="point"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: vector required!</l><l>k next neighbours of ...</l></custom-block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="k"/><l>2</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: number of neighbors too small!</l><l>k next neighbours of ...</l></custom-block></script><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="point"/></block><l>2</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: 2 dimensional point required!</l><l>k next neighbours of ...</l></custom-block></script><script><block s="doSetVar"><l>neighbors</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>x1</l><block s="reportListItem"><l>1</l><block var="point"/></block></block><block s="doSetVar"><l>y1</l><block s="reportListItem"><l>2</l><block var="point"/></block></block><block s="doSetVar"><l>dummy</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>x2</l><block s="reportListItem"><l>1</l><block var="point2"/></block></block><block s="doSetVar"><l>y2</l><block s="reportListItem"><l>2</l><block var="point2"/></block></block><block s="doSetVar"><l>class</l><block s="reportListItem"><l><option>last</option></l><block var="point2"/></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="x2"/><block var="y2"/><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="x1"/><block var="x2"/></block><block s="reportDifference"><block var="x1"/><block var="x2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y1"/><block var="y2"/></block><block s="reportDifference"><block var="y1"/><block var="y2"/></block></list></block></list></block></block><block var="class"/></list></block><block var="neighbors"/></block><block s="doReport"><l></l></block></script><list><l>point2</l></list></block><block var="points"/></block></block><block s="doSetVar"><l>neighbors</l><custom-block s="%s sorted by column %s %br ascending %b considering headline? %b"><block var="neighbors"/><l>3</l><l><bool>true</bool></l><l><bool>true</bool></l></custom-block></block><block s="doReport"><custom-block s="subsection of %s in %s from %br %s %s to %s %s"><l>table-data</l><block var="neighbors"/><l>1</l><l>1</l><l>4</l><block var="k"/></custom-block></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="convolution kernel %&apos;kernel&apos; applied $nl to %&apos;typeOfData&apos; %&apos;data&apos; width %&apos;width&apos; height %&apos;height&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="107.33333333333348" collapsed="false">Applies a convolution to a table with FITS, RGB, or table values.</comment><header></header><code></code><translations></translations><inputs><input type="%s">a kernel</input><input type="%s" readonly="true">table<options>image&#xD;table</options></input><input type="%s">SciSnap!Data</input><input type="%n">100</input><input type="%n">100</input></inputs><script><block s="doDeclareVariables"><list><l>w</l><l>h</l><l>t</l><l>m</l><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doIfElse"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block><script><block s="doSetVar"><l>source</l><block var="data"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data type!</l><l>convolution kernel ... applied to ...</l></custom-block></script></block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><custom-block s="is %s a %txt"><block var="kernel"/><l>matrix</l></custom-block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data format!</l><l>convolution kernel ... applied to ...</l></custom-block></script><script><block s="doSetVar"><l>h</l><block s="reportListAttribute"><l><option>length</option></l><block var="kernel"/></block></block><block s="doSetVar"><l>w</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="kernel"/></block></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportVariadicEquals"><list><block var="w"/><block var="h"/></list></block></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportVariadicProduct"><list><l>2</l><block s="reportRound"><block s="reportQuotient"><block var="w"/><l>2</l></block></block></list></block><block var="w"/></list></block><block s="reportVariadicEquals"><list><block s="reportVariadicProduct"><list><l>2</l><block s="reportRound"><block s="reportQuotient"><block var="h"/><l>2</l></block></block></list></block><block var="h"/></list></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong kernel!</l><l>convolution kernel ... applied to ...</l></custom-block></script><script><block s="doSetVar"><l>typeOfData</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="typeOfData"/><l> </l></block></block></block><block s="doSetVar"><l>m</l><block s="reportRound"><block s="reportQuotient"><block var="w"/><l>2</l></block></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="typeOfData"/><l>image</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>number</option></l></block><script><block s="doSetVar"><l>t</l><l>FITS</l></block></script><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>list</option></l></block><script><block s="doSetVar"><l>t</l><l>RGB</l></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data format!</l><l>convolution kernel ... applied to ...</l></custom-block></script></block></script></block></script><script><block s="doSetVar"><l>t</l><l>table</l></block><block s="doSetVar"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block><block s="doSetVar"><l>height</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_convolution(kernel,data,width,height,typeOfData,mIndex,kWidth)</l><list><block var="kernel"/><block var="source"/><block var="width"/><block var="height"/><block var="t"/><block var="m"/><block var="w"/></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="%&apos;k&apos; -means clustering for %&apos;data&apos; $nl with Euclidean metrics" type="reporter" category="3. Data tools"><comment x="0" y="0" w="167.33333333333348" collapsed="false">Custering of n-dimensional data with k-means-method. Cluster numbers are attached to the data.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><custom-block s="copy of %s"><block var="SciSnap!Data"/></custom-block></block></script><script><block s="doSetVar"><l>source</l><custom-block s="copy of %s"><block var="data"/></custom-block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: operation only defined for matrices!</l><l>k-means clusering .. Euclidean</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><block var="k"/></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: too few data!</l><l>k-means clusering .. Euclidean</l></custom-block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_k-means-clustering(k,data)</l><list><block var="k"/><block var="source"/></list></block></block></script></block></script></block-definition><block-definition s="%&apos;k&apos; -means clustering for %&apos;data&apos; $nl with metric %&apos;metric&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="185.33333333333357" collapsed="false">Custering of n-dimensional data with k-means-method. A metric has to be delivered as a ringified term. Cluster numbers are attached to the data.</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%s">SciSnap!Data</input><input type="%repRing">ringified operator</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>result</l><l>minmax</l><l>dimension</l><l>centers</l><l>center</l><l>anyChanges</l><l>minDistance</l><l>distance</l><l>nearestCenter</l><l>dummy</l><l>dummy2</l><l>n</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only defined for matrices!</l><l>k-means clustering with own metric</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><block var="k"/></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: too few data!</l><l>k-means clustering with own metric</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="metric"/><l><option>reporter</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified operator for metric required!</l><l>k-means clustering with own metric</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportConcatenatedLists"><list><l/><block s="reportNewList"><list><l>0</l></list></block></list></block></block></script><list></list></block><block var="source"/><comment w="161.66666666666666" collapsed="false">add cluster number 0 to data</comment></block></block><block s="doSetVar"><l>dimension</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block></block><block s="doSetVar"><l>minmax</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="dimension"/><script><block s="doAddToList"><block s="reportNewList"><list><custom-block s="%s of %s"><l>min</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><block var="source"/><l><bool>true</bool></l></custom-block></custom-block><custom-block s="%s of %s"><l>max</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="i"/><block var="source"/><l><bool>true</bool></l></custom-block></custom-block></list></block><block var="minmax"/></block></script><comment w="175" collapsed="false">calculate min and max for all columns</comment></block><block s="doSetVar"><l>centers</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="k"/><script><block s="doSetVar"><l>center</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>m</l><l>1</l><block var="dimension"/><script><block s="doAddToList"><block s="reportRandom"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="m"/><block var="minmax"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="m"/><block var="minmax"/></block></block></block><block var="center"/></block></script><comment w="133.33333333333334" collapsed="false">choose k random centers</comment></block><block s="doAddToList"><block var="i"/><block var="center"/></block><block s="doAddToList"><block var="center"/><block var="centers"/></block></script><comment w="189.55696614583346" collapsed="false">calculate min and max for all columns</comment></block><block s="doSetVar"><l>anyChanges</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doUntil"><block s="reportNot"><block var="anyChanges"/></block><script><block s="doChangeVar"><l>n</l><l>1</l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><l>2000</l></list></block><script><block s="doReport"><block var="result"/></block></script><list></list></block><block s="doSetVar"><l>anyChanges</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>dummy</l><block s="reportAtomicMap"><block s="reifyReporter"><script><block s="doSetVar"><l>minDistance</l><l>100000000</l></block><block s="doSetVar"><l>nearestCenter</l><l>0</l></block><block s="doSetVar"><l>dummy2</l><block s="reportMap"><block s="reifyReporter"><script><block s="doSetVar"><l>distance</l><block s="evaluate"><block var="metric"/><list><block var="point"/><block var="center"/></list></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="distance"/><block var="minDistance"/></list></block><script><block s="doSetVar"><l>nearestCenter</l><block s="reportListItem"><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><block var="center"/></block></block><block s="doSetVar"><l>minDistance</l><block var="distance"/></block></script><list></list></block><block s="doReport"><l></l></block></script><list><l>center</l></list></block><block var="centers"/></block></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="nearestCenter"/><block s="reportListItem"><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><block var="point"/></block></list></block><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><block var="point"/><block var="nearestCenter"/></block><block s="doSetVar"><l>anyChanges</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><l></l></block></script><list><l>point</l></list></block><block var="result"/></block><comment w="90" collapsed="false">build clusters</comment></block><block s="doIf"><block var="anyChanges"/><script><block s="doFor"><l>i</l><l>1</l><block var="k"/><script><block s="doSetVar"><l>dummy</l><custom-block s="select rows of %s where %br column %s is %s %s"><block var="result"/><block s="reportVariadicSum"><list><block var="dimension"/><l>1</l></list></block><l>equal-to</l><block var="i"/></custom-block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="dummy"/></block><l>0</l></list></block><script><block s="doFor"><l>m</l><l>1</l><block var="dimension"/><script><block s="doReplaceInList"><block var="m"/><block s="reportListItem"><block var="i"/><block var="centers"/></block><custom-block s="%s of %s"><l>mean</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><block var="m"/><block var="dummy"/><l><bool>true</bool></l></custom-block></custom-block></block></script></block></script><list></list></block></script><comment w="90" collapsed="false">adjust centers</comment></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="DBSCAN clustering for %&apos;data&apos; $nl radius %&apos;r&apos; minMembers %&apos;minMembers&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="177.66666666666674" collapsed="false">labels of data: -1 not visited, 0 visited, -2 noise, &gt;0 clusternr</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input><input type="%n">50</input><input type="%n">5</input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>b</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><custom-block s="copy of %s"><block var="SciSnap!Data"/></custom-block></block></script><script><block s="doSetVar"><l>source</l><custom-block s="copy of %s"><block var="data"/></custom-block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only defined for matrices!</l><l>DBSCAN clustering</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>2</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: too few data!</l><l>DBSCAN clustering</l></custom-block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_DBSCAN(data,r,minMembers)</l><list><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><l/><block s="reportNewList"><list><l>-1</l></list></block></list></block></autolambda><list></list></block><block var="source"/></block><block var="r"/><block var="minMembers"/></list></block></block></script></block></script></block-definition><block-definition s="decision tree ID3 for %&apos;data&apos; $nl with labeled data in last column" type="reporter" category="3. Data tools"><comment x="0" y="0" w="179.28571428571445" collapsed="false">reports an ID3 decision tree constructed on the base of labeled data</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data</input></inputs><script><block s="doDeclareVariables"><list><l>countedValues</l><l>information gains</l><l>newData</l><l>links</l><l>compareColumn</l><l>values</l><l>nTotal</l><l>result</l><l>source</l></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><custom-block s="copy of %s"><block var="SciSnap!Data"/></custom-block></block></script><script><block s="doSetVar"><l>source</l><custom-block s="copy of %s"><block var="data"/></custom-block></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block><comment w="90" collapsed="false">wrong data</comment></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table required!</l><l>decision tree ID3 for ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list><comment w="90" collapsed="false">empty dataset</comment></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: empty dataset!</l><l>decision tree ID3 for ...</l></custom-block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_ID3Tree(data)</l><list><block var="source"/></list></block></block></script></block></script></block-definition><block-definition s="classify %&apos;data&apos; with ID3-tree %&apos;tree&apos;" type="reporter" category="3. Data tools"><comment x="0" y="0" w="153.28571428571422" collapsed="false">returns the class of a dataset using an ID3-decision-tree</comment><header></header><code></code><translations></translations><inputs><input type="%s">data</input><input type="%s">this ID3-tree</input></inputs><script><block s="doDeclareVariables"><list><l>colNumber</l><l>compareData</l><l>ready</l><l>i</l><l>item</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportIsA"><block var="tree"/><l><option>list</option></l></block></list></block><comment w="68.57142857142857" collapsed="false">wrong data</comment></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR:lists required!</l><l>classify with ID3-tree</l></custom-block></script><list></list></block><block s="doSetVar"><l>compareData</l><custom-block s="copy of %s"><block var="data"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><l>leaf</l></list></block><script><block s="doReport"><block s="reportJoinWords"><list><l>result: </l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><l>leaf (unambiguous)</l></list></block><script><block s="doReport"><block s="reportJoinWords"><list><l>result (unambiguous): </l><block s="reportListItem"><l>2</l><block var="tree"/></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="tree"/></block><l>node</l></list></block><script><block s="doSetVar"><l>colNumber</l><block s="reportListItem"><l>2</l><block var="tree"/></block></block><block s="doSetVar"><l>ready</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>3</l><block var="tree"/></block></block></list></block><block var="ready"/></list></block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="i"/><block s="reportListItem"><l>3</l><block var="tree"/></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="colNumber"/><block var="compareData"/></block><block s="reportListItem"><l>1</l><block var="item"/></block></list></block><script><block s="doSetVar"><l>ready</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doDeleteFromList"><block var="colNumber"/><block var="compareData"/></block><block s="doReport"><custom-block s="classify %s with ID3-tree %s"><block var="compareData"/><block s="reportListItem"><l>2</l><block var="item"/></block></custom-block></block></script><list></list></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block></script><list></list></block><block s="doReport"><l>ERROR: no sensefull data to compare found!</l></block></script></block></script><scripts><script x="42" y="708.7499999999995"><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no sensefull data to compare found!</l><l>classify with ID3-tree</l></custom-block></script></scripts></block-definition><block-definition s="INFO &quot;PlotPad&quot; for dealing with diagrams" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "PlotPad for data plots"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks to use any sprite or the stage as a sketchpad for plots.&#xD;In the beginning the properties for the used "pad" are set to standard values, which can be changed by corresponding blocks.&#xD;Blocks are available for drawing the graphs of any functions as well as for plots of numerical and mixed data or histograms.&#xD;The scales can be automatically set to "pretty" values. Some examples explain how to use them.</l></custom-block></custom-block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as a PlotPad width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; with close-button? %&apos;withCloseButton?&apos; left? %&apos;left?&apos; size: %&apos;closeButtonSize&apos;" type="command" category="5. PlotPad for data plots" space="true"><comment x="0" y="0" w="140.7142857142859" collapsed="false">Creates a new empty costume of the specified size and color and sets the local properties.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%txt" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;whitered&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%b">false</input><input type="%b">false</input><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>yIntervals</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><block var="color"/><block var="withCloseButton?"/><block var="left?"/><block var="closeButtonSize"/></custom-block><block s="doReplaceInList"><l>typeOfConfiguration</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><l>PlotPad</l></block><block s="doAddToList"><block s="reportNewList"><list><l>plots</l><block s="reportNewList"><list></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>pretty</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>start0</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>markerStyle</l><l>square</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>markerWidth</l><l>5</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>markerConnected</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>markerColor</l><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>minValue</l><l>notSet</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>maxValue</l><l>notSet</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>columns</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>rows</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scaleLeftOffset</l><l>60</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scaleRightOffset</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scaleUpperOffset</l><l>35</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scaleLowerOffset</l><l>50</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>title</l><l></l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xLabel</l><l></l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yLabel</l><l></l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>titleHeight</l><l>18</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xLabelHeight</l><l>16</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yLabelHeight</l><l>16</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xUnit</l><l></l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yUnit</l><l></l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xLeft</l><l>-10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xRight</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yLower</l><l>-10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yUpper</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doSetVar"><l>yIntervals</l><block s="reportRound"><block s="reportVariadicProduct"><list><l>6</l><block s="reportQuotient"><block var="height"/><block var="width"/></block></list></block></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="yIntervals"/><l>3</l></list></block><script><block s="doSetVar"><l>yIntervals</l><l>3</l></block></script><list></list></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXprecision</l><l>2</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYprecision</l><l>2</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXtextheight</l><l>12</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYtextheight</l><l>12</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXintervals</l><l>6</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYintervals</l><block var="yIntervals"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXstart</l><l>-10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYstart</l><l>-10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXstep</l><l>2</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYstep</l><l>2</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXscaling</l><l>1</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYscaling</l><l>1</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesTiclength</l><l>6</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXminitics</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYminitics</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXgrid</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYgrid</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesXcentered</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesYcentered</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesShowXscale</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>scalesShowYscale</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>plotBorder</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script></block></script><scripts><comment x="488.3364690144856" y="89.25000000000016" w="181.49372863769622" collapsed="false">Costume attributes and line attributes same as SketchPad.&#xD;&#xD;other attributes:&#xD;&#xD;plots&#xD;&#xD;marker properties:&#xD;1: marker style&#xD;2: marker width&#xD;3: marker connected&#xD;4: marker color red&#xD;5: marker color green&#xD;6: marker color blue&#xD;&#xD;data properties:&#xD;1: minValue&#xD;2: maxValue&#xD;3: columns&#xD;4: rows&#xD;&#xD;scale offsets:&#xD;1:left offset&#xD;2: right offset&#xD;3: upper offset&#xD;4: lower offset&#xD;&#xD;labels:&#xD;1: title&#xD;2: x label&#xD;3: y label&#xD;4: title height&#xD;5: x label height&#xD;6: y label height&#xD;7: x unit&#xD;8: y unit&#xD;&#xD;ranges:&#xD;1: x left&#xD;2: x right&#xD;3: y lower &#xD;4: y upper&#xD;&#xD;scale properties:&#xD;1: scales x precision&#xD;2: scales y precision&#xD;3: scales x textheight&#xD;4: scales y textheight&#xD;5: scales x intervals&#xD;6: scales y intervals&#xD;7: scales x start&#xD;8: scales y start&#xD;9: scales x step&#xD;10: scales y step&#xD;11: scales x scaling&#xD;12: scales y scaling&#xD;13: scales ticlength&#xD;14: scales x minitics&#xD;15: scales y minitics&#xD;16: scales x grid&#xD;17: scales y grid&#xD;18: scales x centered&#xD;19: scales y centered&#xD;20: scales show x scale&#xD;21: scales show y scale&#xD;22: plot border</comment></scripts></block-definition><block-definition s="is %&apos;sprite&apos; a PlotPad?" type="predicate" category="5. PlotPad for data plots"><comment x="0" y="0" w="134" collapsed="false">Reports whether the sprite is configured as a PlotPad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>PlotPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l>Stage</l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>PlotPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>PlotPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="set PlotPadProperty %&apos;key&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="128.97435897435886" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;plots&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;marker properties={&#xD;marker style=markerStyle&#xD;marker width=markerWidth&#xD;marker connected=markerConnected&#xD;marker color=markerColor&#xD;}&#xD;data properties={&#xD;minValue=minValue&#xD;maxValue=maxValue&#xD;columns=columns&#xD;rows=rows&#xD;}&#xD;scale offsets={&#xD;left offset=scaleLeftOffset&#xD;right offset=scaleRightOffset&#xD;upper offset=scaleUpperOffset&#xD;lower offset=scaleLowerOffset&#xD;}&#xD;labels={&#xD;title=title&#xD;x label=xLabel&#xD;y label=yLabel&#xD;title height=titleHeight&#xD;x label height=xLabelHeight&#xD;y label height=yLabelHeight&#xD;x unit=xUnit&#xD;y unit=yUnit&#xD;}&#xD;ranges={&#xD;x left=xLeft&#xD;x right=xRight&#xD;y lower=yLower&#xD;y upper=yUpper&#xD;}&#xD;scale properties={&#xD;scales x precision=scalesXprecision&#xD;scales y precision=scalesYprecision&#xD;scales x textheight=scalesXtextheight&#xD;scales y textheight=scalesYtextheight&#xD;scales x intervals=scalesXintervals&#xD;scales y intervals=scalesYintervals&#xD;scales x start=scalesXstart&#xD;scales y start=scalesYstart&#xD;scales x step=scalesXstep&#xD;scales y step=scalesYstep&#xD;scales x scaling=scalesXscaling&#xD;scales y scaling=scalesYscaling&#xD;scales ticlength=scalesTiclength&#xD;scales x minitics=scalesXminitics&#xD;scales y minitics=scalesYminitics&#xD;scales x grid=scalesXgrid&#xD;scales y grid=scalesYgrid&#xD;scales x centered=scalesXcentered&#xD;scales y centered=scalesYcentered&#xD;scales show x scale=scalesShowXscale&#xD;scales show y scale=scalesShowYscale&#xD;plot border=plotBorder&#xD;pretty formated=pretty&#xD;y-axis starts with 0=start0&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPadProperty</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="value"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Missing variable "myProperties"!</l><l>set PlotPadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="PlotPadProperty %&apos;key&apos; of %&apos;sprite&apos;" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="95" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;plots&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;marker properties={&#xD;marker style=markerStyle&#xD;marker width=markerWidth&#xD;marker connected=markerConnected&#xD;marker color=markerColor&#xD;}&#xD;data properties={&#xD;minValue=minValue&#xD;maxValue=maxValue&#xD;columns=columns&#xD;rows=rows&#xD;}&#xD;scale offsets={&#xD;left offset=scaleLeftOffset&#xD;right offset=scaleRightOffset&#xD;upper offset=scaleUpperOffset&#xD;lower offset=scaleLowerOffset&#xD;}&#xD;labels={&#xD;title=title&#xD;x label=xLabel&#xD;y label=yLabel&#xD;title height=titleHeight&#xD;x label height=xLabelHeight&#xD;y label height=yLabelHeight&#xD;x unit=xUnit&#xD;y unit=yUnit&#xD;}&#xD;ranges={&#xD;x left=xLeft&#xD;x right=xRight&#xD;y lower=yLower&#xD;y upper=yUpper&#xD;}&#xD;scale properties={&#xD;scales x precision=scalesXprecision&#xD;scales y precision=scalesYprecision&#xD;scales x textheight=scalesXtextheight&#xD;scales y textheight=scalesYtextheight&#xD;scales x intervals=scalesXintervals&#xD;scales y intervals=scalesYintervals&#xD;scales x start=scalesXstart&#xD;scales y start=scalesYstart&#xD;scales x step=scalesXstep&#xD;scales y step=scalesYstep&#xD;scales x scaling=scalesXscaling&#xD;scales y scaling=scalesYscaling&#xD;scales ticlength=scalesTiclength&#xD;scales x minitics=scalesXminitics&#xD;scales y minitics=scalesYminitics&#xD;scales x grid=scalesXgrid&#xD;scales y grid=scalesYgrid&#xD;scales x centered=scalesXcentered&#xD;scales y centered=scalesYcentered&#xD;scales show x scale=scalesShowXscale&#xD;scales show y scale=scalesShowYscale&#xD;plot border=plotBorder&#xD;pretty formated=pretty&#xD;y-axis starts with 0=start0&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>PlotPadProperty of ...</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing variable myProperties!</l><l>PlotPadProperty of ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set PlotPad costume properties width: %&apos;width&apos; height: %&apos;height&apos; $nl back color: %&apos;backcolor&apos; front color: %&apos;frontcolor&apos; $nl offsets: %&apos;leftOffset&apos; %&apos;upperOffset&apos; on %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="120.32706197102907" collapsed="false">a simple way to set some costume attributes:&#xD;1: width&#xD;2: height&#xD;3: back color&#xD;4: front color&#xD;5: left offset for plot&#xD;    position on stage&#xD;6: upper offset for plot&#xD;    position on stage&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%mult%s"></input><input type="%mult%s"></input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPad costume properties</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>costumeWidth</l><l>theStage</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>costumeHeight</l><l>theStage</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>backColor</l><l>theStage</l><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="backcolor"/></custom-block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>offsets</l><l>theStage</l><block s="reportNewList"><list><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>frontColor</l><l>theStage</l><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="frontcolor"/></custom-block></custom-block></script><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block var="height"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>backColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="backcolor"/></custom-block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>frontColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="frontcolor"/></custom-block></custom-block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><block var="width"/><block var="height"/><custom-block s="PlotPadProperty %txt of %txt"><l>backColor</l><block var="target"/></custom-block></custom-block></block></script><list></list></block><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="set PlotPad labels on %&apos;sprite&apos; to $nl title: %&apos;newTitle&apos; titleheight: %&apos;tHeight&apos; $nl x-label: %&apos;newXLabel&apos; xLabelheight: %&apos;xHeight&apos; $nl y-label: %&apos;newYLabel&apos; yLabelheight: %&apos;yHeight&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="140.3846153846154" collapsed="false">Sets the labels and textheights of the diagrams of a PlotPad and redraws them.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%txt">Diagram Title</input><input type="%n">18</input><input type="%txt">x-label</input><input type="%n">16</input><input type="%txt">y-label</input><input type="%n">16</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPad labels</l></custom-block></script><list></list></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>title</l><block var="target"/><block var="newTitle"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xLabel</l><block var="target"/><block var="newXLabel"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yLabel</l><block var="target"/><block var="newYLabel"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>titleHeight</l><block var="target"/><block var="tHeight"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xLabelHeight</l><block var="target"/><block var="xHeight"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yLabelHeight</l><block var="target"/><block var="yHeight"/></custom-block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="set PlotPad line properties style: %&apos;style&apos; $nl width: %&apos;lineWidth&apos; color: %&apos;color&apos; on %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="105.68386840820362" collapsed="false">a simple way to set some net attributes:&#xD;line properties:&#xD;1: line style&#xD;2: lineWidth&#xD;3: line color red&#xD;4: line color green&#xD;5: lineColor blue</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">continuous<options>continuous&#xD;dashed&#xD;dash-dot&#xD;dot-dot&#xD;rainbow&#xD;inverse-rainbow</options></input><input type="%n">1</input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPad line properties</l></custom-block></script><list></list></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>lineStyle</l><block var="target"/><block var="style"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>lineWidth</l><block var="target"/><block var="lineWidth"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block></script></block></script></block-definition><block-definition s="set PlotPad marker properties style: %&apos;style&apos; width: %&apos;width&apos; $nl color: %&apos;color&apos; connected? %&apos;connected&apos; on %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="105.68386840820362" collapsed="false">a simple way to set some net attributes:&#xD;marker properties:&#xD;1: marker style&#xD;2: marker width&#xD;3: marker connected&#xD;4: marker color red&#xD;5: marker color green&#xD;6: marker color blue</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">square<options>none&#xD;o_circle&#xD;._point&#xD;+_plus&#xD;x_ex&#xD;square&#xD;triangle</options></input><input type="%n">5</input><input type="%mult%s"></input><input type="%b">false</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPad marker properties</l></custom-block></script><list></list></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>markerStyle</l><block var="target"/><block var="style"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>markerWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>markerConnected</l><block var="target"/><block var="connected"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>markerColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block></script></block></script></block-definition><block-definition s="set PlotPad scale properties precision: %&apos;xprecision&apos; %&apos;yprecision&apos; $nl textheight: %&apos;xtextheight&apos; %&apos;ytextheight&apos; number of intervals: %&apos;nx&apos; %&apos;ny&apos; $nl on %&apos;sprite&apos; pretty formated? %&apos;pretty&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="152.3076923076923" collapsed="false">Sets some properties for scales and redraws them.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">2</input><input type="%n">12</input><input type="%n">12</input><input type="%n">10</input><input type="%n">10</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>scaleProperties</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPad scale properties</l></custom-block></script><list></list></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXprecision</l><block var="target"/><block var="xprecision"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYprecision</l><block var="target"/><block var="yprecision"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXtextheight</l><block var="target"/><block var="xtextheight"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYtextheight</l><block var="target"/><block var="ytextheight"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXintervals</l><block var="target"/><block var="nx"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYintervals</l><block var="target"/><block var="ny"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstart</l><block var="target"/><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstep</l><block var="target"/><block s="reportQuotient"><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXintervals</l><block var="target"/></custom-block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXscaling</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXminitics</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstart</l><block var="target"/><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstep</l><block var="target"/><block s="reportQuotient"><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYintervals</l><block var="target"/></custom-block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYscaling</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYminitics</l><block var="target"/><l>1</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="set PlotPad offsets from edges on %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="187.1666676666667" collapsed="false">Sets the distances of the diagram axes to the edges of the Sketchpad.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>leftOffset</l><l>rightOffset</l><l>target</l><l>upperOffset</l><l>lowerOffset</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPad offsets</l></custom-block></script><list></list></block><block s="doSetVar"><l>upperOffset</l><block s="reportVariadicProduct"><list><l>1</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXtextheight</l><block var="target"/></custom-block></list></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><custom-block s="PlotPadProperty %txt of %txt"><l>title</l><block var="target"/></custom-block></block><l>0</l></list></block><script><block s="doChangeVar"><l>upperOffset</l><block s="reportVariadicProduct"><list><l>1</l><custom-block s="PlotPadProperty %txt of %txt"><l>titleHeight</l><block var="target"/></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scalesTiclength</l><block var="target"/></custom-block><l>0</l></list></block><script><block s="doChangeVar"><l>upperOffset</l><block s="reportVariadicProduct"><list><l>-1</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesTiclength</l><block var="target"/></custom-block></list></block></block></script><list></list></block><block s="doSetVar"><l>lowerOffset</l><block s="reportVariadicProduct"><list><l>1</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXtextheight</l><block var="target"/></custom-block></list></block></block><block s="doIf"><block s="reportNot"><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYcentered</l><block var="target"/></custom-block></block><script><block s="doChangeVar"><l>lowerOffset</l><block s="reportVariadicProduct"><list><l>1</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXtextheight</l><block var="target"/></custom-block></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><custom-block s="PlotPadProperty %txt of %txt"><l>xLabel</l><block var="target"/></custom-block></block><l>0</l></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXscaling</l><block var="target"/></custom-block><l>0.99</l></list></block><block s="reportVariadicGreaterThan"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXscaling</l><block var="target"/></custom-block><l>1.01</l></list></block></list></block></list></block><script><block s="doChangeVar"><l>lowerOffset</l><block s="reportVariadicProduct"><list><l>1.5</l><custom-block s="PlotPadProperty %txt of %txt"><l>xLabelHeight</l><block var="target"/></custom-block></list></block></block></script><list></list></block></script><list></list></block><block s="doSetVar"><l>rightOffset</l><block s="reportVariadicProduct"><list><l>1.5</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYtextheight</l><block var="target"/></custom-block></list></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scalesTiclength</l><block var="target"/></custom-block><l>0</l></list></block><script><block s="doChangeVar"><l>rightOffset</l><block s="reportVariadicProduct"><list><l>-1</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesTiclength</l><block var="target"/></custom-block></list></block></block></script><list></list></block><block s="doSetVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>1</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYtextheight</l><block var="target"/></custom-block></list></block></block><block s="doIf"><block s="reportNot"><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXcentered</l><block var="target"/></custom-block></block><script><block s="doChangeVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>3</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYtextheight</l><block var="target"/></custom-block></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><custom-block s="PlotPadProperty %txt of %txt"><l>yLabel</l><block var="target"/></custom-block></block><l>0</l></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYscaling</l><block var="target"/></custom-block><l>0.99</l></list></block><block s="reportVariadicGreaterThan"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYscaling</l><block var="target"/></custom-block><l>1.01</l></list></block></list></block></list></block><script><block s="doChangeVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>1</l><custom-block s="PlotPadProperty %txt of %txt"><l>yLabelHeight</l><block var="target"/></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scalesTiclength</l><block var="target"/></custom-block><l>0</l></list></block><script><block s="doChangeVar"><l>leftOffset</l><block s="reportVariadicProduct"><list><l>-1</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesTiclength</l><block var="target"/></custom-block></list></block></block></script><list></list></block></script><list></list></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleLeftOffset</l><block var="target"/><block var="leftOffset"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleRightOffset</l><block var="target"/><block var="rightOffset"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleUpperOffset</l><block var="target"/><block var="upperOffset"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scaleLowerOffset</l><block var="target"/><block var="lowerOffset"/></custom-block></script></block></script></block-definition><block-definition s="set PlotPad ranges for x: %&apos;xLeft&apos; %&apos;xRight&apos; y: %&apos;yLower&apos; %&apos;yUpper&apos; $nl with border? %&apos;border&apos; of %&apos;percent&apos; on %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="119.1666666666667" collapsed="false">Sets the ranges for the axes of the diagrams of a PlotPad and redraws it..</comment><header></header><code></code><translations></translations><inputs><input type="%n">-10</input><input type="%n">10</input><input type="%n">-10</input><input type="%n">10</input><input type="%b">false</input><input type="%n">0.1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>dx</l><l>dy</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set PlotPad ranges</l></custom-block></script><list></list></block><block s="doIfElse"><block var="border"/><script><block s="doSetVar"><l>dx</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block var="xRight"/><block var="xLeft"/></block></list></block></block><block s="doSetVar"><l>dy</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block var="yUpper"/><block var="yLower"/></block></list></block></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xLeft</l><block var="target"/><block s="reportDifference"><block var="xLeft"/><block var="dx"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xRight</l><block var="target"/><block s="reportVariadicSum"><list><block var="xRight"/><block var="dx"/></list></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yLower</l><block var="target"/><block s="reportDifference"><block var="yLower"/><block var="dy"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yUpper</l><block var="target"/><block s="reportVariadicSum"><list><block var="yUpper"/><block var="dy"/></list></block></custom-block></script><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xLeft</l><block var="target"/><block var="xLeft"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xRight</l><block var="target"/><block var="xRight"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yLower</l><block var="target"/><block var="yLower"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yUpper</l><block var="target"/><block var="yUpper"/></custom-block></script></block><block s="doIfElse"><custom-block s="PlotPadProperty %txt of %txt"><l>pretty</l><block var="target"/></custom-block><script><custom-block s="set pretty ranges on PlotPad %txt"><block var="target"/></custom-block></script><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstart</l><block var="target"/><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstep</l><block var="target"/><block s="reportQuotient"><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXintervals</l><block var="target"/></custom-block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXscaling</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXminitics</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstart</l><block var="target"/><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstep</l><block var="target"/><block s="reportQuotient"><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYintervals</l><block var="target"/></custom-block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYscaling</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYminitics</l><block var="target"/><l>1</l></custom-block><custom-block s="clear %txt on %s"><l>costume</l><block var="target"/></custom-block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="add graph %&apos;aFunction&apos; to PlotPad %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots" space="true"><comment x="0" y="0" w="220" collapsed="false">Draws the graph of a function given as rigified Snap!-function or coefficient-list of a polynomial. </comment><header></header><code></code><translations></translations><inputs><input type="%s">ringified operator or polynomial</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>oldPlots</l><l>isNew</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>add graph to PlotPad</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="aFunction"/><l><option>reporter</option></l></block><custom-block s="is %s a %txt"><block var="aFunction"/><l>vector</l></custom-block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>SciS_addGraphToPlotpad(costume,properties,aFunction,proc)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="aFunction"/></list></block></autolambda><list></list></block><list></list></block></list></block><block s="doSetVar"><l>oldPlots</l><custom-block s="PlotPadProperty %txt of %txt"><l>plots</l><block var="target"/></custom-block></block><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>entry</l><block var="oldPlots"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="entry"/></block><l>function</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="entry"/></block><block var="aFunction"/></list></block></list></block><script><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doIf"><block var="isNew"/><script><block s="doAddToList"><block s="reportNewList"><list><l>function</l><block var="aFunction"/></list></block><block var="oldPlots"/></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>plots</l><block var="target"/><block var="oldPlots"/></custom-block></script><list></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: ringified operator necessary!</l><l>add graph to PlotPad</l></custom-block></script></block></script></block-definition><block-definition s="add dataplot of numeric data: %&apos;data&apos; to PlotPad %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="195.83333333333334" collapsed="false">Draws the data points of a two-dimensional table with numerical values. With a lot of additions from Rick Hessman. Thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>target</l><l>oldPlots</l><l>isNew</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>add numeric dataplot to PlotPad</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>myData</l></list></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block><l>2</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only matrices supported!</l><l>add numeric dataplot to PlotPad</l></custom-block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addNumericDataplotToPlotPad(costume,properties,data)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="source"/></list></block></list></block></script></block><block s="doSetVar"><l>oldPlots</l><custom-block s="PlotPadProperty %txt of %txt"><l>plots</l><block var="target"/></custom-block></block><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>entry</l><block var="oldPlots"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="entry"/></block><l>numericData</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="entry"/></block><block var="source"/></list></block></list></block><script><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doIf"><block var="isNew"/><script><block s="doAddToList"><block s="reportNewList"><list><l>numericData</l><block var="source"/></list></block><block var="oldPlots"/></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>plots</l><block var="target"/><block var="oldPlots"/></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="add dataplot of mixed data: %&apos;data&apos; $nl y-scale? %&apos;yScaled&apos; x-scale? %&apos;xScaled&apos; to PlotPad %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="208.33333333333334" collapsed="false">Draws the data points of a two-dimensional table with numerical values in column 2. &#xD;Text values should be used to set the x-label.</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%b">true</input><input type="%b">true</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>source</l><l>target</l><l>oldPlots</l><l>isNew</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>add mixed dataplot to PlotPad</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>myData</l></list></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>table</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table data necessary!</l><l>add mixed dataplot to PlotPad</l></custom-block></script><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesShowXscale</l><block var="target"/><block var="xScaled"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesShowYscale</l><block var="target"/><block var="yScaled"/></custom-block><custom-block s="clear %txt on %s"><l>costume</l><block var="target"/></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addMixedDataplotToPlotPad(costume,properties,data)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="source"/></list></block></list></block><block s="doSetVar"><l>oldPlots</l><custom-block s="PlotPadProperty %txt of %txt"><l>plots</l><block var="target"/></custom-block></block><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>entry</l><block var="oldPlots"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="entry"/></block><l>mixedData</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="entry"/></block><block var="source"/></list></block></list></block><script><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doIf"><block var="isNew"/><script><block s="doAddToList"><block s="reportNewList"><list><l>mixedData</l><block var="source"/></list></block><block var="oldPlots"/></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>plots</l><block var="target"/><block var="oldPlots"/></custom-block></script><list></list></block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="add histogram of %&apos;data&apos; with %&apos;n&apos; groups $nl to PlotPad %&apos;sprite&apos; y-axis starting with 0? %&apos;start0&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="146.33333333333326" collapsed="false">Draws a histogram of histogram data.With a lot of additions by Rick Hessman. Thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%n">10</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>ranges</l><l>pretty</l><l>dx</l><l>source</l><l>min</l><l>max</l><l>result</l><l>target</l><l>delta</l><l>h</l><l>i</l><l>x</l><l>oldPlots</l><l>isNew</l><l>histgramData</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>add histogram to PlotPad</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>myData</l></list></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: vector required!</l><l>add histogram to PlotPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: empty data!</l><l>add histogram to PlotPad</l></custom-block></script><list></list></block><custom-block s="clear %txt on %s"><l>costume</l><block var="target"/></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>start0</l><block var="target"/><block var="start0"/></custom-block><block s="doIf"><custom-block s="is %s a %txt"><block var="source"/><l>transposed-vector</l></custom-block><script><block s="doSetVar"><l>source</l><custom-block s="transpose %s"><block var="source"/></custom-block></block></script><list></list></block><block s="doSetVar"><l>min</l><block s="reportCombine"><block var="source"/><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>max</l><block s="reportCombine"><block var="source"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>delta</l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block var="n"/></block></block><block s="doSetVar"><l>h</l><block s="reportVariadicSum"><list><block var="min"/><block s="reportQuotient"><block var="delta"/><l>2</l></block></list></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block s="reportNewList"><list><block var="h"/><l>0</l></list></block><block var="result"/></block><block s="doChangeVar"><l>h</l><block var="delta"/></block></script></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></list></block><script><block s="doSetVar"><l>x</l><block s="reportListItem"><block var="i"/><block var="source"/></block></block><block s="doSetVar"><l>h</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportDifference"><block var="x"/><block var="min"/></block><block var="delta"/></block></block></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="h"/><l>1</l></list></block><script><block s="doSetVar"><l>h</l><l>1</l></block></script><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="h"/><block var="n"/></list></block><script><block s="doSetVar"><l>h</l><block var="n"/></block></script><list></list></block></script></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="h"/><block var="result"/></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="h"/><block var="result"/></block></block><l>1</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>histgramData</l><block var="result"/></block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><block var="target"/><block var="histgramData"/><l>0</l></custom-block><block s="doIf"><block var="start0"/><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yLower</l><block var="target"/><l>0</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstart</l><block var="target"/><l>0</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstep</l><block var="target"/><block s="reportQuotient"><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYintervals</l><block var="target"/></custom-block></block></custom-block></script><list></list></block><block s="doIf"><custom-block s="PlotPadProperty %txt of %txt"><l>pretty</l><block var="target"/></custom-block><script><custom-block s="set pretty ranges on PlotPad %txt"><block var="target"/></custom-block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addHistogramToPlotpad(costume,properties,data)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="histgramData"/></list></block></list></block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block><block s="doSetVar"><l>oldPlots</l><custom-block s="PlotPadProperty %txt of %txt"><l>plots</l><block var="target"/></custom-block></block><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doForEach"><l>entry</l><block var="oldPlots"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="entry"/></block><l>histogram</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="entry"/></block><block var="source"/></list></block></list></block><script><block s="doSetVar"><l>isNew</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block><block s="doIf"><block var="isNew"/><script><block s="doAddToList"><block s="reportNewList"><list><l>histogram</l><block var="source"/><block var="n"/></list></block><block var="oldPlots"/></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>plots</l><block var="target"/><block var="oldPlots"/></custom-block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="add axes and scales to PlotPad %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="226.3153515625" collapsed="false">Draws and labels the axes of a PlotPad.&#xD;With lot of additions of Rick Hessman. Thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>add axes und scales to PlotPad</l></custom-block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_addAxesAndScalesToPlotpad(costume,properties)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="clear %&apos;choice&apos; on %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots" space="true"><comment x="0" y="0" w="90" collapsed="false">Clears the plot area of a PlotPad.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">plotArea<options>plotArea&#xD;plotData&#xD;costume</options></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>oldFillColor</l><l>closeButtonSize</l><l>width</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>clear plot on PlotPad</l></custom-block></script><list></list></block><block s="doSetVar"><l>oldFillColor</l><custom-block s="PlotPadProperty %txt of %txt"><l>fillColor</l><block var="target"/></custom-block></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>fillColor</l><block var="target"/><custom-block s="PlotPadProperty %txt of %txt"><l>backColor</l><block var="target"/></custom-block></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>plotArea</l></list></block><script><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><block s="reportVariadicSum"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLeftOffset</l><block var="target"/></custom-block><l>1</l></list></block><block s="reportVariadicSum"><list><custom-block s="PlotPadProperty %txt of %txt"><l>scaleUpperOffset</l><block var="target"/></custom-block><l>1</l></list></block></list><list><block s="reportDifference"><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleRightOffset</l><block var="target"/></custom-block></block><l>1</l></block><block s="reportDifference"><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLowerOffset</l><block var="target"/></custom-block></block><l>1</l></block></list><block var="target"/><l><bool>false</bool></l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>costume</l></list></block><script><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><l>1</l><l>1</l></list><list><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><l>1</l></block><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><l>1</l></block></list><block var="target"/><l><bool>false</bool></l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>plotData</l></list></block><script><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>plots</l><block var="target"/><block s="reportNewList"><list></list></block></custom-block></script><list></list></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>fillColor</l><block var="target"/><block var="oldFillColor"/></custom-block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="restore PlotPad content of %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="171.33333333333334" collapsed="false">Restores the last plotson the PlotPad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>restore PlotPad content</l></custom-block></script><list></list></block><block s="doForEach"><l>plot</l><custom-block s="PlotPadProperty %txt of %txt"><l>plots</l><block var="target"/></custom-block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="plot"/></block><l>function</l></list></block><script><custom-block s="add graph %s to PlotPad %txt"><block s="reportListItem"><l>2</l><block var="plot"/></block><block var="target"/></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="plot"/></block><l>numericData</l></list></block><script><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block s="reportListItem"><l>2</l><block var="plot"/></block><block var="target"/></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="plot"/></block><l>mixedData</l></list></block><script><custom-block s="add dataplot of mixed data: %s %br y-scale? %b x-scale? %b to PlotPad %txt"><block s="reportListItem"><l>2</l><block var="plot"/></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesShowYscale</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesShowXscale</l><block var="target"/></custom-block><block var="target"/></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="plot"/></block><l>histogram</l></list></block><script><custom-block s="add histogram of %s with %n groups %br to PlotPad %txt y-axis starting with 0? %b"><block s="reportListItem"><l>2</l><block var="plot"/></block><block s="reportListItem"><l>3</l><block var="plot"/></block><block var="target"/><custom-block s="PlotPadProperty %txt of %txt"><l>pretty</l><block var="target"/></custom-block></custom-block></script><list></list></block></script></block></script></block></script></block-definition><block-definition s="set pretty ranges on PlotPad %&apos;sprite&apos;" type="command" category="5. PlotPad for data plots"><comment x="0" y="0" w="311.3333333333333" collapsed="false">Sets the ranges to &quot;pretty&quot; values. Many thanks to Rick Hessman!</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>pretty</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>set pretty ranges on PlotPad</l></custom-block></script><list></list></block><block s="doSetVar"><l>pretty</l><custom-block s="pretty values for a PlotPad from %n %br to %n with %n intervals"><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXintervals</l><block var="target"/></custom-block></custom-block><comment w="156.80952380952382" collapsed="false">get dictionary of pretty x-values.</comment></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstart</l><block var="target"/><block s="reportListItem"><l>start</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstep</l><block var="target"/><block s="reportListItem"><l>step</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXscaling</l><block var="target"/><block s="reportListItem"><l>scaling</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXintervals</l><block var="target"/><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportVariadicProduct"><list><l>6</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXtextheight</l><block var="target"/></custom-block></list></block></block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXprecision</l><block var="target"/><block s="reportListItem"><l>precision</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXminitics</l><block var="target"/><block s="reportListItem"><l>minitics</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xLeft</l><block var="target"/><block s="reportListItem"><l>start</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xRight</l><block var="target"/><block s="reportListItem"><l>stop</l><block var="pretty"/></block></custom-block><block s="doSetVar"><l>pretty</l><custom-block s="pretty values for a PlotPad from %n %br to %n with %n intervals"><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYintervals</l><block var="target"/></custom-block></custom-block><comment w="156.80952380952382" collapsed="false">get dictionary of pretty y-values.</comment></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstart</l><block var="target"/><block s="reportListItem"><l>start</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstep</l><block var="target"/><block s="reportListItem"><l>step</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYscaling</l><block var="target"/><block s="reportListItem"><l>scaling</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYintervals</l><block var="target"/><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportVariadicProduct"><list><l>8</l><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYtextheight</l><block var="target"/></custom-block></list></block></block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYprecision</l><block var="target"/><block s="reportListItem"><l>precision</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYminitics</l><block var="target"/><block s="reportListItem"><l>minitics</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yLower</l><block var="target"/><block s="reportListItem"><l>start</l><block var="pretty"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yUpper</l><block var="target"/><block s="reportListItem"><l>stop</l><block var="pretty"/></block></custom-block><custom-block s="clear %txt on %s"><l>costume</l><block var="target"/></custom-block><custom-block s="add axes and scales to PlotPad %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="pretty values for a PlotPad from %&apos;min&apos; $nl to %&apos;max&apos; with %&apos;num&apos; intervals" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="164.33333333333317" collapsed="false">&quot;Pretty&quot; scaling from Rick Hessman. Many thanks!</comment><header></header><code></code><translations></translations><inputs><input type="%n">-10</input><input type="%n">10</input><input type="%n">6</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>sign</l><l>pretty</l><l>between</l><l>places</l><l>delta</l><l>dtic</l><l>scaling</l><l>index</l><l>n</l><l>result</l><l>nint</l></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="num"/><l>3</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: num-value &lt;3 senseless</l><l>pretty values for a PlotPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>abs</option></l><block var="min"/></block><l>2000</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>abs</option></l><block var="max"/></block><l>2000</l></list></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><block s="reportNewList"><list><l>start</l><block var="min"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>stop</l><block var="max"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>step</l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block var="num"/></block></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>scaling</l><l>1</l></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>intervals</l><block var="num"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>precision</l><l>0</l></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>minitics</l><l>1</l></list></block><block var="result"/></block><block s="doReport"><block var="result"/></block></script><list></list><comment w="196.32285529908663" collapsed="false">Numbers are too big for pretty printing.</comment></block><block s="doSetVar"><l>nint</l><block var="num"/></block><block s="doSetVar"><l>pretty</l><block s="reportNewList"><list><l>0.001</l><l>0.002</l><l>0.005</l><l>0.01</l><l>0.02</l><l>0.05</l><l>0.1</l><l>0.2</l><l>0.5</l><l>1</l><l>2</l><l>5</l><l>10</l><l>20</l><l>50</l><l>100</l><l>200</l><l>500</l><l>1000</l><l>2000</l></list></block></block><block s="doSetVar"><l>between</l><block s="reportNewList"><list><l>9</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l><l>3</l><l>4</l><l>1</l></list></block></block><block s="doSetVar"><l>places</l><block s="reportNewList"><list><l>3</l><l>3</l><l>3</l><l>2</l><l>2</l><l>2</l><l>1</l><l>1</l><l>1</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l></list></block></block><block s="doSetVar"><l>sign</l><block s="reportMonadic"><l><option>sign</option></l><block s="reportDifference"><block var="max"/><block var="min"/></block></block></block><block s="doRepeat"><l>2</l><script><block s="doSetVar"><l>delta</l><block s="reportMonadic"><l><option>abs</option></l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block var="nint"/></block></block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="delta"/><l>0.001</l></list></block><block s="reportVariadicLessThan"><list><block var="delta"/><l>2000</l></list></block></list></block><script><block s="doSetVar"><l>scaling</l><l>1</l></block></script><script><block s="doSetVar"><l>scaling</l><block s="reportMonadic"><l><option>10^</option></l><block s="reportMonadic"><l><option>floor</option></l><block s="reportMonadic"><l><option>log</option></l><block s="reportVariadicProduct"><list><l>0.5</l><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>abs</option></l><block var="max"/></block><block s="reportMonadic"><l><option>abs</option></l><block var="min"/></block></list></block></list></block></block></block></block></block></script></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="pretty"/></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="delta"/><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="i"/><block var="pretty"/></block><block var="scaling"/></list></block></list></block><script><block s="doSetVar"><l>index</l><block var="i"/></block></script><list></list></block></script></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="pretty"/></block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="delta"/><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="index"/><block var="pretty"/></block><block var="scaling"/></list></block></block></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="delta"/><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="pretty"/></block><block var="scaling"/></list></block></block></block></list></block></list></block><script><block s="doSetVar"><l>index</l><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block></block></script><list></list></block><block s="doSetVar"><l>dtic</l><block s="reportVariadicProduct"><list><block s="reportListItem"><block var="index"/><block var="pretty"/></block><block var="sign"/></list></block></block><block s="doSetVar"><l>nint</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportMonadic"><l><option>abs</option></l><block s="reportQuotient"><block s="reportDifference"><block var="max"/><block var="min"/></block><block s="reportVariadicProduct"><list><block var="dtic"/><block var="scaling"/></list></block></block></block></block></block></script></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>delta</l><block s="reportVariadicProduct"><list><block var="dtic"/><block var="scaling"/></list></block></block><block s="doSetVar"><l>n</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="min"/><block var="delta"/></block></block></block><block s="doAddToList"><block s="reportNewList"><list><l>start</l><block s="reportVariadicProduct"><list><block var="n"/><block var="dtic"/></list></block></list><comment w="192.76999879201261" collapsed="false">start*scaling is the actual starting value (start is the value displayed next to the tic)</comment></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>stop</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="n"/><block var="dtic"/></list></block><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block var="nint"/><l>1</l></list></block><block var="dtic"/></list></block></list></block></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>step</l><block var="dtic"/></list></block><block var="result"/><comment w="392.5133314895631" collapsed="false">step*scaling is the actual stepping value (step is the difference between the tic labels).</comment></block><block s="doAddToList"><block s="reportNewList"><list><l>scaling</l><block var="scaling"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>intervals</l><block var="nint"/></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>precision</l><block s="reportListItem"><block var="index"/><block var="places"/></block></list></block><block var="result"/></block><block s="doAddToList"><block s="reportNewList"><list><l>minitics</l><block s="reportListItem"><block var="index"/><block var="between"/></block></list></block><block var="result"/></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="get ranges for PlotPad %&apos;sprite&apos; $nl from %&apos;data&apos; with border %&apos;percent&apos;" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s">myData</input><input type="%n">0.1</input></inputs><script><block s="doDeclareVariables"><list><l>ranges</l><l>dx</l><l>dy</l><l>source</l><l>target</l><l>scaleProperties</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>get ranges for PlotPad</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>myData</l></list></block><script><block s="doSetVar"><l>source</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>2</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data!</l><l>get ranges for PlotPad</l></custom-block></script><script><block s="doSetVar"><l>ranges</l><custom-block s="ranges of 2-dim table %l"><block var="source"/></custom-block></block><block s="doSetVar"><l>dx</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>1</l><block var="ranges"/></block></block></list></block></block></script></block><block s="doSetVar"><l>dy</l><block s="reportVariadicProduct"><list><block var="percent"/><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block></list></block></block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xLeft</l><block var="target"/><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="ranges"/></block><block var="dx"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>xRight</l><block var="target"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="ranges"/></block><block var="dx"/></list></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yLower</l><block var="target"/><block s="reportDifference"><block s="reportListItem"><l>3</l><block var="ranges"/></block><block var="dy"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>yUpper</l><block var="target"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>4</l><block var="ranges"/></block><block var="dy"/></list></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstart</l><block var="target"/><block s="reportListItem"><l>1</l><block var="ranges"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXstep</l><block var="target"/><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="ranges"/></block><block s="reportListItem"><l>1</l><block var="ranges"/></block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesXintervals</l><block var="target"/></custom-block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXscaling</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesXminitics</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstart</l><block var="target"/><block s="reportListItem"><l>3</l><block var="ranges"/></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYstep</l><block var="target"/><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="ranges"/></block><block s="reportListItem"><l>3</l><block var="ranges"/></block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scalesYintervals</l><block var="target"/></custom-block></block></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYscaling</l><block var="target"/><l>1</l></custom-block><custom-block s="set PlotPadProperty %txt of %txt to %s"><l>scalesYminitics</l><block var="target"/><l>1</l></custom-block></script></block></script></block-definition><block-definition s="ranges of 2-dim table %&apos;data&apos;" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="218.33333333333312" collapsed="false">Calculates the ranges of two columns of a table.&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: matrix required!</l></block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>2</l></list></block></block><script><block s="doReport"><l>ERROR: 2-dimensional matrix required!</l></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>2</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportCombine"><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>2</l><block var="data"/><l><bool>true</bool></l></custom-block><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="convert value %&apos;pos&apos; to coordinate %&apos;coordinate&apos; $nl of PlotPad %&apos;sprite&apos;" type="reporter" category="5. PlotPad for data plots" space="true"><comment x="0" y="0" w="135.1666666666667" collapsed="false">Conversion of coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%n">100</input><input type="%s" readonly="true">xp<options>xp&#xD;yp&#xD;x&#xD;y</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>x0</l><l>diagramWidth</l><l>y0</l><l>diagramHeight</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>convert value to coordinate</l></custom-block></script><list></list></block><block s="doSetVar"><l>diagramWidth</l><block s="reportDifference"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLeftOffset</l><block var="target"/></custom-block></block></block><block s="doSetVar"><l>diagramHeight</l><block s="reportDifference"><block s="reportDifference"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLowerOffset</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleUpperOffset</l><block var="target"/></custom-block></block></block><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block><block var="diagramWidth"/></list></block><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block></block></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><block var="diagramHeight"/></list></block><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></block></block></block><block s="doSetVar"><l>coordinate</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="coordinate"/><l> </l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="coordinate"/><l>xp</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="x0"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="pos"/><block var="diagramWidth"/></list></block><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></block></block></list></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLeftOffset</l><block var="target"/></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="coordinate"/><l>yp</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportDifference"><block var="y0"/><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="pos"/><block var="diagramHeight"/></list></block><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></block></block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleUpperOffset</l><block var="target"/></custom-block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="coordinate"/><l>x</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportDifference"><block var="pos"/><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLeftOffset</l><block var="target"/></custom-block></block><block var="x0"/></block><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></block></list></block><block var="diagramWidth"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="coordinate"/><l>y</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y0"/><block s="reportDifference"><block var="pos"/><custom-block s="PlotPadProperty %txt of %txt"><l>scaleUpperOffset</l><block var="target"/></custom-block></block></block><block s="reportDifference"><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></block></list></block><block var="diagramHeight"/></block></block></script><list></list></block></script></block></script></block-definition><block-definition s="PlotPad %&apos;selection&apos; on %&apos;sprite&apos; by mouse" type="reporter" category="5. PlotPad for data plots"><comment x="0" y="0" w="128.33333333333334" collapsed="false">Obtaining coordinates of a PlotPad at mouseposition.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">costume-coordinates<options>costume-coordinates&#xD;graph-coordinates</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>targetCostumeWidth</l><l>targetCostumeHeight</l><l>targetXPosition</l><l>targetYPosition</l><l>targetSize</l><l>x</l><l>y</l><l>x0</l><l>y0</l><l>targetCostume</l><l>xLeft</l><l>xRight</l><l>yLower</l><l>yUpper</l><l>diagramWidth</l><l>diagramHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a PlotPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as PlotPad!</l><l>PlotPad ... by mouse</l></custom-block></script><list></list></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doSetVar"><l>targetCostume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>targetCostumeWidth</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetCostumeHeight</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetXPosition</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>costume-coordinates</l></list><comment w="121.68283420138891" collapsed="false">costume coordinates.</comment></block><script><block s="doWarp"><script><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>graph-coordinates</l></list><comment w="121.68283420138891" collapsed="false">costume coordinates.</comment></block><script><block s="doWarp"><script><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>xLeft</l><custom-block s="PlotPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></block><block s="doSetVar"><l>xRight</l><custom-block s="PlotPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block></block><block s="doSetVar"><l>yLower</l><custom-block s="PlotPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></block><block s="doSetVar"><l>yUpper</l><custom-block s="PlotPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block></block><block s="doSetVar"><l>diagramWidth</l><block s="reportDifference"><block s="reportDifference"><block var="targetCostumeWidth"/><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLeftOffset</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleRightOffset</l><block var="target"/></custom-block></block></block><block s="doSetVar"><l>diagramHeight</l><block s="reportDifference"><block s="reportDifference"><block var="targetCostumeHeight"/><custom-block s="PlotPadProperty %txt of %txt"><l>scaleUpperOffset</l><block var="target"/></custom-block></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLowerOffset</l><block var="target"/></custom-block></block></block><block s="doSetVar"><l>x0</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="xLeft"/><block s="reportDifference"><block var="xLeft"/><block var="xRight"/></block></block><block var="diagramWidth"/></list></block></block><block s="doSetVar"><l>y0</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="yUpper"/><block s="reportDifference"><block var="yUpper"/><block var="yLower"/></block></block><block var="diagramHeight"/></list></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportDifference"><block var="x"/><block var="x0"/></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleLeftOffset</l><block var="target"/></custom-block></block><block s="reportDifference"><block var="xRight"/><block var="xLeft"/></block></list></block><block var="diagramWidth"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportDifference"><block var="y0"/><block var="y"/></block><custom-block s="PlotPadProperty %txt of %txt"><l>scaleUpperOffset</l><block var="target"/></custom-block></list></block><block s="reportDifference"><block var="yUpper"/><block var="yLower"/></block></list></block><block var="diagramHeight"/></block></list></block></block></script></block></script></block></script><list></list></block></script></block-definition><block-definition s="Example: $nl Plot of random data width %&apos;w&apos; height %&apos;h&apos; $nl line %&apos;lstyle&apos; marker %&apos;mstyle&apos; color %&apos;color&apos;" type="command" category="5. PlotPad for data plots" space="true"><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%txt">continuous</input><input type="%txt">o_circle</input><input type="%mult%s">0</input></inputs><script><custom-block s="import %s from %s to SciSnap!Data"><l>CSV-data</l><custom-block s="%n random points near %repRing %br between %n and %n range %n"><l>20</l><block s="reifyReporter"><autolambda><block s="reportDifference"><block s="reportVariadicProduct"><list><l>0.3</l><block s="reportPower"><l></l><l>3</l></block></list></block><l></l></block></autolambda><list></list></block><l>-5</l><l>5</l><l>2</l></custom-block></custom-block><block s="doSetVar"><l>SciSnap!Data</l><custom-block s="%s sorted by column %s %br ascending %b considering headline? %b"><l>SciSnap!Data</l><l>1</l><l><bool>true</bool></l><l><bool>true</bool></l></custom-block></block><custom-block s="configure %txt as a PlotPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><block var="w"/><block var="h"/><l>lightGray</l><l><bool>true</bool></l><l><bool>true</bool></l><l>10</l></custom-block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><l>thisSprite</l><block var="SciSnap!Data"/><l>0.07</l></custom-block><custom-block s="set pretty ranges on PlotPad %txt"><l>thisSprite</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><l>Plot of random data close to a polynom</l><l>18</l><l>x</l><l>16</l><l>y</l><l>16</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %mult%s on %txt"><block var="lstyle"/><l>1</l><list><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></list><l>thisSprite</l></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %mult%s connected? %b on %txt"><block var="mstyle"/><l>5</l><list><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></list><l><bool>true</bool></l><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="SciSnap!Data"/><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script></block-definition><block-definition s="Example: $nl Histogram of random data width %&apos;w&apos; height %&apos;h&apos; $nl line %&apos;lstyle&apos; color %&apos;color&apos;" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%txt">continuous</input><input type="%mult%s"></input></inputs><script><custom-block s="configure %txt as a PlotPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><block var="w"/><block var="h"/><block var="color"/><l><bool>true</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><l>Histogram of random data</l><l>18</l><l>x</l><l>16</l><l>y</l><l>16</l></custom-block><custom-block s="add histogram of %s with %n groups %br to PlotPad %txt y-axis starting with 0? %b"><custom-block s="random vector dim %n %br range %n to %n"><l>1000</l><l>1</l><l>99</l></custom-block><l>10</l><l>thisSprite</l><l><bool>true</bool></l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script></block-definition><block-definition s="Example: $nl Simple plot of data: %&apos;data&apos; $nl x: %&apos;x&apos; y: %&apos;y&apos; width: %&apos;w&apos; height: %&apos;h&apos; $nl title: %&apos;t&apos; labels: %&apos;xlab&apos; %&apos;ylab&apos; $nl line: %&apos;l&apos; marker: %&apos;m&apos; color: %&apos;color&apos;" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">0</input><input type="%n">0</input><input type="%n">600</input><input type="%n">400</input><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%txt" readonly="true">continuous<options>none&#xD;continuous&#xD;dashed&#xD;dash-dot&#xD;dot-dot&#xD;rainbow&#xD;inverse rainbow</options></input><input type="%txt" readonly="true">square<options>none&#xD;o_circle&#xD;._point&#xD;+_plus&#xD;x_ex&#xD;square&#xD;triangle</options></input><input type="%mult%s">0</input></inputs><script><custom-block s="configure %txt as a PlotPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><block var="w"/><block var="h"/><block var="color"/><l><bool>false</bool></l><l><bool>true</bool></l><l>15</l></custom-block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doSetVar"><l>data</l><custom-block s="sort %s with predicate %predRing"><custom-block s="%n random points near %repRing %br between %n and %n range %n"><l>100</l><block s="reifyReporter"><autolambda><block s="reportDifference"><block s="reportPower"><l></l><l>3</l></block><block s="reportVariadicProduct"><list><l>3</l><l></l></list></block></block></autolambda><list></list></block><l>-5</l><l>5</l><l>2</l></custom-block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></custom-block></block></script><list></list></block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><l>thisSprite</l><block var="data"/><l>0.07</l></custom-block><custom-block s="set pretty ranges on PlotPad %txt"><l>thisSprite</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><block var="t"/><l>18</l><block var="xlab"/><l>16</l><block var="ylab"/><l>16</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %mult%s on %txt"><block var="l"/><l>1</l><block var="r"/><block var="g"/></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %mult%s connected? %b on %txt"><block var="m"/><l>5</l><block var="r"/><block var="g"/><block var="b"/></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="data"/><l>thisSprite</l></custom-block></script></block-definition><block-definition s="Example: regression line" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>regressionData</l><l>data</l></list></block><block s="doSetVar"><l>data</l><custom-block s="%n random points near a straight line %br x-range %n %n gradient %n %br y-axis-intercept %n range %n"><l>150</l><l>-5</l><l>5</l><l>1</l><l>0</l><l>4</l></custom-block></block><block s="doSetVar"><l>regressionData</l><custom-block s="regression line parameters of %s"><block var="data"/></custom-block></block><custom-block s="configure %txt as a PlotPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>true</bool></l><l><bool>true</bool></l><l>15</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><l>Random data with regression line</l><l>18</l><l>x-values</l><l>16</l><l>y-values</l><l>16</l></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %mult%s connected? %b on %txt"><l>square</l><l>5</l><list><l>red</l></list><l><bool>false</bool></l><l>thisSprite</l></custom-block><custom-block s="set PlotPad ranges for x: %n %n y: %n %n %br with border? %b of %n on %txt"><l>-5</l><l>5</l><l>-5</l><l>5</l><l><bool>false</bool></l><l>0.1</l><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="data"/><l>thisSprite</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %mult%s on %txt"><l>continuous</l><l>2</l><list><l>red</l></list><l>thisSprite</l></custom-block><custom-block s="add graph %s to PlotPad %txt"><block var="regressionData"/><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script></block-definition><block-definition s="change SpriteName of %&apos;sprite&apos; to %&apos;newName&apos;" type="command" category="control"><comment x="0" y="0" w="69.23076923076923" collapsed="false">Changes the spritename.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input><input type="%txt">new name</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite required!</l><l>remove sprite ...</l></custom-block></script><list></list></block><block s="doApplyExtension"><l>SciS_changeSpritenameTo(sprite,newName)</l><list><block var="target"/><block var="newName"/></list></block></script></block></script></block-definition><block-definition s="list of sprites with names $nl starting with %&apos;name&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Reports a list of sprites with similar names. Used when &quot;cleaning up&quot;.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisName</input></inputs><script><block s="doDeclareVariables"><list><l>sprites</l><l>length</l><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>length</l><block s="reportTextAttribute"><l><option>length</option></l><block var="name"/></block></block><block s="doSetVar"><l>sprites</l><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="doAddToList"><block s="reportGet"><l><option>self</option></l></block><block var="sprites"/></block><block s="doForEach"><l>sprite</l><block var="sprites"/><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block><l>1</l><block var="length"/></custom-block><block var="name"/></list></block><script><block s="doAddToList"><block var="sprite"/><block var="result"/></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="list %&apos;theList&apos; contains %&apos;thisItem&apos; anywhere" type="predicate" category="lists" space="true"><comment x="0" y="0" w="90" collapsed="false">Checks whether an element is anywhere in a list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s">this value</input></inputs><script><block s="doReport"><block s="reportVariadicNotEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block var="thisItem"/></list></block></autolambda><list></list></block><block s="reportListAttribute"><l><option>flatten</option></l><block var="theList"/></block></block><l></l></list></block></block></script></block-definition><block-definition s="INFO &quot;SQL tools&quot;" type="command" category="4. SQL tools"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "SQL tools"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks for making SQL queries to databases.&#xD;The default is a server of the University of Goettingen, which provides different databases.&#xD;First, one of the databases should be selected. Then their tables and, if necessary, attributes can be displayed.&#xD;It is recommended to display these values permanently as "dialogs" to make it easier to compose SQL queries.&#xD;SQL queries can be created simple or more complex. The results of the two blocks produce texts.&#xD;These can be executed using the "exec SQL-command" block. Consequently, SQL statements can also be entered directly there.&#xD;The usual predicates and operators are available as blocks for generating SQL queries.&#xD;No changes can be made to the databases.</l></custom-block></custom-block></script></block-definition><block-definition s="configure SQL" type="command" category="4. SQL tools" space="true"><comment x="0" y="0" w="231.26365661621094" collapsed="false">Creates SQL variables and sets some properties.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>SQLData</l></list></block><block s="doSetVar"><l>SQLData</l><block s="reportNewList"><list></list></block></block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfConfiguration</l><l>SQL</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfData</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>connection</l><l></l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>connected</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>databases</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>currentDatabase</l><l></l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>currentTable</l><l></l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>rows</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>minValue</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>maxValue</l><l>not set</l></custom-block><block s="doSwitchToCostume"><l>SQLDisconnected</l></block></script></block></script></block-definition><block-definition s="is SQL configured?" type="predicate" category="4. SQL tools"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="SciSnap! global property %s"><l>typeOfConfiguration</l></custom-block><l>SQL</l></list></block></block></script></block-definition><block-definition s="connect to database server" type="command" category="4. SQL tools"><comment x="0" y="0" w="180.18768601190536" collapsed="false">Establishes connection and sets the corresponding properties. Change parameters if necessary. </comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>databases</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: please configure SciSnap! for SQL first!</l><l>connect to database server</l></custom-block></script><list></list></block><custom-block s="set SciSnap! global property %txt to %s"><l>connection</l><l>https://snapextensions.uni-goettingen.de/mysqlquery.php?server=db1&amp;user=snapexuser&amp;password=snap!user</l></custom-block><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;type=connect</l></list></block></block><l>1</l><l>2</l></custom-block><l>ok</l></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>connected</l><block s="reportBoolean"><l><bool>true</bool></l></block></custom-block><block s="doSwitchToCostume"><l>SQLConnected</l></block><block s="doSetVar"><l>databases</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;type=getDBs</l></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="databases"/></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="databases"/></block></block><l>0</l></list></block></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="databases"/></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="databases"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="databases"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></list></block></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>databases</l><block s="reportNewList"><list></list></block></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>databases</l><block var="databases"/></custom-block></script></block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>connected</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doSwitchToCostume"><l>SQLDisconnected</l></block></script></block></script></block></script></block-definition><block-definition s="read databases" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="220.6666666666666" collapsed="false">Reports a list of databases on the server and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>databases</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: SQL isn&apos;t configured yet!</l><l>read databases</l></custom-block></script><list></list></block><block s="doSetVar"><l>databases</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;type=getDBs</l></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="databases"/></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="databases"/></block></block><l>0</l></list></block></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="databases"/></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="databases"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="databases"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></list></block></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>databases</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: reading of databases has failed!</l><l>read databases</l></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>databases</l><block var="databases"/></custom-block><block s="doReport"><block var="databases"/></block></script></block></script></block></script></block-definition><block-definition s="choose database no. %&apos;n&apos;" type="command" category="4. SQL tools"><comment x="0" y="0" w="182.40882873535156" collapsed="false">Selects one of the databases and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>tables</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: please configure SciSnap! for SQL first!</l><l>choose database no.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><custom-block s="SciSnap! global property %s"><l>databases</l></custom-block></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>choose database no.</l></custom-block></script><list></list></block><custom-block s="set SciSnap! global property %txt to %s"><l>currentDatabase</l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>databases</l></custom-block></block></custom-block><block s="doSetVar"><l>dummy</l><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;command=</l><block s="reportJoinWords"><list><l>USE </l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></list></block></block></block><custom-block s="set SciSnap! global property %txt to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block><block s="doSetVar"><l>tables</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;command=</l><block s="reportJoinWords"><list><l>SHOW TABLES FROM </l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block><l>&amp;type=getTables</l></list></block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="tables"/></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="tables"/></block></block><l>0</l></list></block></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="tables"/></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="tables"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="tables"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></list></block></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no tables accessable!</l><l>choose database no.</l></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>tables</l><block var="tables"/></custom-block></script></block></script></block></script></block-definition><block-definition s="read tables" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="392.7626953124997" collapsed="false">Reports a list of tables of the chosen database and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>tables</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: SQL isn&apos;t configured yet!</l><l>read tables</l></custom-block></script><list></list></block><block s="doSetVar"><l>tables</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;command=</l><block s="reportJoinWords"><list><l>SHOW TABLES FROM </l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block><l>&amp;type=getTables</l></list></block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="tables"/></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l><option>last</option></l><block var="tables"/></block></block><l>0</l></list></block></list></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="tables"/></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="tables"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="tables"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></list></block></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>tables</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no tables accessable!</l><l>read tables</l></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>tables</l><block var="tables"/></custom-block></script></block><block s="doReport"><block var="tables"/></block></script></block></script></block-definition><block-definition s="choose table no. %&apos;n&apos;" type="command" category="4. SQL tools"><comment x="0" y="0" w="163.10389383951835" collapsed="false">Selects one of the tables and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>columns</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: please configure SciSnap! for SQL first!</l><l>choose table no.</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>choose database no.</l></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>currentTable</l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><block s="doSetVar"><l>columns</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;command=</l><block s="reportJoinWords"><list><l>SHOW COLUMNS FROM </l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block><l>&amp;type=getColumns&amp;database=</l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="columns"/></block><l></l></list></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="columns"/></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="columns"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="columns"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></list></block></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table not accessable!</l><l>choose database no.</l></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>attributes</l><block var="columns"/></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="attributes of table no. %&apos;n&apos;" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="213.86197916666674" collapsed="false">Reads the attributes of the specified table and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>columns</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: SQL isn&apos;t configured yet!</l><l>attributes of table no.</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: table doesn&apos;t exist!</l><l>attributes of table no.</l></custom-block></script><script><block s="doSetVar"><l>columns</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;command=</l><block s="reportJoinWords"><list><l>SHOW COLUMNS FROM </l><block s="reportListItem"><block var="n"/><custom-block s="SciSnap! global property %s"><l>tables</l></custom-block></block></list></block><l>&amp;type=getColumns&amp;database=</l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></block><l><option>line</option></l></block></block><block s="doUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="columns"/></block><l></l></list></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="columns"/></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="columns"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportListItem"><l>1</l><block var="columns"/></block><l>1</l><l>5</l></custom-block><l>ERROR</l></list></block></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>attributes</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: reading of attributes has failed!</l><l>attributes of table no.</l></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>attributes</l><block var="columns"/></custom-block></script></block><block s="doReport"><block var="columns"/></block></script></block></script></block></script></block-definition><block-definition s="SELECT %&apos;what&apos; %&apos;attribs&apos; FROM %&apos;mytables&apos; WHERE %&apos;cond&apos;" type="reporter" category="4. SQL tools" space="true"><comment x="0" y="0" w="57.16666666666697" collapsed="false">Generates a simplified SQL query.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>*&#xD;DISTINCT</options></input><input type="%mult%txt"></input><input type="%mult%txt"></input><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l>SELECT </l></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="what"/><l>*</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>* FROM </l></list></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="what"/><l>DISTINCT</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>DISTINCT </l></list></block></block></script><list></list></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="attribs"/></block><l>1</l></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l> FROM </l></list></block></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: tables missing!</l><l>SELECT simple</l></custom-block></script><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>1</l></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block></list></block></block></script></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="cond"/></block><l>2</l></list></block><script><block s="doReport"><block var="result"/></block></script><script><block s="doReport"><block s="reportJoinWords"><list><block var="result"/><l> WHERE </l><block var="cond"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="SELECT %&apos;what&apos; %&apos;attribs&apos; FROM %&apos;mytables&apos; WHERE %&apos;cond&apos; $nl GROUP BY %&apos;groupattribs&apos; HAVING %&apos;havcond&apos; ORDER BY %&apos;orderatts&apos; %&apos;how&apos; LIMIT %&apos;n&apos;" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="104.16666666666667" collapsed="false">Generates an almost complete SQL query.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>*&#xD;DISTINCT</options></input><input type="%mult%txt"></input><input type="%mult%txt"></input><input type="%b"></input><input type="%mult%txt"></input><input type="%b"></input><input type="%mult%txt"></input><input type="%txt" readonly="true">ASC<options>ASC&#xD;DESC</options></input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l>SELECT </l></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="what"/><l>*</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>* FROM </l></list></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="what"/><l>DISTINCT</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l>DISTINCT </l></list></block></block></script><list></list></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="attribs"/></block><l>1</l></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="attribs"/></block><l> FROM </l></list></block></block></script></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: tables missing!</l><l>SELECT full</l></custom-block></script><script><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="mytables"/></block><l>1</l></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="mytables"/></block></list></block></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="cond"/></block><l>2</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> WHERE </l><block var="cond"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="groupattribs"/></block><l>0</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> GROUP BY </l></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="groupattribs"/></block><l>1</l></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="groupattribs"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="groupattribs"/></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="havcond"/></block><l>2</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> HAVING </l><block var="havcond"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="orderatts"/></block><l>0</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ORDER BY </l></list></block></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="orderatts"/></block><l>1</l></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="orderatts"/></block><l>,</l></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportListItem"><block var="i"/><block var="orderatts"/></block></list></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="how"/><l>ASC</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> ASC</l></list></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="how"/><l>DESC</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> DESC</l></list></block></block></script><list></list></block></script></block><block s="doIf"><block s="reportIsA"><block var="n"/><l><option>number</option></l></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><l> LIMIT </l><block var="n"/></list></block></block></script><list></list></block></script><list></list></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="exec SQL-command %&apos;query&apos;" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="113.33333333333334" collapsed="false">Executes an SQL query.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>query2</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: SQL isn&apos;t configured yet!</l><l>exec SQL-command</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="query"/><l>:</l></block></block><l>ERROR</l></list></block><script><block s="doReport"><block var="query"/></block></script><script><block s="doSetVar"><l>query2</l><l></l></block><block s="doFor"><l>i</l><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="query"/></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="i"/><block var="query"/></block><l>%</l></list></block><script><block s="doSetVar"><l>query2</l><block s="reportJoinWords"><list><block var="query2"/><l>%25</l></list></block></block></script><script><block s="doSetVar"><l>query2</l><block s="reportJoinWords"><list><block var="query2"/><block s="reportLetter"><block var="i"/><block var="query"/></block></list></block></block></script></block></script><comment w="160" collapsed="false">replaces &quot;%&quot; with &quot;%25&quot; to prevent trouble with the url-block.</comment></block><block s="doSetVar"><l>result</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><custom-block s="SciSnap! global property %s"><l>connection</l></custom-block><l>&amp;type=query&amp;query=</l><block var="query2"/><l>&amp;database=</l><custom-block s="SciSnap! global property %s"><l>currentDatabase</l></custom-block></list></block></block><l><option>line</option></l></block></block></script></block><block s="doUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l><option>last</option></l><block var="result"/></block><l></l></list></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="import query result %&apos;source&apos; to SQLData" type="command" category="4. SQL tools" space="true"><comment x="0" y="0" w="135.83333333333334" collapsed="false">Imports the results of an SQL-query to SQLData and sets the corresponding properties.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is SQL configured?"></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: please configure SciSnap! for SQL first!</l><l>import SQL-data</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><script><block s="doSetVar"><l>SQLData</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><script><block s="doAddToList"><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block var="source"/></block><l>,</l></block><block var="SQLData"/></block></script></block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfData</l><l>table</l></custom-block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="SQLData"/></block><l>0</l></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><l>0</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>rows</l><l>0</l></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SQLData"/></block></custom-block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="SQLData"/></block><l><option>list</option></l></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="SQLData"/></block></block></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><l>1</l></custom-block></script></block><custom-block s="set SciSnap! global property %txt to %s"><l>minValue</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>maxValue</l><l>not set</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only SQL import from lists!</l><l>import SQL-data</l></custom-block></script></block></script></block></script></block-definition><block-definition s="%&apos;a&apos; = %&apos;b&apos;" type="predicate" category="4. SQL tools" space="true"><comment x="0" y="0" w="125.83333333333334" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="a"/><l> = </l><block var="b"/><l>)</l></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &lt; %&apos;b&apos;" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="125.83333333333334" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="a"/><l> &lt; </l><block var="b"/><l>)</l></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt; %&apos;b&apos;" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="127.5" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="a"/><l> &gt; </l><block var="b"/><l>)</l></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; OR %&apos;b&apos;" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="124.1666666666667" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="a"/><l> OR </l><block var="b"/><l>)</l></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; AND %&apos;b&apos;" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="131.66666666666669" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="a"/><l> AND </l><block var="b"/><l>)</l></list></block></block></script></block-definition><block-definition s="NOT %&apos;a&apos;" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="126.6666666666667" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>NOT(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; LIKE %&apos;b&apos;" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block var="a"/><l> LIKE </l><block var="b"/><l>)</l></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; IN ( %&apos;liste&apos; )" type="predicate" category="4. SQL tools"><comment x="0" y="0" w="124.1666666666667" collapsed="false">Returns an SQL predicate.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><l> IN (</l><block var="liste"/><l>)</l></list></block></block></script></block-definition><block-definition s="AVG ( %&apos;a&apos; )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="125" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>AVG(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="COUNT ( %&apos;a&apos; )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="115.83333333333334" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>COUNT(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="MIN ( %&apos;a&apos; )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="112.5" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>MIN(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="MAX ( %&apos;a&apos; )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="120.83333333333334" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>MAX(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="SUM ( %&apos;a&apos; )" type="reporter" category="4. SQL tools"><comment x="0" y="0" w="118.33333333333334" collapsed="false">Returns an SQL value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>SUM(</l><block var="a"/><l>)</l></list></block></block></script></block-definition><block-definition s="SQL-Example: simple query" type="command" category="4. SQL tools" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure SQL"></custom-block><block s="doShowVar"><l>SQLData</l></block><custom-block s="connect to database server"></custom-block><custom-block s="choose database no. %n"><l>2</l></custom-block><custom-block s="import query result %l to SQLData"><custom-block s="exec SQL-command %txt"><custom-block s="SELECT %s %mult%txt FROM %mult%txt WHERE %b"><l>*</l><list></list><list><l>schueler</l></list><l/></custom-block></custom-block></custom-block></script></block-definition><block-definition s="SQL-Example: a bit advanced query" type="command" category="4. SQL tools"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure SQL"></custom-block><block s="doShowVar"><l>SQLData</l></block><custom-block s="connect to database server"></custom-block><custom-block s="choose database no. %n"><l>2</l></custom-block><custom-block s="import query result %l to SQLData"><custom-block s="exec SQL-command %txt"><custom-block s="SELECT %s %mult%txt FROM %mult%txt WHERE %b %br GROUP BY %mult%txt HAVING %b ORDER BY %mult%txt %txt LIMIT %n"><l></l><list><l>Name</l><custom-block s="AVG ( %txt )"><l>Punkte</l></custom-block></list><list><l>schueler</l><l>hatkurs</l></list><custom-block s="%txt = %txt"><l>schueler.ID_Nummer</l><l>hatkurs.ID_Nummer</l></custom-block><list><l>Name</l></list><l/><list><custom-block s="AVG ( %txt )"><l>Punkte</l></custom-block></list><l>DESC</l><l>10</l></custom-block></custom-block></custom-block></script></block-definition><block-definition s="where is the %&apos;block&apos; block used?" type="reporter" category="sensing" space="true"><comment x="0" y="0" w="192.66666666666666" collapsed="false">Partly copied von Brian Harvey&apos;s manual.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>header</l></list></block><block s="doSetVar"><l>header</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="block"/><l><option>blocks</option></l></block></block></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="list %l contains %s anywhere"><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>definition</option></l><block s="reifyReporter"><script></script><list></list></block></block><l><option>blocks</option></l></block><block var="header"/></custom-block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportBlockAttribute"><l><option>custom?</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block><block s="reportGet"><l><option>blocks</option></l></block></block></block></block></script></block-definition><block-definition s="make a drop at %&apos;x&apos; %&apos;y&apos; bounded by a rectangle %&apos;width&apos; %&apos;height&apos; $nl shifted by %&apos;dx&apos; %&apos;dy&apos; percent, main color %&apos;color&apos; $nl with %&apos;n&apos; particles on %&apos;sprite&apos;" type="command" category="pen"><comment x="0" y="0" w="136.66666666666666" collapsed="false">Inspired by the &quot;drip painting&quot; of Jackson Pollock. ;-)</comment><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">50</input><input type="%n">50</input><input type="%n">-30</input><input type="%n">20</input><input type="%s" readonly="true">red<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%n">100</input><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite&#xD;theStage</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>costume</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><block s="reportIsA"><block var="target"/><l><option>stage</option></l></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>target isn&apos;t a sprite</l><l>make a drop</l></custom-block></script><list></list></block><block s="doSetVar"><l>dx</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="width"/><block var="dx"/></list></block><l>100</l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>abs</option></l><block var="dx"/></block><block var="width"/></list></block><script><block s="doSetVar"><l>dx</l><block var="width"/></block></script><list></list></block><block s="doSetVar"><l>dy</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="height"/><block var="dy"/></list></block><l>100</l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportMonadic"><l><option>abs</option></l><block var="dy"/></block><block var="height"/></list></block><script><block s="doSetVar"><l>dy</l><block var="height"/></block></script><list></list></block><block s="doSetVar"><l>costume</l><custom-block s="copy of costume %s"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block></block><block s="doSetVar"><l>color</l><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block></block><block s="doIf"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drip(xa,ya,width,height,dx,dy,color,costume,n)</l><list><block var="x"/><block var="y"/><block var="width"/><block var="height"/><block var="dx"/><block var="dy"/><block var="color"/><block var="costume"/><block var="n"/></list></block></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="list length %&apos;n&apos; initialized with %&apos;value&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">Creates a list of the specified length, filled with the specified entry.</comment><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%s">anything</input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doRepeat"><block var="n"/><script><block s="doAddToList"><block var="value"/><block var="result"/></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="Example: &quot;drip painting&quot;" type="command" category="pen" space="true"><comment x="0" y="0" w="153.2734375" collapsed="false">Inspired by Jackson Pollock ;-)</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>shift</l><l>width</l><l>height</l><l>deltaX</l><l>deltaY</l></list></block><block s="doWarp"><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block s="reportNewList"><list><l>220</l><l>200</l><l>225</l></list></block></custom-block></list></block><block s="doForever"><script><block s="doSetVar"><l>shift</l><block s="reportRandom"><l>-20</l><l>20</l></block></block><block s="doSetVar"><l>width</l><block s="reportRandom"><l>20</l><l>200</l></block></block><block s="doSetVar"><l>height</l><block s="reportRandom"><l>20</l><l>200</l></block></block><block s="doSetVar"><l>deltaX</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="shift"/><block var="width"/><l>3</l></list></block><l>100</l></block></block><block s="doSetVar"><l>deltaY</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="shift"/><block var="height"/><l>3</l></list></block><l>100</l></block></block><custom-block s="make a drop at %n %n bounded by a rectangle %n %n %br shifted by %n %n percent, main color %s %br with %n particles on %s"><block s="reportRandom"><block s="reportMonadic"><l><option>neg</option></l><block var="deltaX"/></block><block s="reportDifference"><l>600</l><block var="deltaX"/></block></block><block s="reportRandom"><block s="reportMonadic"><l><option>neg</option></l><block var="deltaY"/></block><block s="reportDifference"><l>400</l><block var="deltaY"/></block></block><block var="width"/><block var="height"/><block var="shift"/><block var="shift"/><block s="reportNewList"><list><block s="reportRandom"><l>50</l><l>255</l></block><block s="reportRandom"><l>50</l><l>255</l></block><block s="reportRandom"><l>50</l><l>255</l></block></list></block><block s="reportRandom"><l>10</l><l>100</l></block><l>theStage</l></custom-block></script></block></script></block></script></block-definition><block-definition s="INFO &quot;ImagePad&quot; for dealing with images" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "ImagePad for image operations"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks for using any sprite or the stage as a sketchpad for image display and processing.&#xD;Initially, the properties for the "pad" used are set to default values, which can be changed using the corresponding blocks.&#xD;Blocks are available for importing and displaying image data, manipulating values, working with the mouse, affine transformations, etc.&#xD;The blocks for drawing standard shapes can be found in SciSnap! globals.&#xD;For working with images that are larger than the sprite, a "window" can be defined for an image.&#xD;In this window, the image "behind" can then be moved, enlarged/shrunk etc. using the mouse.&#xD;Some examples explain how to use the blocks.&#xD;</l></custom-block></custom-block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as an ImagePad width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; with close-button? %&apos;withCloseButton?&apos; left? %&apos;left?&apos; size: %&apos;closeButtonSize&apos;" type="command" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="142.5" collapsed="false">Creates a new  empty costume of the specified size and color and sets local properties</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%txt" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%b">false</input><input type="%b">false</input><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><block var="color"/><block var="withCloseButton?"/><block var="left?"/><block var="closeButtonSize"/></custom-block><block s="doReplaceInList"><l>typeOfConfiguration</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><l>ImagePad</l></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>none</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>minValue</l><l>notSet</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>maxValue</l><l>notSet</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>columns</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>rows</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>mean</l><l>not set</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>stddev</l><l>not set</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>imageType</l><l>not set</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>imageWidth</l><l>not set</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>imageHeight</l><l>not set</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>imageRealSize</l><l>not set</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></script></block></script><scripts><comment x="520.8333333333335" y="80.16666666666683" w="192.5" collapsed="false">Costume attributes and line attributes same as SketchPad.&#xD;&#xD;other attributes:&#xD;&#xD;data properties:&#xD;minValue&#xD;maxValue&#xD;columns&#xD;rows&#xD;mean of values&#xD;stddev of values&#xD;&#xD;image properties:&#xD;image type (RGB,FITS)&#xD;imageWidth&#xD;imageHeight&#xD;imageRealSize&#xD;</comment></scripts></block-definition><block-definition s="is %&apos;sprite&apos; an ImagePad?" type="predicate" category="6. ImagePad for image operations"><comment x="0" y="0" w="134" collapsed="false">Reports whether the sprite is configured as an ImagePad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>ImagePad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l>Stage</l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>ImagePad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>ImagePad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="ImagePadProperty %&apos;key&apos; of %&apos;sprite&apos;" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="95" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;data properties={&#xD;minValue=minValue&#xD;maxValue=maxValue&#xD;columns=columns&#xD;rows=rows&#xD;mean value=mean&#xD;standard deviation=stddev&#xD;}&#xD;image properties ={&#xD;image type=imageType&#xD;image width=imageWidth&#xD;image height=imageHeight&#xD;image real size=imageRealSize&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad!</l><l>ImgePadProperty of ...</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing variable myProperties!</l><l>ImgePadProperty of ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set ImagePadProperty %&apos;key&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="128" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;data properties={&#xD;minValue=minValue&#xD;maxValue=maxValue&#xD;columns=columns&#xD;rows=rows&#xD;mean value=mean&#xD;standard deviation=stddev&#xD;}&#xD;image properties ={&#xD;image type=imageType&#xD;image width=imageWidth&#xD;image height=imageHeight&#xD;image real size=imageRealSize&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>set ImagePadProperty</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="value"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Missing variable "myProperties"!</l><l>set ImagePadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set ImagePad costume properties width: %&apos;width&apos; height: %&apos;height&apos; $nl back color: %&apos;color&apos; offsets: %&apos;leftOffset&apos; %&apos;upperOffset&apos; on %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="117.66039530436255" collapsed="false">a simple way to set some costume attributes:&#xD;1: width&#xD;2: height&#xD;3: back color &#xD;4: left offset for Image&#xD;    position on stage&#xD;4: upper offset for Image&#xD;    position on stage</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%mult%s"></input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>set ImagePad costume properties</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>backColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block></script><script><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block var="height"/></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>backColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><custom-block s="ImagePadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>backColor</l><block var="target"/></custom-block></custom-block></block></script><list></list></block><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="set ImagePad line properties style: %&apos;style&apos; $nl width: %&apos;lineWidth&apos; color: %&apos;color&apos; fill color: %&apos;fillColor&apos; on %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="105.68386840820362" collapsed="false">a simple way to set some net attributes:&#xD;line properties:&#xD;1: line style&#xD;2: lineWidth&#xD;3: line color &#xD;4: fill color</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">continuous<options>continuous&#xD;dashed&#xD;dash-dot&#xD;dot-dot</options></input><input type="%n">1</input><input type="%mult%s"></input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>set ImagePad line properties</l></custom-block></script><list></list></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>lineWidth</l><block var="target"/><block var="lineWidth"/></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>lineStyle</l><block var="target"/><block var="style"/></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>fillColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="fillColor"/></custom-block></custom-block></script></block></script></block-definition><block-definition s="import image data from %&apos;data&apos; $nl to myData of %&apos;sprite&apos; and set properties" type="command" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="186.11111111111117" collapsed="false">if source is not SciSnap!Data data should have the image dimensions in the last row as (width,height,&quot;dimensions&quot;).</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data<options>SciSnap!Data&#xD;currentCostume&#xD;anotherList</options></input><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite&#xD;theStage</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>import image data</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>data</l><custom-block s="copy of %s"><block var="SciSnap!Data"/></custom-block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block><l>RGB</l></list></block><script><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><l>RGB</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageType</l><block var="target"/><l>RGB</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageWidth</l><block var="target"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageHeight</l><block var="target"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block></custom-block><block s="doDeleteFromList"><l><option>last</option></l><block var="data"/></block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><block var="data"/></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>minValue</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>minValue</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>maxValue</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>maxValue</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>rows</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>rows</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>columns</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>minValue</l><block var="target"/><custom-block s="%s of %s"><l>min</l><block var="data"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>maxValue</l><block var="target"/><custom-block s="%s of %s"><l>max</l><block var="data"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>mean</l><block var="target"/><custom-block s="%s of %s"><l>mean</l><block var="data"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>stddev</l><block var="target"/><custom-block s="%s of %s"><l>standard-deviation</l><block var="data"/></custom-block></custom-block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="SciSnap! global property %s"><l>typeOfData</l></custom-block><l>FITS</l></list></block><script><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><l>FITS</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageType</l><block var="target"/><l>FITS</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageWidth</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageHeight</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></custom-block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><custom-block s="copy of %s"><block var="SciSnap!Data"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>minValue</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>minValue</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>maxValue</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>maxValue</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>rows</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>rows</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>columns</l><block var="target"/><custom-block s="SciSnap! global property %s"><l>columns</l></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>mean</l><block var="target"/><custom-block s="%s of %s"><l>mean</l><block var="SciSnap!Data"/></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>stddev</l><block var="target"/><custom-block s="%s of %s"><l>standard-deviation</l><block var="SciSnap!Data"/></custom-block></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no image data in SciSnap!Data available!</l><l>import image data</l></custom-block></script></block></script></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><l>currentCostume</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><l><option>costume</option></l></block><script><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><l>RGB</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageType</l><block var="target"/><l>RGB</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageWidth</l><block var="target"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageHeight</l><block var="target"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>rows</l><block var="target"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>columns</l><block var="target"/><l>4</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>minValue</l><block var="target"/><custom-block s="%s of %s"><l>min</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>maxValue</l><block var="target"/><custom-block s="%s of %s"><l>max</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>mean</l><block var="target"/><custom-block s="%s of %s"><l>mean</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>stddev</l><block var="target"/><custom-block s="%s of %s"><l>standard-deviation</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no costume data available!</l><l>import image data</l></custom-block></script></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list data required!</l><l>import image data</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: data list is empty!</l><l>import image data</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="data"/></block><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>4</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: RGB data required!</l><l>import image data</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>3</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block><l>dimensions</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dimensions in last row of data required!</l><l>import image data</l></custom-block></script><list></list></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><l>RGB</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>columns</l><block var="target"/><l>4</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageWidth</l><block var="target"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageHeight</l><block var="target"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block></custom-block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><custom-block s="copy of %s"><block var="data"/></custom-block></custom-block><block s="doDeleteFromList"><l><option>last</option></l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>rows</l><block var="target"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>minValue</l><block var="target"/><custom-block s="%s of %s"><l>min</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>maxValue</l><block var="target"/><custom-block s="%s of %s"><l>max</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>mean</l><block var="target"/><custom-block s="%s of %s"><l>mean</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>stddev</l><block var="target"/><custom-block s="%s of %s"><l>standard-deviation</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="data"/></block><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dimensions in last row of data required!</l><l>import image data</l></custom-block></script><script><block s="doIf"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>3</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block><l>dimensions</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dimensions in last row of data required!</l><l>import image data</l></custom-block></script><list></list></block></script></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><l>FITS</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageWidth</l><block var="target"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>imageHeight</l><block var="target"/><block s="reportListItem"><l>2</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block></custom-block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><custom-block s="copy of %s"><block var="data"/></custom-block></custom-block><block s="doDeleteFromList"><l><option>last</option></l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>rows</l><block var="target"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>columns</l><block var="target"/><l>1</l></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>minValue</l><block var="target"/><custom-block s="%s of %s"><l>min</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>maxValue</l><block var="target"/><custom-block s="%s of %s"><l>max</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>mean</l><block var="target"/><custom-block s="%s of %s"><l>mean</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>stddev</l><block var="target"/><custom-block s="%s of %s"><l>standard-deviation</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></custom-block></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: oops...anything went wrong!</l><l>import image data</l></custom-block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; %&apos;color&apos; image log? %&apos;log&apos; alpha %&apos;alpha&apos; $nl from myData on %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="176.39570312500018" collapsed="false">Generates, adds or mixes an image (with offsets) from the FITS or RGB data (placed in myData) in different colors.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">create<options>create&#xD;add&#xD;mix</options></input><input type="%s" readonly="true">gray<options>gray&#xD;red&#xD;green&#xD;blue&#xD;false-color&#xD;RGB</options></input><input type="%b">false</input><input type="%n">255<options>255&#xD;0</options></input><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite&#xD;theStage</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costume</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>add image to ImagePad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></list></block><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></list></block></list></block><block s="reportIsA"><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><l><option>list</option></l></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: invalid image data!</l><l>add image to ImagePad</l></custom-block></script><list></list></block><block s="doSetVar"><l>color</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="color"/><l> </l></block></block></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="color"/><l>RGB</l></list></block><block s="reportVariadicNotEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: RGB-images only createable with RGB-data!</l><l>add image to ImagePad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="selection"/><l>create</l></list></block><block s="reportNot"><block s="reportIsA"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><l><option>costume</option></l></block></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><l>lightGray</l></custom-block></block></script><list></list></block><list></list></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>offsets</l><l>theStage</l><block s="reportNewList"><list><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><l>theStage</l></custom-block></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><custom-block s="ImagePadProperty %txt of %txt"><l>imageHeight</l><l>theStage</l></custom-block></block><l>2</l></block></list></block></custom-block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block var="target"/></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageHeight</l><block var="target"/></custom-block><l>lightGray</l></custom-block></block></script><list></list></block><list></list></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><l>0</l><l>0</l></list></block></custom-block></script></block></script><list></list></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addImageToImagePad(data,properties,color,log,alpha,pixels,selection)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="color"/><block var="log"/><block var="alpha"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block var="selection"/></list></block></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportListItem"><l>1</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportListItem"><l>2</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block></list></block></list></block><script><custom-block s="set %txt to full size, bounded by %br left %n right %n top %n bottom %n"><block var="target"/><block s="reportQuotient"><block s="reportListItem"><l>1</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block><l>-2</l></block><block s="reportQuotient"><block s="reportListItem"><l>1</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block><l>2</l></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block><l>2</l></block><block s="reportQuotient"><block s="reportListItem"><l>2</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block><l>-2</l></block></custom-block></script><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="draw list of points %&apos;data&apos; as %&apos;shape&apos; size: %&apos;size&apos; on %&apos;sprite&apos; $nl using Snap! coordinates? %&apos;snap!Coordinates&apos; with noise? %&apos;withNoise?&apos; range: %&apos;range&apos;" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="106.81866884275091" collapsed="false">Draws a list of &quot;points&quot; in different &quot;shapes&quot;. </comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%s" readonly="true">circles<options>circles&#xD;squares</options></input><input type="%n">5</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input><input type="%b">false</input><input type="%n">20</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>source</l><l>x0</l><l>y0</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>draw list of points on ImgePad</l></custom-block></script><list></list></block><block s="doSetVar"><l>source</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>myData</l></list></block><block var="myData"/><block var="data"/></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="source"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only definied for matrices!</l><l>draw list of points on ImgePad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing data!</l><l>draw list of points on ImgePad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block><l>2</l></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates in a plane needed!</l><l>draw list of points on ImgePad</l></custom-block></script><list></list></block><block s="doSetVar"><l>source</l><custom-block s="columns %mult%s of %s %br from row %s to %s"><list><l>1</l><l>2</l></list><block var="source"/><l>1</l><l>last</l></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block></block><block s="doSetVar"><l>source</l><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><l>1</l><block var="value"/></block></list></block><block s="reportDifference"><block var="y0"/><block s="reportListItem"><l>2</l><block var="value"/></block></block></list></block></block></script><list><l>value</l></list></block><block var="source"/></block></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drawListOfPoints(costume,data,shape,size,properties,withNoise,range)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block var="source"/><block var="shape"/><block var="size"/><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="withNoise?"/><block var="range"/></list></block></list></block></script></block-definition><block-definition s="set %&apos;color&apos; at %&apos;position&apos; on %&apos;sprite&apos; to %&apos;value&apos; $nl using Snap! coordinates %&apos;snap!Coordinates&apos;" type="command" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="186.66666666666666" collapsed="false">Sets the RGB or image data value at (x|y) on costume or myData of target. </comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">RGB<options>RGB&#xD;image data in myData</options></input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s">an appropriate value</input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>x</l><l>y</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>set value on ImagePad</l></custom-block></script><list></list></block><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doSetVar"><l>x</l><block s="reportListItem"><l>1</l><block var="position"/></block></block><block s="doSetVar"><l>y</l><block s="reportListItem"><l>2</l><block var="position"/></block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block><block var="x"/></list></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block><block var="y"/></block></block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="position"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates required!</l><l>set value on ImagePad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="color"/><l>RGB</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="value"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: RGB data required!</l><l>set value on ImagePad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>3</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="value"/></block><l>4</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: RGB data required!</l><l>set value on ImagePad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="value"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: RGB data required!</l><l>set value on ImagePad</l></custom-block></script><list></list></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><block var="value"/></custom-block><custom-block s="draw line from %mult%s to %mult%s on %txt %br using Snap! coordinates? %b"><list><block s="reportDifference"><block var="x"/><l>1</l></block><block var="y"/></list><list><block var="x"/><block var="y"/></list><l>thisSprite</l><l><bool>false</bool></l></custom-block></script><list><l><bool>true</bool></l><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></list></block><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></list></block></list></block><script><block s="doSetVar"><l>x</l><block s="reportRound"><block var="x"/></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block var="y"/></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block var="target"/></custom-block></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><custom-block s="ImagePadProperty %txt of %txt"><l>imageHeight</l><block var="target"/></custom-block></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates out of range!</l><l>set value on ImagePad</l></custom-block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><l><option>list</option></l></block><block s="reportIsA"><block var="value"/><l><option>list</option></l></block></list></block><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><l><option>number</option></l></block><block s="reportIsA"><block var="value"/><l><option>number</option></l></block></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data format!</l><l>set value on ImagePad</l></custom-block></script><script><block s="doReplaceInList"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block var="target"/></custom-block></list></block></list></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="value"/></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only RGB- and FITS-data supported!</l><l>set value on ImagePad</l></custom-block></script></block></script></list></block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; at %&apos;position&apos; on %&apos;sprite&apos; $nl using Snap! coordinates %&apos;snap!Coordinates&apos;" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="144.52435312024363" collapsed="false">Reports the RGB value at the position (x|y) of the costume. </comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">RGB(A)<options>RGB(A)&#xD;image data of myData =imageData</options></input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>x</l><l>y</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad!</l><l>RGB/... at ... on ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doSetVar"><l>x</l><block s="reportListItem"><l>1</l><block var="position"/></block></block><block s="doSetVar"><l>y</l><block s="reportListItem"><l>2</l><block var="position"/></block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block><block var="x"/></list></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block><block var="y"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><custom-block s="ImagePadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><custom-block s="ImagePadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates out of range!</l><l>RGB/... at ... on ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>RGB(A)</l></list></block><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></list></block><block var="x"/></list></block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></list></block><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></list></block></list></block><script><block s="doSetVar"><l>x</l><block s="reportRound"><block var="x"/></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block var="y"/></block></block><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block var="target"/></custom-block></list></block></list></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no image data available in myData!</l><l>RGB/... at ... on ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; on %&apos;sprite&apos; by mouse $nl using Snap! coordinates %&apos;snap!Coordinates&apos;" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="168.33333333333334" collapsed="false">Obtaining data with the mouse from an image stored in myData.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">imageValue<options>image value=imageValue&#xD;RGB value=RGBvalue&#xD;costume coordinates=costumeCoordinates&#xD;slice values from costume=costumeSlice&#xD;slice values from myData=dataSlice&#xD;line data=lineData&#xD;circle data=circleData&#xD;brightness</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>h</l><l>result</l><l>i</l><l>m</l><l>pixel</l><l>dist</l><l>dx</l><l>dy</l><l>points</l><l>x1</l><l>y1</l><l>x2</l><l>y2</l><l>x</l><l>y</l><l>p1</l><l>p2</l><l>w</l><l>h</l><l>secondCostume</l><l>ok</l><l>xold</l><l>yold</l><l>radius</l><l>sumOfValues</l><l>value</l><l>center</l><l>costume</l><l>target</l><l>targetCostume</l><l>targetCostumeWidth</l><l>targetCostumeHeight</l><l>targetXPosition</l><l>targetYPosition</l><l>targetSize</l><l>isDraggable</l><l>targetPixels</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad!</l><l>imageValue/... on ... by mouse</l></custom-block></script><list></list></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doSetVar"><l>isDraggable</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>targetCostume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="targetCostume"/><l><option>costume</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no costume available!</l><l>imageValue/... on ... by mouse</l></custom-block></script><list></list></block><block s="doSetVar"><l>targetCostumeWidth</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetCostumeHeight</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="targetCostume"/></block></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doSetVar"><l>targetXPosition</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></block></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></block></block><block s="doSetVar"><l>targetSize</l><l>100</l></block><block s="doSetVar"><l>x</l><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block></block></script><script><block s="doSetVar"><l>targetXPosition</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block></script></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>costumeCoordinates</l></list><comment w="121.68283420138891" collapsed="false">costume coordinates.</comment></block><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x</l><block s="reportDifference"><block var="x"/><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block><block var="y"/></block></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block s="reportRound"><block var="x"/></block><block s="reportRound"><block var="y"/></block></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>imageValue</l></list><comment w="121.68283420138891" collapsed="false">image value.</comment></block><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></list></block><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only defined for image data in FITS or RGB format!</l><l>imageValue/... on ... by mouse</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates out of range!</l><l>imageValue/... on ... by mouse</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><block var="targetCostumeWidth"/></list></block></list></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>RGBvalue</l></list><comment w="121.68283420138891" collapsed="false">RGB value.</comment></block><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></list></block><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></list></block></list></block></block><script><block s="doReport"><l>ERROR: only defined for image data in FITS or RGB format!</l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: coordinates out of range!</l><l>imageValue/... on ... by mouse</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>1</l></block><block var="targetCostumeWidth"/></list></block></list></block><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block></block></block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>lineData</l></list></block><script><block s="doWarp"><script><block s="doSetVar"><l>w</l><block var="targetCostumeWidth"/></block><block s="doSetVar"><l>h</l><block var="targetCostumeHeight"/></block><block s="doSetVar"><l>secondCostume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %mult%s fill color: %mult%s on %txt"><l>continuous</l><l>1</l><list><l>orange</l></list><list><l>yellow</l></list><block var="target"/></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>false</bool></l></custom-block></script><list></list></block><list></list></block></script><list></list></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doUntil"><block var="ok"/><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="doSetVar"><l>p1</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>costumeCoordinates</l><block var="target"/><l><bool>false</bool></l></custom-block></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="p1"/></block><l>1</l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="p1"/></block><block var="w"/></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="p1"/></block><l>1</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="p1"/></block><block var="h"/></list></block></list></block></list></block></list></block><script><block s="doSetVar"><l>xold</l><block s="reportListItem"><l>1</l><block var="p1"/></block></block><block s="doSetVar"><l>yold</l><block s="reportListItem"><l>2</l><block var="p1"/></block></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block var="ok"/><script><block s="doSetVar"><l>p2</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>costumeCoordinates</l><block var="target"/><l><bool>false</bool></l></custom-block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="p2"/></block><block var="xold"/></list></block></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block var="p2"/></block><block var="yold"/></list></block></block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="secondCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></list></block><block s="doSetVar"><l>xold</l><block s="reportListItem"><l>1</l><block var="p2"/></block></block><block s="doSetVar"><l>yold</l><block s="reportListItem"><l>2</l><block var="p2"/></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_drawOnCostume(operation,costume,params,properties)</l><list><l>drawLine</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p1"/></block><block s="reportListItem"><l>1</l><block var="p2"/></block><block s="reportListItem"><l>2</l><block var="p2"/></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="p2"/></block><l>1</l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="p2"/></block><block var="w"/></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="p2"/></block><l>1</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="p2"/></block><block var="h"/></list></block></list></block></list></block></list></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script></block><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>false</bool></l></custom-block></script><list></list></block><list></list></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block var="secondCostume"/></list></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doReplaceInList"><l>1</l><block var="p1"/><block s="reportRound"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block></block></block><block s="doReplaceInList"><l>2</l><block var="p1"/><block s="reportRound"><block s="reportDifference"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block><block s="reportListItem"><l>2</l><block var="p1"/></block></block></block></block><block s="doReplaceInList"><l>1</l><block var="p2"/><block s="reportRound"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p2"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block></block></block><block s="doReplaceInList"><l>2</l><block var="p2"/><block s="reportRound"><block s="reportDifference"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block><block s="reportListItem"><l>2</l><block var="p2"/></block></block></block></block></script><list></list></block><custom-block s="set flag %s to %b"><l>draggable</l><block var="isDraggable"/></custom-block><block s="doReport"><block s="reportNewList"><list><block var="p1"/><block var="p2"/></list></block></block></script><list></list><comment w="90" collapsed="false">line data</comment></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="selection"/><l>costumeSlice</l></list></block><block s="reportVariadicEquals"><list><block var="selection"/><l>dataSlice</l></list></block></list><comment w="90" collapsed="false">slice data</comment></block><script><block s="doSetVar"><l>costume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><block s="doSetVar"><l>points</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>lineData</l><block var="target"/><l><bool>false</bool></l></custom-block></block><block s="doWarp"><script><block s="doSetVar"><l>dist</l><block s="reportRound"><custom-block s="Euclidean distance between %br point %mult%s and point %mult%s"><list><block s="reportListItem"><l>1</l><block var="points"/></block></list><list><block s="reportListItem"><l>2</l><block var="points"/></block></list></custom-block></block></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="dist"/><l>2</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: points are too close together!</l><l>imageValue/... on ... by mouse</l></custom-block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>costumeSlice</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>SciS_collectSliceData(p1,p2,dist,imageData,width,height,imageType)</l><list><block s="reportListItem"><l>1</l><block var="points"/></block><block s="reportListItem"><l>2</l><block var="points"/></block><block var="dist"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/><l>RGB</l></list></block></block></script><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>SciS_collectSliceData(p1,p2,dist,imageData,width,height,imageType)</l><list><block s="reportListItem"><l>1</l><block var="points"/></block><block s="reportListItem"><l>2</l><block var="points"/></block><block var="dist"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/><custom-block s="ImagePadProperty %txt of %txt"><l>imageType</l><block var="target"/></custom-block></list></block></block></script></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block var="costume"/></list></block><block s="doReport"><block var="result"/></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>circleData</l></list><comment w="90" collapsed="false">circle data</comment></block><script><block s="doWarp"><script><block s="doSetVar"><l>w</l><block var="targetCostumeWidth"/></block><block s="doSetVar"><l>h</l><block var="targetCostumeHeight"/></block><block s="doSetVar"><l>secondCostume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><block s="doSetVar"><l>costume</l><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="targetCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %mult%s fill color: %mult%s on %txt"><l>continuous</l><l>1</l><list><l>orange</l></list><list><l>yellow</l></list><l>thisSprite</l></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>false</bool></l></custom-block></script><list></list></block><list></list></block></script><list></list></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doUntil"><block var="ok"/><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="doSetVar"><l>p1</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>costumeCoordinates</l><block var="target"/><l><bool>false</bool></l></custom-block></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="p1"/></block><l>1</l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="p1"/></block><block var="w"/></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="p1"/></block><l>1</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="p1"/></block><block var="h"/></list></block></list></block></list></block></list></block><script><block s="doSetVar"><l>xold</l><block s="reportListItem"><l>1</l><block var="p1"/></block></block><block s="doSetVar"><l>yold</l><block s="reportListItem"><l>2</l><block var="p1"/></block></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block var="ok"/><script><block s="doSetVar"><l>p2</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>costumeCoordinates</l><block var="target"/><l><bool>false</bool></l></custom-block></block><block s="doSetVar"><l>radius</l><block s="reportRound"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>1</l><block var="p2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportListItem"><l>1</l><block var="p2"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p2"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="p1"/></block><block s="reportListItem"><l>2</l><block var="p2"/></block></block></list></block></list></block></block></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="secondCostume"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/></block></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_drawOnCostume(operation,costume,params,properties)</l><list><l>drawCircle</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportConcatenatedLists"><list><block var="p1"/><block s="reportNewList"><list><block var="radius"/></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block><block s="doIf"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></block><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><block var="isDraggable"/></custom-block></script><list></list></block><list></list></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block var="secondCostume"/></list></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doReplaceInList"><l>1</l><block var="p1"/><block s="reportRound"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p1"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block></block></block><block s="doReplaceInList"><l>2</l><block var="p1"/><block s="reportRound"><block s="reportDifference"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block><block s="reportListItem"><l>2</l><block var="p1"/></block></block></block></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block var="p1"/><block var="radius"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>brightness</l></list></block><script><block s="doSetVar"><l>h</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>circleData</l><block var="target"/><l><bool>false</bool></l></custom-block></block><custom-block s="set flag %s to %b"><l>draggable</l><block var="isDraggable"/></custom-block><block s="doReport"><block s="reportApplyExtension"><l>SciS_brightness(data,xpos,ypos,r,width,height,typeOfData,typeOfArea)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="h"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="h"/></block></block><block s="reportListItem"><l>2</l><block var="h"/></block><block var="targetCostumeWidth"/><block var="targetCostumeHeight"/><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>circle</l></list></block></block></script><list></list><comment w="90" collapsed="false">brightness</comment></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: unknown selection</l><l>imageValue/... on ... by mouse</l></custom-block></script></block-definition><block-definition s="affine transformation of costume %&apos;costume&apos; $nl by %&apos;originalPoints&apos; --&gt; %&apos;targetPoints&apos; using Snap! coordinates %&apos;snap!Coordinates&apos;" type="reporter" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="210.83333333333334" collapsed="false">Applies an affine transformation to a costume.&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">currentCostume</input><input type="%l"></input><input type="%l"></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a11</l><l>a12</l><l>a13</l><l>a21</l><l>a22</l><l>a23</l><l>S</l><l>P1</l><l>P2</l><l>P3</l><l>Q1</l><l>Q2</l><l>Q3</l><l>width</l><l>height</l><l>ok</l></list></block><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="costume"/><l>currentCostume</l></list></block><block s="reportGet"><l><option>costume</option></l></block><block var="costume"/></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: costume required!</l><l>affine transformation of costume ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIfElse"><block s="reportIsA"><block var="originalPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="originalPoints"/></block><l>3</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: 3 original points required!</l><l>affine transformation of costume ...</l></custom-block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="originalPoints"/></block></block><l>2</l></list></block></list></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list of original points  required!</l><l>affine transformation of costume ...</l></custom-block></script></block><block s="doIfElse"><block s="reportIsA"><block var="targetPoints"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="targetPoints"/></block><l>3</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: 3 target points required!</l><l>affine transformation of costume ...</l></custom-block></script><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="targetPoints"/></block></block><l>2</l></list></block></list></block></block><script><block s="doSetVar"><l>ok</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list of target points  required!</l><l>affine transformation of costume ...</l></custom-block></script></block><block s="doIf"><block s="reportNot"><block var="ok"/></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: dimensions should be 2!</l><l>affine transformation of costume ...</l></custom-block></script><list></list></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>width</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block></block><block s="doSetVar"><l>height</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block></block><block s="doReplaceInList"><l>1</l><block var="originalPoints"/><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="originalPoints"/></block></block></list></block><block s="reportDifference"><block s="reportQuotient"><block var="height"/><l>2</l></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="originalPoints"/></block></block></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="originalPoints"/><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="originalPoints"/></block></block></list></block><block s="reportDifference"><block s="reportQuotient"><block var="height"/><l>2</l></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="originalPoints"/></block></block></block></list></block></block><block s="doReplaceInList"><l>3</l><block var="originalPoints"/><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>3</l><block var="originalPoints"/></block></block></list></block><block s="reportDifference"><block s="reportQuotient"><block var="height"/><l>2</l></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block var="originalPoints"/></block></block></block></list></block></block><block s="doReplaceInList"><l>1</l><block var="targetPoints"/><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="targetPoints"/></block></block></list></block><block s="reportDifference"><block s="reportQuotient"><block var="height"/><l>2</l></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="targetPoints"/></block></block></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="targetPoints"/><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="targetPoints"/></block></block></list></block><block s="reportDifference"><block s="reportQuotient"><block var="height"/><l>2</l></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="targetPoints"/></block></block></block></list></block></block><block s="doReplaceInList"><l>3</l><block var="targetPoints"/><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l>3</l><block var="targetPoints"/></block></block></list></block><block s="reportDifference"><block s="reportQuotient"><block var="height"/><l>2</l></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block var="targetPoints"/></block></block></block></list></block></block></script><list></list></block><block s="doSetVar"><l>P1</l><block s="reportListItem"><l>1</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P2</l><block s="reportListItem"><l>2</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>P3</l><block s="reportListItem"><l>3</l><block var="originalPoints"/></block></block><block s="doSetVar"><l>Q1</l><block s="reportListItem"><l>1</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q2</l><block s="reportListItem"><l>2</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>Q3</l><block s="reportListItem"><l>3</l><block var="targetPoints"/></block></block><block s="doSetVar"><l>S</l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="P2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="P3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="P1"/></block></block></list></block></list></block></list></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="S"/><l>0</l></list></block></block><script><block s="doSetVar"><l>a11</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a12</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="Q2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a21</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a22</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="Q2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a13</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>1</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>1</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doSetVar"><l>a23</l><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P1"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P2"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q3"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P3"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="P3"/></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P2"/></block><block s="reportListItem"><l>2</l><block var="Q1"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><block var="P1"/></block><block s="reportListItem"><l>2</l><block var="Q2"/></block></list></block></block></list></block></list></block></list></block><block var="S"/></block></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_affineTransformation(a11,a12,a13,a21,a22,a23,w,h,data,typeOfData)</l><list><block var="a11"/><block var="a12"/><block var="a13"/><block var="a21"/><block var="a22"/><block var="a23"/><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block><l>RGB</l></list></block></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: denominator is zero</l><l>affine transformation of costume ...</l></custom-block></script></block></script></block-definition><block-definition s="brightness around %&apos;position&apos; within radius %&apos;r&apos; $nl calculated with %&apos;source&apos; of ImagePad %&apos;sprite&apos; $nl using Snap! coordinates %&apos;snap!Coordinates&apos;" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="192.61904761904816" collapsed="false">Reports the brightness of a FITS or RGB image around x|y in a circle with radius r.&#xD;Attention: JS-coordinates are used!</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%n">10</input><input type="%s" readonly="true">myData<options>myData&#xD;costume</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>data</l><l>x</l><l>y</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad!</l><l>brightness around ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="source"/><l>myData</l></list></block><script><block s="doSetVar"><l>data</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>data</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>typeOfData</l><block var="target"/><l>RGB</l></custom-block></script></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>FITS</l></list></block><block s="reportVariadicEquals"><list><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>RGB</l></list></block></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only FITS or RGB data supported!</l><l>brightness around ...</l></custom-block></script><script><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doSetVar"><l>x</l><block s="reportListItem"><l>1</l><block var="position"/></block></block><block s="doSetVar"><l>y</l><block s="reportListItem"><l>2</l><block var="position"/></block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block><block var="x"/></list></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block><block var="y"/></block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_brightness(data,xpos,ypos,r,width,height,typeOfData,typeOfArea)</l><list><block var="data"/><block var="x"/><block var="y"/><block var="r"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block><custom-block s="ImagePadProperty %txt of %txt"><l>typeOfData</l><block var="target"/></custom-block><l>circle</l></list></block></block></script></block></script></block></script></block-definition><block-definition s="remove sprite %&apos;sprite&apos;" type="command" category="control" space="true"><comment x="0" y="0" w="142.46510416666678" collapsed="false">Removes the calling sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite required!</l><l>remove sprite ...</l></custom-block></script><list></list></block><block s="doApplyExtension"><l>SciS_removeSprite(sprite)</l><list><block var="target"/></list></block></script></block></script></block-definition><block-definition s="select sprite %&apos;sprite&apos;" type="command" category="control"><comment x="0" y="0" w="123.59999999999998" collapsed="false">Selects a sprite as active.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></list></block><script><block s="doApplyExtension"><l>SciS_selectSprite(sprite)</l><list><block var="target"/></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite required!</l><l>select sprite</l></custom-block></script></block></script></block></script></block-definition><block-definition s="let %&apos;sprite&apos; respond to %&apos;event&apos;" type="command" category="0. My own blocks" space="true"><comment x="0" y="0" w="108.66666666666667" collapsed="false">This block is called by dynamically generated event handlers. You should define what is to happen for the corresponding sprites. Two examples are included for the LineTool and the SquareTool.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s" readonly="true">receiveGo<options>receiveGo&#xD;receiveKey enter&#xD;receiveKey space&#xD;receiveKey +&#xD;receiveKey -&#xD;receiveKey up arrow&#xD;receiveKey down arrow&#xD;receiveKey left arrow&#xD;receiveKey right arrow&#xD;receiveInteraction clicked&#xD;receiveInteraction pressed&#xD;receiveInteraction mouse-entered&#xD;receiveInteraction mouse-departed&#xD;receiveInteraction scrolled up&#xD;receiveInteraction scrolleddown&#xD;receiveMessage</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>TheLineTool</l></block></list></block><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>LineEnd1</l></block></list></block><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>LineEnd2</l></block></list></block></list></block><script><custom-block s="let part %s of the TheLineTool respond to %s"><block var="target"/><block var="event"/></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block><l>1</l><l>10</l></custom-block><l>SquareTool</l></list></block><script><custom-block s="let SquareTool %s respond to %s"><block var="target"/><block var="event"/></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block><l>TheNewSprite</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey +</l></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="changeScale"><l>10</l></block></script><list></list></block><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey -</l></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block><l>20</l></list></block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="changeScale"><l>-10</l></block></script><list></list></block><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction clicked</l></list></block><script><custom-block s="remove sprite %s"><block var="target"/></custom-block></script><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="image data %&apos;image1&apos; width %&apos;width1&apos; height %&apos;height1&apos; $nl %&apos;operation&apos; image data %&apos;image2&apos; width %&apos;width2&apos; height %&apos;height2&apos; $nl with offsets %&apos;xOffset&apos; %&apos;yOffset&apos;" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="210.66666666666666" collapsed="false">Arthmetic with image data (FITS or RGB).&#xD;RGB data are normalized to the range 0 ..255.&#xD;The last element of the result contains the dimensions of the imagge.</comment><header></header><code></code><translations></translations><inputs><input type="%l">of image1</input><input type="%n">100</input><input type="%n">100</input><input type="%txt" readonly="true">+<options>+&#xD;-&#xD;*&#xD;/</options></input><input type="%l">of image2</input><input type="%n">100</input><input type="%n">100</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>imageType1</l><l>imageType2</l></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="image1"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="image2"/></block><l>0</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no imagedata available!</l><l>image data arithmetic</l></custom-block></script><list></list></block><block s="doSetVar"><l>imageType1</l><block s="reportIfElse"><custom-block s="is %s a %txt"><block var="image1"/><l>vector</l></custom-block><l>FITS</l><block s="reportIfElse"><custom-block s="is %s a %txt"><block var="image1"/><l>matrix</l></custom-block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="image1"/></block></block><l>3</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="image1"/></block></block><l>4</l></list></block></list></block><l>RGB</l><l>unknown</l></block><l>unknown</l></block></block></block><block s="doSetVar"><l>imageType2</l><block s="reportIfElse"><custom-block s="is %s a %txt"><block var="image2"/><l>vector</l></custom-block><l>FITS</l><block s="reportIfElse"><custom-block s="is %s a %txt"><block var="image2"/><l>matrix</l></custom-block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="image2"/></block></block><l>3</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="image2"/></block></block><l>4</l></list></block></list></block><l>RGB</l><l>unknown</l></block><l>unknown</l></block></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="imageType1"/><l>unknown</l></list></block><block s="reportVariadicEquals"><list><block var="imageType2"/><l>unknown</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only FITS or RGB data processable!</l><l>image data arithmetic</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="imageType1"/><block var="imageType2"/></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: only data of the same type processable!</l><l>image data arithmetic</l></custom-block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_imageArithmetic(image1,image2,imageType,xOffset,yOffset,width1,height1,width2,height2,operation)</l><list><block var="image1"/><block var="image2"/><block var="imageType1"/><block var="xOffset"/><block var="yOffset"/><block var="width1"/><block var="height1"/><block var="width2"/><block var="height2"/><block var="operation"/></list></block></block></script></block-definition><block-definition s="Example: slice data of an image" type="command" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="237.3333333333334" collapsed="false">Configure the sprite as an ImagePad and load an image as costume!</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>sliceData</l><l>diagram</l></list></block><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>true</bool></l><l>15</l></custom-block><block s="doSwitchToCostume"><l>Tempel</l></block><block s="doSetVar"><l>sliceData</l><custom-block s="%s on %txt by mouse %br using Snap! coordinates %b"><l>costumeSlice</l><l>thisSprite</l><l><bool>false</bool></l></custom-block></block><block s="doSetVar"><l>sliceData</l><block s="reportMap"><block s="reifyReporter"><script><block s="doDeleteFromList"><l>4</l><block s="reportListItem"><l>2</l><block var="value"/></block></block><block s="doReport"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="value"/></block><custom-block s="%s of %s"><l>mean</l><block s="reportListItem"><l>2</l><block var="value"/></block></custom-block></list></block></block></script><list><l>value</l></list></block><block var="sliceData"/></block></block><block s="doSetVar"><l>diagram</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doTellTo"><block var="diagram"/><block s="reifyScript"><script><custom-block s="configure %txt as a PlotPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><l>Slice Diagram</l><l>18</l><l>distance</l><l>16</l><l>brightness</l><l>16</l></custom-block><custom-block s="set PlotPad line properties style: %txt %br width: %n color: %mult%s on %txt"><l>continuous</l><l>1</l><list><l>black</l></list><l>thisSprite</l></custom-block><custom-block s="set PlotPad marker properties style: %txt width: %n %br color: %mult%s connected? %b on %txt"><l>none</l><l>5</l><list><l>red</l></list><l><bool>true</bool></l><l>thisSprite</l></custom-block><custom-block s="get ranges for PlotPad %txt %br from %s with border %n"><l>thisSprite</l><block var="sliceData"/><l>0.1</l></custom-block><custom-block s="set pretty ranges on PlotPad %txt"><l>thisSprite</l></custom-block><custom-block s="add dataplot of numeric data: %s to PlotPad %txt"><block var="sliceData"/><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="Example: false color image of moon crater Albertarius" type="command" category="6. ImagePad for image operations"><comment x="0" y="0" w="237.3333333333334" collapsed="false">An image of Albategnius should be loaded as costume of the sprite!</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>245</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doSwitchToCostume"><l>albategnius</l></block><custom-block s="import image data from %s %br to myData of %s and set properties"><l>currentCostume</l><l>thisSprite</l></custom-block><custom-block s="%txt %s image log? %b alpha %n %br from myData on %s"><l>create</l><l>false-color</l><l><bool>true</bool></l><l>255</l><l>thisSprite</l></custom-block></script></block-definition><block-definition s="Example: random points on an image" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>green</l><l><bool>true</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doSetVar"><l>myData</l><custom-block s="%n random points with ranges x: %n %n %br y: %n %n inside of a %s"><l>100</l><l>10</l><l>390</l><l>10</l><l>290</l><l>square</l></custom-block></block><custom-block s="draw list of points %s as %s size: %n on %txt %br using Snap! coordinates? %b with noise? %b range: %n"><l>myData</l><l>circles</l><l>5</l><l>thisSprite</l><l><bool>false</bool></l><l><bool>true</bool></l><l>50</l></custom-block></script></block-definition><block-definition s="Example: space modulation" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>positions</l><l>numberOfPoints</l><l>t</l><l>a</l><l>newPositions</l><l>s</l><l>costume</l></list></block><block s="bubble"><l>One moment, please!</l></block><block s="doWarp"><script><custom-block s="start SciSnap! stage: %n X %n"><l>600</l><l>700</l></custom-block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><l>thisSprite</l><l>600</l><l>100</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doWait"><l>2</l></block><block s="bubble"><l></l></block><block s="gotoXY"><l>0</l><l>300</l></block><block s="show"></block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>fillColor</l><l>thisSprite</l><custom-block s="%s as %txt"><l>black</l><l>RGB-value</l></custom-block></custom-block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineColor</l><l>thisSprite</l><custom-block s="%s as %txt"><l>black</l><l>RGB-value</l></custom-block></custom-block><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><l>Space-Modulation</l><list><l>150</l><l>50</l></list><l>40</l><l><bool>true</bool></l><l>thisSprite</l><l><bool>false</bool></l></custom-block><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><l>inspired by Bart Vegter, The Eye Museum Amsterdam</l><list><l>80</l><l>80</l></list><l>20</l><l><bool>true</bool></l><l>thisSprite</l><l><bool>false</bool></l></custom-block><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>theStage</l><l>600</l><l>700</l><l>white</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>fillColor</l><l>theStage</l><custom-block s="%s as %txt"><l>black</l><l>RGB-value</l></custom-block></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><l>0</l><l>0</l></list><list><l>600</l><l>700</l></list><l>theStage</l><l><bool>false</bool></l></custom-block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>fillColor</l><l>theStage</l><custom-block s="%s as %txt"><l>white</l><l>RGB-value</l></custom-block></custom-block><block s="doSetVar"><l>costume</l><custom-block s="copy of costume %s"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block></block><block s="doSetVar"><l>numberOfPoints</l><block s="reportVariadicProduct"><list><l>14</l><l>14</l></list></block></block><block s="doSetVar"><l>positions</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>y</l><l>1</l><l>70</l><script><block s="doFor"><l>x</l><l>1</l><l>70</l><script><block s="doAddToList"><block s="reportNewList"><list><block var="x"/><block var="y"/><block s="reportVariadicSum"><list><l>-1440</l><block s="reportVariadicProduct"><list><block var="x"/><l>40</l></list></block></list></block><block s="reportDifference"><l>1380</l><block s="reportVariadicProduct"><list><block var="y"/><l>40</l></list></block></block><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="x"/><l>35.5</l></block><block s="reportDifference"><block var="x"/><l>35.5</l></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y"/><l>35.5</l></block><block s="reportDifference"><block var="y"/><l>35.5</l></block></list></block></list></block></block></list></block><block var="positions"/></block></script></block></script></block><block s="doSetVar"><l>t</l><l>0</l></block><block s="doSetVar"><l>a</l><l>0.1</l></block></script></block><block s="doRepeat"><l>225</l><script><block s="doSetVar"><l>s</l><block s="reportVariadicProduct"><list><l>0.5</l><block var="a"/><block var="t"/><block var="t"/></list></block></block><block s="doSetVar"><l>newPositions</l><block s="reportAtomicMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>3</l><block var="position"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="s"/><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><l>35.5</l></block></list></block><block s="reportListItem"><l>5</l><block var="position"/></block></block></block><block s="reportDifference"><block s="reportListItem"><l>4</l><block var="position"/></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="s"/><block s="reportDifference"><l>35.5</l><block s="reportListItem"><l>2</l><block var="position"/></block></block></list></block><block s="reportListItem"><l>5</l><block var="position"/></block></block></block></list></block></block></script><list><l>position</l></list></block><block var="positions"/></block></block><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="copy of costume %s"><block var="costume"/></custom-block></block></script><list></list></block><list></list></block><custom-block s="draw list of points %s as %s size: %n on %txt %br using Snap! coordinates? %b with noise? %b range: %n"><block var="newPositions"/><l>circles</l><l>2</l><l>theStage</l><l><bool>true</bool></l><l><bool>true</bool></l><l>100</l></custom-block><block s="doChangeVar"><l>t</l><l>1</l></block></script></block></script></block-definition><block-definition s="INFO &quot;SciSnap! globals&quot;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="99.33333333333333" collapsed="false">Creates an Infobox about this category. </comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "SciSnap! globals!"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks to convert Snap! to SciSnap!, i.e. to create the corresponding variables,&#xD;to add some new blocks to the standard categories, and to create the new categories as well as the costumes of SciSnap!.&#xD;Furthermore, there are blocks for configuring and using "SketchPads", e.g. to draw on them or to close them&#xD;by mouseclick. The SketchPads of the other categories - e.g. the PlotPad, MathPad, ... - are based on this functionality.&#xD;The category "SciSnap! globals" also contains blocks for reading and writing different file types&#xD;as well as file or file-list selection with the mouse.&#xD;Finally, there is a block to display error messages and save them in the SciSnap!Messages variable.</l></custom-block></custom-block></script></block-definition><block-definition s="INFO &quot;Window to ImagePads&quot;" type="command" category="6. ImagePad for image operations" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "Window to ImagePads"</l></custom-block><custom-block s="translate %txt"><l>A "window" is an ImagePad, used to display other ImagePads which are switched to the "hide"-modus.&#xD;The "currrent image" of a window can be scrolled, magnified or shrinked in the background.&#xD;The part behind the window is displayed in the window using the paste command.&#xD;Its "instruments" can be used to measure distances or brightness in the window.&#xD;</l></custom-block></custom-block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as a window to ImagePad %&apos;ImagePad&apos;" type="command" category="6. ImagePad for image operations" space="true"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s">anotherSprite<options>anotherSprite&#xD;theStage&#xD;thisSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doSetVar"><l>ImagePad</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="ImagePad"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="ImagePad"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="ImagePad"/></block></block></block></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block var="ImagePad"/></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Don&apos;t use the same sprite as window!</l><l>configure as a window</l></custom-block></script><script><block s="doIfElse"><custom-block s="is %s an ImagePad?"><block var="ImagePad"/></custom-block><script><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><block var="target"/><l>20</l><l>20</l><l>245</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set ImagePad line properties style: %txt %br width: %n color: %mult%s fill color: %mult%s on %txt"><l>continuous</l><l>1</l><list><l>black</l></list><list><l>lightGray</l></list><block var="target"/></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>magnification</l><block var="target"/><l>20</l></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><l></l><l></l><l>lightGray</l></custom-block></block><block s="setScale"><l>100</l></block><block s="show"></block></script><list></list></block><list><block s="reportVariadicMin"><list><block s="reportAttributeOf"><l><option>width</option></l><block var="ImagePad"/></block><block s="reportListItem"><l>1</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block></list></block><block s="reportVariadicMin"><list><block s="reportAttributeOf"><l><option>height</option></l><block var="ImagePad"/></block><block s="reportListItem"><l>2</l><custom-block s="setting %s"><l>Stage size</l></custom-block></block></list></block></list></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>myImages</l><l>currentImage</l><l>myLineTool</l><l>mySquareTools</l></list></custom-block></script><list></list></block><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>false</bool></l></custom-block></script><list></list></block><list></list></block><custom-block s="set %txt of %txt to %s"><l>myImages</l><block var="target"/><block s="reportNewList"><list><block var="ImagePad"/></list></block></custom-block><custom-block s="set %txt of %txt to %s"><l>currentImage</l><block var="target"/><block var="ImagePad"/></custom-block><custom-block s="set %txt of %txt to %s"><l>myLineTool</l><block var="target"/><l>not set</l></custom-block><custom-block s="set %txt of %txt to %s"><l>mySquareTools</l><block var="target"/><block s="reportNewList"><list></list></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></custom-block><custom-block s="set ImagePadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></custom-block><block s="doTellTo"><block var="ImagePad"/><block s="reifyScript"><script><block s="doPasteOn"><block var="target"/></block><block s="hide"></block></script><list></list></block><list></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Sprite isn&apos;t configured as ImagePad.</l><l>configure as a window</l></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="is %&apos;sprite&apos; a window to Imagepads?" type="predicate" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doReport"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportListContainsItem"><l/><l></l></block></autolambda><list></list></block><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>var_names(scope)</l><list><l>sprite</l></list></block></autolambda><list></list></block><list></list></block><l>myImages</l></list></block></block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; ImagePad %&apos;imagePad&apos; to/from image stack $nl of window %&apos;sprite&apos; and adjust width/height %&apos;adjust&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">add<options>add&#xD;remove</options></input><input type="%obj"></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>n</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block var="imagePad"/></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprites shouldn&apos;t be indentical!</l><l>add .. to image stack</l></custom-block></script><script><block s="doIfElse"><custom-block s="is %s an ImagePad?"><block var="imagePad"/></custom-block><script><block s="doIfElse"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>add</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListIndex"><block var="imagePad"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block><l>0</l></list></block><script><block s="doAddToList"><block var="imagePad"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block><block s="doTellTo"><block var="imagePad"/><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Image already exists in imagestack!</l><l>add .. to image stack</l></custom-block></script></block></script><script><block s="doSetVar"><l>n</l><block s="reportListIndex"><block var="imagePad"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><script><block s="doDeleteFromList"><block var="n"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block><block var="imagePad"/></list></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block><l>0</l></list></block><script><custom-block s="set %txt of %txt to %s"><l>currentImage</l><block var="target"/><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></custom-block><custom-block s="switch to %s image of window %s %br and adjust width/height %b"><l>1</l><block var="target"/><block var="adjust"/></custom-block></script><script><custom-block s="switch to %s image of window %s %br and adjust width/height %b"><l>next</l><block var="target"/><block var="adjust"/></custom-block></script></block></script><list></list></block></script><list></list></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: second sprite isn&apos;t configured as Window!</l><l>add .. to image stack</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: first sprite isn&apos;t configured as ImagePad!</l><l>add .. to image stack</l></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="switch to %&apos;selection&apos; image of window %&apos;sprite&apos; $nl and adjust width/height %&apos;adjust&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s">next<options>next&#xD;first&#xD;last&#xD;any number = number</options></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>n</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>next</l></list></block><script><block s="doSetVar"><l>n</l><block s="reportListIndex"><block var="currentImage"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></block><block s="doChangeVar"><l>n</l><l>1</l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></list></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script><list></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>first</l></list></block><script><block s="doSetVar"><l>n</l><l>1</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>last</l></list></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="selection"/><l><option>number</option></l></block><script><block s="doSetVar"><l>n</l><block var="selection"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong parameter!</l><l>switch to image of window</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block></script></block></script></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block><l>1</l></list></block><script><block s="doSetVar"><l>n</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></list></block><script><block s="doSetVar"><l>n</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><script><custom-block s="set %txt of %txt to %s"><l>currentImage</l><block var="target"/><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></custom-block><block s="doIf"><block var="adjust"/><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></block><block s="reportAttributeOf"><l><option>height</option></l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>myImages</l><block var="target"/></block></block></block><l>lightGray</l></custom-block></list></block></script><list></list></block><block s="doTellTo"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block><block s="reifyScript"><script><block s="doPasteOn"><block var="target"/></block></script><list></list></block><list></list></block></script><script><custom-block s="set %txt of %txt to %s"><l>currentImage</l><block var="target"/><l>not set</l></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>lightGray</l></custom-block></list></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite isn&apos;t configured as Window!</l><l>switch to image of window</l></custom-block></script></block></script></block></script></block-definition><block-definition s="update window %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Target isn&apos;t configured as an ImagePad!</l><l>update window</l></custom-block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>lightGray</l></custom-block></list></block><block s="doTellTo"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block><block s="reifyScript"><script><block s="doPasteOn"><block var="target"/></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="magnify or shrink image on window %&apos;sprite&apos; by %&apos;n&apos; %" type="command" category="6. ImagePad for image operations" space="true"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">25</input></inputs><script><block s="doDeclareVariables"><list><l>new size</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Target isn&apos;t configured as a window to an ImagePad!</l><l>magnify or shrink image on window</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: imagestack is empty!</l><l>magnify or shrink image on window</l></custom-block></script><list></list></block><block s="doSetVar"><l>new size</l><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>size</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block><block var="n"/></list></block></block><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block var="new size"/><l>5</l></list></block><script><block s="doSetVar"><l>new size</l><l>5</l></block></script><list></list></block><block s="doTellTo"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><list><block var="new size"/></list></block><custom-block s="update window %s"><block var="target"/></custom-block><custom-block s="update tool positions on %s"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="move image of window %&apos;sprite&apos; by %&apos;dx&apos; %&apos;dy&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">10</input><input type="%n">10</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>image</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Target isn&apos;t configured as a window to an ImagePad!</l><l>move image on window</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: imagestack is empty!</l><l>move image on window</l></custom-block></script><list></list></block><block s="doSetVar"><l>image</l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block><block s="doTellTo"><block var="image"/><block s="reifyScript"><script><block s="changeXPosition"><l></l></block><block s="changeYPosition"><l></l></block><block s="doPasteOn"><l></l></block></script><list></list></block><list><block var="dx"/><block var="dy"/><block var="target"/></list></block><custom-block s="update window %s"><block var="target"/></custom-block><custom-block s="update tool positions on %s"><block var="target"/></custom-block></script></block></script><scripts><script x="445.99999999999994" y="252.5000000000001"><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block var="image"/></block><block var="dx"/></list></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></list></block><script><block s="doSetVar"><l>dx</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="image"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>right</option></l><block var="image"/></block><block var="dx"/></list></block><block s="reportAttributeOf"><l><option>right</option></l><block var="target"/></block></list></block><script><block s="doSetVar"><l>dx</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>right</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>right</option></l><block var="image"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block var="image"/></block><block var="dy"/></list></block><block s="reportAttributeOf"><l><option>bottom</option></l><block var="target"/></block></list></block><script><block s="doSetVar"><l>dy</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>bottom</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>bottom</option></l><block var="image"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>top</option></l><block var="image"/></block><block var="dy"/></list></block><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block></list></block><script><block s="doSetVar"><l>dy</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>top</option></l><block var="image"/></block></block></block></script><list></list></block></script></scripts></block-definition><block-definition s="scroll image of window %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>dx</l><l>dy</l><l>oldMouseX</l><l>oldMouseY</l><l>target</l><l>isDraggable</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Target isn&apos;t configured as a window to an ImagePad!</l><l>scroll image on window</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: imagestack is empty!</l><l>scroll image on window</l></custom-block></script><list></list></block><block s="doSetVar"><l>isDraggable</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>false</bool></l></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>oldMouseX</l><block s="reportMouseX"></block></block><block s="doSetVar"><l>oldMouseY</l><block s="reportMouseY"></block></block><block s="doUntil"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicNotEquals"><list><block var="oldMouseX"/><block s="reportMouseX"></block></list></block><block s="reportVariadicNotEquals"><list><block var="oldMouseY"/><block s="reportMouseY"></block></list></block></list></block><script><block s="doWarp"><script><block s="doSetVar"><l>dx</l><block s="reportDifference"><block s="reportMouseX"></block><block var="oldMouseX"/></block></block><block s="doSetVar"><l>dy</l><block s="reportDifference"><block s="reportMouseY"></block><block var="oldMouseY"/></block></block><custom-block s="move image of window %s by %n %n"><block var="target"/><block var="dx"/><block var="dy"/></custom-block><block s="doSetVar"><l>oldMouseX</l><block s="reportMouseX"></block></block><block s="doSetVar"><l>oldMouseY</l><block s="reportMouseY"></block></block><custom-block s="update tool positions on %s"><block var="target"/></custom-block></script></block></script><list></list></block></script></block><block s="doIf"><block var="isDraggable"/><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l>draggable</l><l><bool>true</bool></l></custom-block></script><list></list></block><list></list></block></script><list></list></block></script></block-definition><block-definition s="stage position %&apos;position&apos; $arrowRightOutline %&apos;selection&apos; on %&apos;sprite&apos; $nl using Snap! coordinates %&apos;snap!Coordinates&apos;" type="reporter" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="199.33333333333317" collapsed="false">Stage coordinates are alternatively described as Snap! or JavaScript coordinates, window and image coordinates are always JavaScript coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%txt" readonly="true">window-position<options>window-position&#xD;image-position&#xD;image-value</options></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>imageOffsets</l><l>windowOffsets</l><l>imageSize</l><l>target</l><l>xi</l><l>yi</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target is not a window to an ImagePad!</l><l>stage position --&gt; ...</l></custom-block></script><list></list></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>position</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportListItem"><l>2</l><block var="position"/></block></block></list></block><comment w="90" collapsed="false">From now on only JS-coordinates!</comment></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>window-position</l></list></block><script><block s="doSetVar"><l>windowOffsets</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block></block></list></block></block><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportListItem"><l>1</l><block var="windowOffsets"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportListItem"><l>2</l><block var="windowOffsets"/></block></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="selection"/><l>image-position</l></list></block><block s="reportVariadicEquals"><list><block var="selection"/><l>image-value</l></list></block></list></block><script><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no ImagePad available!</l><l>stage position --&gt; ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>imageOffsets</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block></block></list></block></block><block s="doSetVar"><l>imageSize</l><block s="reportQuotient"><block s="reportAskFor"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block><list></list></block><l>100</l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="imageSize"/><l>NaN</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no Image properties available!</l><l>stage position --&gt; ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>xi</l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportListItem"><l>1</l><block var="imageOffsets"/></block></block><block var="imageSize"/></block></block><block s="doSetVar"><l>yi</l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportListItem"><l>2</l><block var="imageOffsets"/></block></block><block var="imageSize"/></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>image-position</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="xi"/><block var="yi"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="xi"/><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></list></block><block s="reportVariadicGreaterThan"><list><block var="yi"/><custom-block s="ImagePadProperty %txt of %txt"><l>imageHeight</l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></list></block><block s="reportVariadicLessThan"><list><block var="xi"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="yi"/><l>1</l></list></block></list></block><script><block s="doReport"><l>NaN</l></block></script><script><block s="doReport"><custom-block s="%txt at %mult%s on %txt %br using Snap! coordinates %b"><l>imageData</l><list><block var="xi"/><block var="yi"/></list><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block><l><bool>false</bool></l></custom-block></block></script></block></script></block></script><list></list></block><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong selection!</l><l>stage position --&gt; ...</l></custom-block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; %&apos;position&apos; on %&apos;sprite&apos; $arrowRightOutline stage position $nl using Snap! coordinates %&apos;snap!Coordinates&apos;" type="reporter" category="6. ImagePad for image operations"><comment x="0" y="0" w="199.33333333333317" collapsed="false">Stage coordinates are alternatively described as Snap! or JavaScript coordinates, window and image coordinates are always JavaScript coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">window-position<options>window-position&#xD;image-position</options></input><input type="%mult%s"></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>imageOffsets</l><l>imageSize</l><l>target</l><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target is not a window to an ImagePad!</l><l>window-position/... --&gt; stage position</l></custom-block></script><list></list></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>window-position</l></list></block><script><block s="doSetVar"><l>result</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></list></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="reportDifference"><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></list></block><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block></block></list></block></block><block s="doIfElse"><block var="snap!Coordinates"/><script><block s="doReport"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="result"/></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportListItem"><l>2</l><block var="result"/></block></block></list></block></block></script><script><block s="doReport"><block var="result"/></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>image-position</l></list></block><script><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target is not an ImagePad!</l><l>window-position/... --&gt; stage position</l></custom-block></script><list></list></block><block s="doSetVar"><l>imageSize</l><block s="reportQuotient"><block s="reportAskFor"><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block><list></list></block><l>100</l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="imageSize"/><l>NaN</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no Image properties available!</l><l>window-position/... --&gt; stage position</l></custom-block></script><list></list></block><block s="doSetVar"><l>imageOffsets</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block></block></list></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="imageSize"/><block s="reportListItem"><l>1</l><block var="position"/></block></list></block><block s="reportAttributeOf"><l><option>left</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block></list></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="reportDifference"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="imageSize"/><block s="reportListItem"><l>2</l><block var="position"/></block></list></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></list></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block></block></list></block></block></script><list></list></block><block s="doIfElse"><block var="snap!Coordinates"/><script><block s="doReport"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="result"/></block><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block><block s="reportListItem"><l>2</l><block var="result"/></block></block></list></block></block></script><script><block s="doReport"><block var="result"/></block></script></block></script></block></script></block-definition><block-definition s="position %&apos;position&apos; is in window %&apos;sprite&apos;" type="predicate" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Target isn&apos;t configured as an ImagePad!</l><l>position is in the window</l></custom-block></script><list></list></block><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></list></block><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>right</option></l><block var="target"/></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportAttributeOf"><l><option>bottom</option></l><block var="target"/></block></list></block><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>2</l><block var="position"/></block><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block></list></block></list></block></list></block></block></script></block></script></block-definition><block-definition s="attach part %&apos;part&apos; to sprite %&apos;sprite&apos;" type="command" category="control" space="true"><comment x="0" y="0" w="98.8" collapsed="false">Attaches a sprite as part of another sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s">a part</input><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>aPart</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doSetVar"><l>aPart</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="part"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="part"/></block></block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><block s="reportIsA"><block var="aPart"/><l><option>sprite</option></l></block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>SciS_attach part(choice,part)</l><list><l>attach</l><block var="aPart"/></list></block></autolambda><list></list></block><list></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: operation works only with sprites!</l><l>attach part</l></custom-block></script></block></script></block-definition><block-definition s="start SciSnap! stage: %&apos;width&apos; X %&apos;height&apos;" type="command" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="143.1691406249999" collapsed="false">Initialization of SciSnap!</comment><header></header><code></code><translations></translations><inputs><input type="%n">800</input><input type="%n">600</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnap3Extensions.js</l></list></block><block s="doWarp"><script><block s="doApplyExtension"><l>SciS_addMenuItemForSciSnapManuals()</l><list></list></block><block s="doApplyExtension"><l>SciS_SetSciSnapLogo()</l><list></list><comment w="138.33333333333334" collapsed="false">Changes the Snap!-Logo. ;-)</comment></block><custom-block s="set value %s to %s"><l>Stage size</l><block s="reportNewList"><list><block var="width"/><block var="height"/></list></block></custom-block><custom-block s="create SciSnap! global variables and properties"></custom-block><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><l>Empty</l></list></block><block s="doSwitchToCostume"><l>HilbertoRight</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="bubble"><l></l></block></script></block></script><scripts><script x="335" y="71.83333333333329"><block s="doApplyExtension"><l>src_load(url)</l><list><l>https://emu-online.de/SciSnap3Extensions.js</l></list><comment w="90" collapsed="false">alternative server</comment></block></script></scripts></block-definition><block-definition s="create costume data" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="109.33333333333333" collapsed="false">Creates a text-file &quot;SciSnap!Costumes&quot; from present costumes.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doWarp"><script><block s="bubble"><l>This may take some time!</l></block><custom-block s="create %s var %mult%txt"><l>global</l><list><l>SciSnap!Costumes</l></list></custom-block><block s="doSetVar"><l>SciSnap!Costumes</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>costume</l><block s="reportGet"><l><option>costumes</option></l></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportGetImageAttribute"><l><option>name</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block></list></block><block var="SciSnap!Costumes"/></block></script></block><block s="doSetVar"><l>data</l><l>""</l></block><block s="doForEach"><l>item</l><block var="SciSnap!Costumes"/><script><block s="doSetVar"><l>data</l><block s="reportJoinWords"><list><block var="data"/><l>+"</l><block s="reportListItem"><l>1</l><block var="item"/></block><l>,</l><block s="reportListItem"><l>2</l><block var="item"/></block><l>,</l><block s="reportListItem"><l>3</l><block var="item"/></block><l>,"</l></list></block></block><block s="doForEach"><l>values</l><block s="reportListItem"><l>4</l><block var="item"/></block><script><block s="doSetVar"><l>data</l><block s="reportJoinWords"><list><block var="data"/><l>+"</l><block s="reportListItem"><l>1</l><block var="values"/></block><l>,</l><block s="reportListItem"><l>2</l><block var="values"/></block><l>,</l><block s="reportListItem"><l>3</l><block var="values"/></block><l>,</l><block s="reportListItem"><l>4</l><block var="values"/></block><l>,"</l></list></block></block></script></block></script></block><custom-block s="write %s to %s -file %txt"><block var="data"/><l>TEXT</l><l>SciSnap!Costumes</l></custom-block><custom-block s="delete var %mult%txt"><list><l>SciSnap!Costumes</l></list></custom-block><block s="bubble"><l></l></block></script></block></script></block-definition><block-definition s="create SciSnap! costumes" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="135.1655598958333" collapsed="false">Creates and stores different SciSnap! costumes.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnap3Costumedata.js</l></list></block><custom-block s="create %s var %mult%txt"><l>global</l><list><l>SciSnap!Costumes</l></list></custom-block><block s="doShowVar"><l>SciSnap!Costumes</l></block><block s="doSetVar"><l>SciSnap!Costumes</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block s="reportApplyExtension"><l>SciS_costumeData()</l><list></list></block><script><block s="bubble"><block s="reportJoinWords"><list><l>costume "</l><block s="reportListItem"><l>1</l><block var="item"/></block><l>" is processed.</l></list></block></block><block s="doAddToList"><block s="reportNewCostume"><block s="reportListItem"><l>4</l><block var="item"/></block><block s="reportListItem"><l>2</l><block var="item"/></block><block s="reportListItem"><l>3</l><block var="item"/></block></block><block var="SciSnap!Costumes"/></block><custom-block s="rename costume %s to %txt"><block s="reportListItem"><l><option>last</option></l><block var="SciSnap!Costumes"/></block><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block><block s="doSayFor"><l>ready!</l><l>1</l></block></script></block></script><scripts><script x="360.98193359375" y="76.75"><block s="doApplyExtension"><l>src_load(url)</l><list><l>https://emu-online.de/SciSnap3Costumedata.js</l></list><comment w="90" collapsed="false">alternative server</comment></block></script></scripts></block-definition><block-definition s="create SciSnap! global variables and properties" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="220.79868031547676" collapsed="false">Creates global variables &quot;SciSnap!Properties&quot;, &quot;SciSnap!Data&quot;, and &quot;SciSnap!Messages&quot;. &#xD;Sets the default values of global SciSnap!-properties for items&#xD;typeOfData&#xD;width&#xD;height&#xD;minValue&#xD;maxValue&#xD;columns&#xD;rows&#xD;maxSetValue</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><custom-block s="create %s var %mult%txt"><l>global</l><list><l>SciSnap!Properties</l><l>SciSnap!Data</l><l>SciSnap!Messages</l></list><comment w="220.79868031547676" collapsed="false">Creates global variables &quot;SciSnap!Properties&quot;, &quot;SciSnap!Data&quot;, and &quot;SciSnap!Messages&quot;. &#xD;Sets the default values of global SciSnap!-properties for items&#xD;typeOfData&#xD;width&#xD;height&#xD;minValue&#xD;maxValue&#xD;columns&#xD;rows&#xD;maxSetValue</comment></custom-block><block s="doSetVar"><l>SciSnap!Properties</l><custom-block s="new dictionary"></custom-block></block><block s="doSetVar"><l>SciSnap!Messages</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportNewList"><list></list></block></block><custom-block s="add key %s value %s to dictionary %l"><l>typeOfData</l><l>not set</l><block var="SciSnap!Properties"/></custom-block><custom-block s="add key %s value %s to dictionary %l"><l>width</l><l>not set</l><block var="SciSnap!Properties"/></custom-block><custom-block s="add key %s value %s to dictionary %l"><l>height</l><l>not set</l><block var="SciSnap!Properties"/></custom-block><custom-block s="add key %s value %s to dictionary %l"><l>minValue</l><l>not set</l><block var="SciSnap!Properties"/></custom-block><custom-block s="add key %s value %s to dictionary %l"><l>maxValue</l><l>not set</l><block var="SciSnap!Properties"/></custom-block><custom-block s="add key %s value %s to dictionary %l"><l>columns</l><l>0</l><block var="SciSnap!Properties"/></custom-block><custom-block s="add key %s value %s to dictionary %l"><l>rows</l><l>0</l><block var="SciSnap!Properties"/></custom-block><custom-block s="add key %s value %s to dictionary %l"><l>maxSetValue</l><l>500</l><block var="SciSnap!Properties"/></custom-block></script></block></script></block-definition><block-definition s="set SciSnap! global property %&apos;key&apos; to %&apos;value&apos;" type="command" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="128.97435897435886" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfData<options>typeOfData&#xD;width&#xD;height&#xD;minValue&#xD;maxValue&#xD;columns&#xD;rows&#xD;maxSetValue</options></input><input type="%s"></input></inputs><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block var="SciSnap!Properties"/><block var="value"/></block></script></block-definition><block-definition s="SciSnap! global property %&apos;key&apos;" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="143.3333333333334" collapsed="false">Returns the value of an existing global SciSnap!-property or &quot;&quot;.&#xD;&#xD;Items:&#xD;typeOfData&#xD;width&#xD;height&#xD;minValue&#xD;maxValue&#xD;columns&#xD;rows&#xD;maxSetValue</comment><header></header><code></code><translations></translations><inputs><input type="%s">minValue<options>typeOfData&#xD;width&#xD;height&#xD;minValue&#xD;maxValue&#xD;columns&#xD;rows&#xD;maxSetValue</options></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block var="SciSnap!Properties"/></block></block></script></block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as a SketchPad width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; with close-button %&apos;withCloseButton?&apos; left? %&apos;left?&apos; size: %&apos;closeButtonSize&apos;" type="command" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="150.3846153846154" collapsed="false">Creates a new  empty costume of the specified size and color and sets the local properties.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%s" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%b">false</input><input type="%b" readonly="true">false<options>left&#xD;right</options></input><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><block s="reportIsA"><block var="target"/><l><option>stage</option></l></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite or stage required!</l><l>configure ... as a SketchPad</l></custom-block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>myProperties</l><l>myData</l><l>myCloseButton</l></list></custom-block></script><list></list></block><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l>myProperties</l><custom-block s="new dictionary"></custom-block></block><block s="doSetVar"><l>myData</l><block s="reportNewList"><list></list></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="myCloseButton"/><l><option>sprite</option></l></block></block><script><block s="doIfElse"><custom-block s="is %s deleted?"><block var="myCloseButton"/></custom-block><script><block s="doSetVar"><l>myCloseButton</l><l>not set</l></block></script><script><custom-block s="remove sprite %s"><block var="myCloseButton"/></custom-block><block s="doSetVar"><l>myCloseButton</l><l>not set</l></block></script></block></script><list></list></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="color"/></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>3</l></list></block><script><block s="doSetVar"><l>color</l><block s="reportNewList"><list><l>230</l><l>230</l><l>230</l></list></block></block></script><list></list></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="color"/><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="color"/><l></l></list></block><script><block s="doSetVar"><l>color</l><block s="reportNewList"><list><l>230</l><l>230</l><l>230</l></list></block></block></script><list></list></block></script><script><block s="doSetVar"><l>color</l><block s="reportNewList"><list><l>230</l><l>230</l><l>230</l></list></block></block></script></block></script></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doSetVar"><l>costumeWidth</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>costumeHeight</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script><script><block s="doSetVar"><l>costumeWidth</l><block var="width"/></block><block s="doSetVar"><l>costumeHeight</l><block var="height"/></block></script></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>SketchPad</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineWidth</l><l>1</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineStyle</l><l>continuous</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineColor</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>fillColor</l><block s="reportNewList"><list><l>180</l><l>180</l><l>180</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>textHeight</l><l>12</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>textOrientation</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>withCloseButton</l><block var="withCloseButton?"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>closeButtonLeft</l><block var="left?"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>closeButtonSize</l><block var="closeButtonSize"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>backColor</l><block var="color"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>frontColor</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>costumeWidth</l><block var="costumeWidth"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>costumeHeight</l><block var="costumeHeight"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>width</l><block var="width"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>height</l><block var="height"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>offsets</l><block s="reportNewList"><list><block s="reportQuotient"><block s="reportDifference"><block var="costumeWidth"/><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block var="costumeHeight"/><block var="height"/></block><l>2</l></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doIfElse"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><block var="width"/><block var="height"/><block var="color"/></custom-block></block><block s="show"></block></script><list></list></block><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block></script><script><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>fillColor</l><l>theStage</l><block var="color"/></custom-block><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><block var="costumeWidth"/><block var="costumeHeight"/><block var="color"/></custom-block></block></script><list></list></block><list></list></block></script></block></script></block></script><scripts><comment x="470.07692307692406" y="114.39743589743642" w="195" collapsed="false">costume properties:&#xD;1: width&#xD;2: height&#xD;3: back color RGB&#xD;4: offsets for position on stage&#xD;5: front color RGB&#xD;&#xD;line properties:&#xD;1: line width&#xD;2: line style&#xD;3: line color RGB&#xD;4: fill color RGB&#xD;&#xD;text properties:&#xD;1: text height&#xD;2. orientation (horizontal=true)&#xD;&#xD;closebutton properties:&#xD;1: with closebutton?&#xD;2: position (left=true)&#xD;3: closeButtonSize</comment></scripts></block-definition><block-definition s="reshape and clear SketchPad %&apos;sprite&apos; $nl to width: %&apos;width&apos; height: %&apos;height&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="137.71794871794887" collapsed="false">Reshapes and cleares the costume of a SketchPad.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l><l>size</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><block s="reportIsA"><block var="target"/><l><option>stage</option></l></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite or stage required!</l><l>reshape and clear SketchPad</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block><script><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doSetVar"><l>costumeWidth</l><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="doSetVar"><l>costumeHeight</l><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block></script><script><block s="doSetVar"><l>costumeWidth</l><block var="width"/></block><block s="doSetVar"><l>costumeHeight</l><block var="height"/></block></script></block><block s="doReplaceInList"><l>costumeWidth</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="costumeWidth"/></block><block s="doReplaceInList"><l>costumeHeight</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="costumeHeight"/></block><block s="doReplaceInList"><l>offsets</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block s="reportNewList"><list><block s="reportQuotient"><block s="reportDifference"><block var="costumeWidth"/><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block var="costumeHeight"/><block var="height"/></block><l>2</l></block></list></block></block><block s="doIfElse"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><block var="costumeWidth"/><block var="costumeHeight"/><custom-block s="SketchPadProperty %txt of %txt"><l>backColor</l><l>thisSprite</l></custom-block></custom-block></block></script><list></list></block><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block></script><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><block var="costumeWidth"/><block var="costumeHeight"/><l>white</l></custom-block></block></script><list></list></block><list></list></block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>fillColor</l><l>thisSprite</l><custom-block s="SketchPadProperty %txt of %txt"><l>backColor</l><l>theStage</l></custom-block></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>draw</l><list><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block></list><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block var="width"/></list></block><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block><block var="height"/></list></block></list><l>theStage</l><l><bool>false</bool></l></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block></list><list><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block var="width"/></block><l>2</l></block><block var="width"/></list></block><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block var="height"/></block><l>2</l></block><block var="height"/></list></block></list><l>theStage</l><l><bool>false</bool></l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Target isn&apos;t configured as SketchPad!</l><l>reshape SketchPad</l></custom-block></script></block></script></block></script></block-definition><block-definition s="delete SketchPad %&apos;sprite&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="115.59999999999998" collapsed="false">Deletes a SketchPad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block><script><block s="doIf"><custom-block s="is variable %s in the scope of %s ?"><l>myCloseButton</l><block var="target"/></custom-block><script><block s="doIf"><block s="reportIsA"><block s="reportAttributeOf"><l>myCloseButton</l><block var="target"/></block><l><option>sprite</option></l></block><script><block s="doIf"><block s="reportNot"><custom-block s="is %s deleted?"><block s="reportAttributeOf"><l>myCloseButton</l><block var="target"/></block></custom-block></block><script><custom-block s="remove sprite %s"><block s="reportAttributeOf"><l>myCloseButton</l><block var="target"/></block></custom-block></script><list></list></block></script><list></list></block></script><list></list></block><custom-block s="remove sprite %s"><block var="target"/></custom-block></script><list></list></block></script></block-definition><block-definition s="adjust close-button of %&apos;sprite&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="90" collapsed="false">If necessary, place the close button in the correct position.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>closeButton</l><l>left?</l><l>size</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block><script><block s="doIf"><block s="reportNot"><custom-block s="is %s deleted?"><block s="reportAttributeOf"><l>myCloseButton</l><block var="target"/></block></custom-block></block><script><custom-block s="remove sprite %s"><block s="reportAttributeOf"><l>myCloseButton</l><block var="target"/></block></custom-block></script><list></list></block><custom-block s="set %txt of %txt to %s"><l>myCloseButton</l><block var="target"/><l>not set</l></custom-block><block s="doIf"><custom-block s="SketchPadProperty %txt of %txt"><l>withCloseButton</l><block var="target"/></custom-block><script><block s="doSetVar"><l>left?</l><custom-block s="SketchPadProperty %txt of %txt"><l>closeButtonLeft</l><block var="target"/></custom-block></block><block s="doSetVar"><l>size</l><custom-block s="SketchPadProperty %txt of %txt"><l>closeButtonSize</l><block var="target"/></custom-block></block><block s="doSetVar"><l>closeButton</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><block s="reportJoinWords"><list><l>closeButton</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><custom-block s="list of sprites with names %br starting with %txt"><l>closeButton</l></custom-block></block><l>1</l></list></block></list></block></custom-block></block><block s="doTellTo"><block var="closeButton"/><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>myProperties</l></list></custom-block><block s="doSetVar"><l>myProperties</l><custom-block s="new dictionary"></custom-block></block><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><block var="size"/><block var="size"/><l>lightGray</l></custom-block></block><block s="show"></block></script><list></list></block><list></list></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfConfiguration</l><l>SketchPad</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="closeButton"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineWidth</l><l>1</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="closeButton"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineStyle</l><l>continuous</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="closeButton"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>lineColor</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="closeButton"/></block></block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>draw</l><list><l>0</l><l>0</l></list><list><block var="size"/><block var="size"/></list><block var="closeButton"/><l><bool>false</bool></l></custom-block><custom-block s="draw line from %mult%s to %mult%s on %txt %br using Snap! coordinates? %b"><list><l>0</l><l>0</l></list><list><block var="size"/><block var="size"/></list><block var="closeButton"/><l><bool>false</bool></l></custom-block><custom-block s="draw line from %mult%s to %mult%s on %txt %br using Snap! coordinates? %b"><list><block var="size"/><l>0</l></list><list><l>0</l><block var="size"/></list><block var="closeButton"/><l><bool>false</bool></l></custom-block><block s="doTellTo"><block var="closeButton"/><block s="reifyScript"><script><custom-block s="set layer to %txt"><l></l></custom-block></script><list></list></block><list><block s="reportVariadicSum"><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><custom-block s="layer"></custom-block></autolambda><list></list></block><list></list></block><l>1</l></list></block></list></block><block s="doIfElse"><block var="left?"/><script><block s="doTellTo"><block var="closeButton"/><block s="reifyScript"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><block var="size"/></block><l>2</l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><block var="size"/></block><l>2</l></block></list></block></list></block></script><script><block s="doTellTo"><block var="closeButton"/><block s="reifyScript"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block><list><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><block var="size"/></block><l>2</l></block></list></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><block var="size"/></block><l>2</l></block></list></block></list></block></script></block><custom-block s="attach part %s to sprite %s"><block var="closeButton"/><block var="target"/></custom-block><block s="doTellTo"><block var="closeButton"/><block s="reifyScript"><script><custom-block s="on %txt run %cmdRing"><l>mouseClickLeft</l><block s="reifyScript"><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="remove sprite %s"><block var="target"/></custom-block></script><list></list></block><list></list></block></script><list></list></block></custom-block></script><list></list></block><list></list></block><custom-block s="set %txt of %txt to %s"><l>myCloseButton</l><block var="target"/><block var="closeButton"/></custom-block></script><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; %&apos;toolType&apos; - tool for window %&apos;sprite&apos; size %&apos;size&apos;" type="command" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="123.33333333333334" collapsed="false">This block is used to create/remove dynamically tools for a window.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">create<options>create&#xD;remove</options></input><input type="%txt" readonly="true">line<options>line&#xD;a square</options></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">30</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>lineEnd1</l><l>lineEnd2</l><l>lineTool</l><l>x</l><l>y</l><l>size/2</l><l>result</l><l>caller</l><l>squareTool</l><l>size/5</l><l>apertureTool</l><l>n</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite isn&apos;t configured as a window!</l><l>create line tool</l></custom-block></script><list></list></block><block s="doSetVar"><l>caller</l><block s="reportObject"><l><option>myself</option></l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="toolType"/><l>line</l></list><comment w="225.40859375000008" collapsed="false">Create or remove TheLineTool with its ends.</comment></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>create</l></list></block><script><custom-block s="%txt %txt - tool for window %s size %n"><l>remove</l><l>line</l><block var="target"/><l>15</l></custom-block><block s="doSetVar"><l>lineTool</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><l>TheLineTool</l></custom-block></block><custom-block s="set %txt of %txt to %s"><l>myLineTool</l><block var="target"/><block var="lineTool"/></custom-block><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>myImagePosition</l><l>myWindow</l><l>myLineEnd1</l><l>myLineEnd2</l><l>isMoving</l></list></custom-block></script><list></list></block><list></list></block><custom-block s="set %txt of %txt to %s"><l>myWindow</l><l>TheLineTool</l><block var="target"/></custom-block><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>TheLineTool</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l></l><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><block var="size"/><block var="size"/><l>yellow</l></custom-block><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></list></block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction pressed</l><l>TheLineTool</l></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction mouse-departed</l><l>TheLineTool</l></custom-block><block s="doSetVar"><l>lineEnd1</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><l>LineEnd1</l></custom-block></block><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>myImagePosition</l><l>isMoving</l></list></custom-block></script><list></list></block><list></list></block><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>LineEnd1</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l></l><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportApplyExtension"><l>SciS_changeToolCostume(size,tool,color)</l><list><block var="size"/><l>lineEnd1</l><custom-block s="%s as %txt"><l>orange</l><l>RGB-value</l></custom-block></list></block><block var="size"/><block var="size"/></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>4</l></block></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>4</l></block></list></block></list></block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction pressed</l><l>LineEnd1</l></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction mouse-departed</l><l>LineEnd1</l></custom-block><custom-block s="set %txt of %txt to %s"><l>myLineEnd1</l><l>TheLineTool</l><block var="lineEnd1"/></custom-block><block s="doSetVar"><l>lineEnd2</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><l>LineEnd2</l></custom-block></block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>myImagePosition</l><l>isMoving</l></list></custom-block></script><list></list></block><list></list></block><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>LineEnd2</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l></l><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportApplyExtension"><l>SciS_changeToolCostume(size,tool,color)</l><list><block var="size"/><l>lineEnd1</l><custom-block s="%s as %txt"><l>magenta</l><l>RGB-value</l></custom-block></list></block><block var="size"/><block var="size"/></block><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>4</l></block></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>4</l></block></block></list></block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction pressed</l><l>LineEnd2</l></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction mouse-departed</l><l>LineEnd2</l></custom-block><custom-block s="set %txt of %txt to %s"><l>myLineEnd2</l><l>TheLineTool</l><block var="lineEnd2"/></custom-block><custom-block s="update tool coordinates on %s"><block var="target"/></custom-block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><custom-block s="%s as %txt"><l>yellow</l><l>RGB-value</l></custom-block></custom-block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineWidth</l><block var="target"/><l>2</l></custom-block><custom-block s="draw line from %mult%s to %mult%s on %txt %br using Snap! coordinates? %b"><list><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd1</l></block></list><l>window-position</l><block var="target"/><l><bool>true</bool></l></custom-block></list><list><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd2</l></block></list><l>window-position</l><block var="target"/><l><bool>true</bool></l></custom-block></list><block var="target"/><l><bool>false</bool></l></custom-block></script><script><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>LineEnd1</l></block><l><option>sprite</option></l></block><script><custom-block s="remove sprite %s"><l>LineEnd1</l></custom-block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>LineEnd2</l></block><l><option>sprite</option></l></block><script><custom-block s="remove sprite %s"><l>LineEnd2</l></custom-block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>TheLineTool</l></block><l><option>sprite</option></l></block><script><custom-block s="remove sprite %s"><l>TheLineTool</l></custom-block></script><list></list></block><custom-block s="update window %s"><block var="target"/></custom-block><custom-block s="set %txt of %txt to %s"><l>myLineTool</l><block var="target"/><l>not set</l></custom-block></script></block><custom-block s="update tool positions on %s"><block var="target"/></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="toolType"/><l>a square</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>create</l></list></block><script><block s="doSetVar"><l>n</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><custom-block s="list of sprites with names %br starting with %txt"><l>SquareTool</l></custom-block></block><l>1</l></list></block></block><block s="doSetVar"><l>squareTool</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><block s="reportJoinWords"><list><l>SquareTool</l><l>-</l><block var="n"/></list></block></custom-block></block><block s="doTellTo"><block var="squareTool"/><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>myImagePosition</l><l>myWindow</l><l>isActive</l></list></custom-block></script><list></list></block><list></list></block><block s="doAddToList"><block var="squareTool"/><block s="reportAttributeOf"><l>mySquareTools</l><block var="target"/></block></block><custom-block s="set %txt of %txt to %s"><l>myWindow</l><block var="squareTool"/><block var="target"/></custom-block><custom-block s="set %txt of %txt to %s"><l>isActive</l><block var="squareTool"/><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="size"/><l>200</l></list></block><script><block s="doSetVar"><l>size</l><l>200</l></block></script><list></list></block><block s="doTellTo"><block var="squareTool"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l></l><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportApplyExtension"><l>SciS_changeToolCostume(size,tool,color)</l><list><block var="size"/><l>squareTool</l><custom-block s="%s as %txt"><l>orange</l><l>RGB-value</l></custom-block></list></block><block var="size"/><block var="size"/></block><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></list></block><block s="doTellTo"><block var="squareTool"/><block s="reifyScript"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block><list><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block><block var="size"/></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>right</option></l><block var="target"/></block><block var="size"/></block></block><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>bottom</option></l><block var="target"/></block><block var="size"/></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block><block var="size"/></block></block></list></block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction pressed</l><block var="squareTool"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction mouse-departed</l><block var="squareTool"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveKey +</l><block var="squareTool"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveKey -</l><block var="squareTool"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveKey up arrow</l><block var="squareTool"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveKey down arrow</l><block var="squareTool"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveKey left arrow</l><block var="squareTool"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveKey right arrow</l><block var="squareTool"/></custom-block><custom-block s="update tool coordinates on %s"><block var="target"/></custom-block></script><script><block s="doSetVar"><l>squareTool</l><block s="reportListItem"><l><option>last</option></l><block s="reportAttributeOf"><l>mySquareTools</l><block var="target"/></block></block></block><block s="doIf"><block s="reportIsA"><block s="reportObject"><block var="squareTool"/></block><l><option>sprite</option></l></block><script><block s="doDeleteFromList"><l><option>last</option></l><block s="reportAttributeOf"><l>mySquareTools</l><block var="target"/></block></block><custom-block s="remove sprite %s"><block var="squareTool"/></custom-block><custom-block s="update window %s"><block var="target"/></custom-block></script><list></list></block></script></block></script><list></list><comment w="225.40859375000008" collapsed="false">Create or remove a SquareTool.</comment></block><custom-block s="select sprite %s"><block var="caller"/></custom-block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; %&apos;tool&apos; of window %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">show<options>show&#xD;hide</options></input><input type="%txt" readonly="true">TheLineTool<options>TheLineTool&#xD;TheSquareTool</options></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>lineEnd1</l><l>lineEnd2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite is not a window!</l><l>show/hide line tool</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tool"/><l>TheLineTool</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportObject"><l>TheLineTool</l></block><l><option>sprite</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no linetool available!</l><l>show/hide line tool</l></custom-block></script><list></list></block><block s="doSetVar"><l>tool</l><block s="reportObject"><l>TheLineTool</l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>show</l></list></block><script><block s="doSetVar"><l>lineEnd1</l><block s="reportAttributeOf"><l>myLineEnd1</l><l>TheLineTool</l></block></block><block s="doSetVar"><l>lineEnd2</l><block s="reportAttributeOf"><l>myLineEnd2</l><l>TheLineTool</l></block></block><custom-block s="update window %s"><block var="target"/></custom-block><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="doGotoObject"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd1</l></block><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd2</l></block></list></block><l>2</l></block></block></script><list></list></block><list></list></block><block s="doIfElse"><custom-block s="position %mult%s is in window %s"><list><block s="reportAttributeOf"><l><option>position</option></l><l>TheLineTool</l></block></list><block var="target"/></custom-block><script><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="show"></block><block s="goToLayer"><l><option>front</option></l></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script></block><block s="doIfElse"><custom-block s="position %mult%s is in window %s"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd1</l></block></list><block var="target"/></custom-block><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="show"></block><block s="goToLayer"><l><option>front</option></l></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script></block><block s="doIfElse"><custom-block s="position %mult%s is in window %s"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd2</l></block></list><block var="target"/></custom-block><script><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="show"></block><block s="goToLayer"><l><option>front</option></l></block></script><list></list></block><list></list></block></script><script><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script></block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><custom-block s="%s as %txt"><l>yellow</l><l>RGB-value</l></custom-block></custom-block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineWidth</l><block var="target"/><l>2</l></custom-block><custom-block s="update tool coordinates on %s"><block var="target"/></custom-block><custom-block s="draw line from %mult%s to %mult%s on %txt %br using Snap! coordinates? %b"><list><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd1</l></block></list><l>window-position</l><block var="target"/><l><bool>true</bool></l></custom-block></list><list><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd2</l></block></list><l>window-position</l><block var="target"/><l><bool>true</bool></l></custom-block></list><block var="target"/><l><bool>false</bool></l></custom-block></script><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block><custom-block s="update window %s"><block var="target"/></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tool"/><l>TheSquareTool</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportObject"><l>TheSquareTool</l></block><l><option>sprite</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no squaretool available!</l><l>show/hide line tool</l></custom-block></script><list></list></block><block s="doSetVar"><l>tool</l><block s="reportObject"><l>TheSquareTool</l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="selection"/><l>show</l></list></block><script><custom-block s="update tool positions on %s"><block var="target"/></custom-block></script><script><block s="doTellTo"><l>TheSquareTool</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block></script></block></script><list></list></block></script></block></script></block-definition><block-definition s="update tool positions on %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations" space="true"><comment x="0" y="0" w="138.65395220588252" collapsed="false">Moves tools to new positions corresponding to their image coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite isn&apos;t configured as a window!</l><l>update tool positions</l></custom-block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>TheLineTool</l></block><l><option>sprite</option></l></block><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="doGotoObject"><custom-block s="%s %mult%s on %s $arrowRightOutline stage position %br using Snap! coordinates %b"><l>image-position</l><list><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd1</l></block></list><block var="target"/><l><bool>true</bool></l></custom-block></block></script><list></list></block><list></list></block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="doGotoObject"><custom-block s="%s %mult%s on %s $arrowRightOutline stage position %br using Snap! coordinates %b"><l>image-position</l><list><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd2</l></block></list><block var="target"/><l><bool>true</bool></l></custom-block></block></script><list></list></block><list></list></block><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="doGotoObject"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd1</l></block><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd2</l></block></list></block><l>2</l></block></block></script><list></list></block><list></list></block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block var="target"/></custom-block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>TheSquareTool</l></block><l><option>sprite</option></l></block><script><block s="doTellTo"><l>TheSquareTool</l><block s="reifyScript"><script><block s="doGotoObject"><custom-block s="%s %mult%s on %s $arrowRightOutline stage position %br using Snap! coordinates %b"><l>image-position</l><list><block s="reportAttributeOf"><l>myImagePosition</l><l>TheSquareTool</l></block></list><block var="target"/><l><bool>true</bool></l></custom-block></block><block s="setScale"><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></block><custom-block s="ImagePadProperty %txt of %txt"><l>costumeWidth</l><block s="reportAttributeOf"><l>currentImage</l><block var="target"/></block></custom-block></block></list></block></block><block s="show"></block></script><list></list></block><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="update tool coordinates on %&apos;sprite&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %txt a window to Imagepads?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite isn&apos;t configured as a window!</l><l>update tool coordinates</l></custom-block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>TheLineTool</l></block><l><option>sprite</option></l></block><script><custom-block s="set %txt of %txt to %s"><l>myImagePosition</l><l>TheLineTool</l><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><l>TheLineTool</l></block></list><l>image-position</l><block var="target"/><l><bool>true</bool></l></custom-block></custom-block><custom-block s="set %txt of %txt to %s"><l>myImagePosition</l><l>LineEnd1</l><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd1</l></block></list><l>image-position</l><block var="target"/><l><bool>true</bool></l></custom-block></custom-block><custom-block s="set %txt of %txt to %s"><l>myImagePosition</l><l>LineEnd2</l><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><l>LineEnd2</l></block></list><l>image-position</l><block var="target"/><l><bool>true</bool></l></custom-block></custom-block></script><list></list></block><block s="doForEach"><l>squareTool</l><block s="reportAttributeOf"><l>mySquareTools</l><block var="target"/></block><script><custom-block s="set %txt of %txt to %s"><l>myImagePosition</l><block var="squareTool"/><custom-block s="stage position %mult%s $arrowRightOutline %txt on %s %br using Snap! coordinates %b"><list><block s="reportAttributeOf"><l><option>position</option></l><block var="squareTool"/></block></list><l>image-position</l><block var="target"/><l><bool>true</bool></l></custom-block></custom-block></script></block></script></block></script></block-definition><block-definition s="move %&apos;tool&apos; %&apos;direction&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">LineTool<options>LineTool&#xD;SquareTool</options></input><input type="%s" readonly="true">left<options>left&#xD;right&#xD;up&#xD;down</options></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="tool"/><l>LineTool</l></list></block><script><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>TheLineTool</l></block><l><option>sprite</option></l></block><script><block s="doSetVar"><l>tool</l><block s="reportObject"><l>TheLineTool</l></block></block><custom-block s="%txt %txt of window %s"><l>hide</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block></script><list><block s="reportVariadicEquals"><list><block var="tool"/><l>SquareTool</l></list></block><script><block s="doIf"><block s="reportIsA"><block s="reportObject"><l>TheSquareTool</l></block><l><option>sprite</option></l></block><script><block s="doSetVar"><l>tool</l><block s="reportObject"><l>TheSquareTool</l></block></block></script><list></list></block></script><block s="reportNot"><block s="reportIsA"><block var="tool"/><l><option>sprite</option></l></block></block><script><block s="doStopThis"><l><option>this block</option></l></block></script></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="direction"/><l>left</l></list></block><script><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="changeXPosition"><l>-1</l></block></script><list></list></block><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tool"/><block s="reportObject"><l>TheLineTool</l></block></list></block><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="changeXPosition"><l>-1</l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="changeXPosition"><l>-1</l></block></script><list></list></block><list></list></block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block></script><list><block s="reportVariadicEquals"><list><block var="direction"/><l>right</l></list></block><script><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="changeXPosition"><l>1</l></block></script><list></list></block><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tool"/><block s="reportObject"><l>TheLineTool</l></block></list></block><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="changeXPosition"><l>1</l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="changeXPosition"><l>1</l></block></script><list></list></block><list></list></block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block></script><block s="reportVariadicEquals"><list><block var="direction"/><l>up</l></list></block><script><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="changeYPosition"><l>1</l></block></script><list></list></block><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tool"/><block s="reportObject"><l>TheLineTool</l></block></list></block><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="changeYPosition"><l>1</l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="changeYPosition"><l>1</l></block></script><list></list></block><list></list></block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block></script><block s="reportVariadicEquals"><list><block var="direction"/><l>down</l></list></block><script><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="changeYPosition"><l>-1</l></block></script><list></list></block><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="tool"/><block s="reportObject"><l>TheLineTool</l></block></list></block><script><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="changeYPosition"><l>-1</l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>LineEnd2</l><block s="reifyScript"><script><block s="changeYPosition"><l>-1</l></block></script><list></list></block><list></list></block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block></script></list></block></script></block></script></block-definition><block-definition s="detach all parts from %&apos;sprite&apos;" type="command" category="control"><comment x="0" y="0" w="234.86035156249997" collapsed="false">Cancels the connection between attached sprites.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block><script><block s="doTellTo"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>SciS_attach part(choice,part)</l><list><l>detach</l><block var="target"/></list></block></autolambda><list></list></block><list></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: operation works only with sprites!</l><l>detach part</l></custom-block></script></block></script></block-definition><block-definition s="on %&apos;event&apos; run %&apos;aScript&apos;" type="command" category="control"><comment x="0" y="0" w="196" collapsed="false">Adds an event handler to a sprite. Resets the event handler with the standard sprite operation if the script is empty.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">mouseClickLeft<options>mouseDownLeft&#xD;mouseDownRight&#xD;mouseClickLeft&#xD;mouseClickRight&#xD;mouseDoubleClick&#xD;mouseEnter&#xD;mouseLeave&#xD;mouseEnterDragging&#xD;mouseLeaveDragging&#xD;mouseEnterBounds&#xD;mouseLeaveBounds&#xD;mouseMove&#xD;mouseScroll</options></input><input type="%cmdRing"></input></inputs><script><block s="doSetVar"><l>event</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><custom-block s="trim %txt by %mult%txt"><block var="event"/><list><l> </l></list></custom-block><l> </l></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="aScript"/><block s="reifyScript"><script></script><list></list></block></list></block><script><block s="doSetVar"><l>aScript</l><l>reset</l></block></script><list></list></block><block s="doRun"><block s="reifyScript"><script><block s="doApplyExtension"><l>SciS_onEventRun(aFunction,event)</l><list><l></l><l></l></list></block></script><list></list></block><list><block var="aScript"/><block var="event"/></list></block></script></block-definition><block-definition s="delete %&apos;choice&apos; %&apos;substring&apos; in %&apos;aString&apos;" type="reporter" category="operators"><comment x="0" y="0" w="110.19230769230774" collapsed="false">Reports a string without first/all instances of substring.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">all<options>all&#xD;first</options></input><input type="%txt">this</input><input type="%txt">thisString</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_stringOperations(operation,params)</l><list><l>delete</l><block s="reportNewList"><list><block var="choice"/><block var="substring"/><block var="aString"/></list></block></list></block></block></script></block-definition><block-definition s="substring of %&apos;aString&apos; from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="operators"><comment x="0" y="0" w="94.74358974358977" collapsed="false">Reports a substring of a string.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisString</input><input type="%n">1</input><input type="%n">4</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_stringOperations(operation,params)</l><list><l>substring</l><block s="reportNewList"><list><block var="aString"/><block var="from"/><block var="to"/></list></block></list></block></block></script></block-definition><block-definition s="trim %&apos;aString&apos; by %&apos;chars&apos;" type="reporter" category="operators"><comment x="0" y="0" w="202.10569411057682" collapsed="false">Deletes leading and trailing as parameter defined characters in a string.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">..this string...</input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>char</l><block var="chars"/><script><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="aString"/></block><l>0</l></list></block><block s="reportVariadicNotEquals"><list><block s="reportLetter"><l>1</l><block var="aString"/></block><block var="char"/></list></block></list></block><script><block s="doSetVar"><l>aString</l><custom-block s="delete %txt %txt in %txt"><l>first</l><block var="char"/><block var="aString"/></custom-block></block></script></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="aString"/></block><l>0</l></list></block><block s="reportVariadicNotEquals"><list><block s="reportLetter"><l><option>last</option></l><block var="aString"/></block><block var="char"/></list></block></list></block><script><block s="doSetVar"><l>aString</l><custom-block s="substring of %txt from %n to %n"><block var="aString"/><l>1</l><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="aString"/></block><l>1</l></block></custom-block></block></script></block></script></block><block s="doReport"><block var="aString"/></block></script></block></script></block-definition><block-definition s="Euclidean distance between $nl point %&apos;p1&apos; and point %&apos;p2&apos;" type="reporter" category="operators" space="true"><comment x="0" y="0" w="100.8" collapsed="false">Reports the Euclidean distance of to points.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>x1</l><l>y1</l><l>x2</l><l>y2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>p1</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="p1"/></custom-block></block><block s="doSetVar"><l>p2</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="p2"/></custom-block></block><block s="doSetVar"><l>x1</l><block s="reportListItem"><l>1</l><block var="p1"/></block></block><block s="doSetVar"><l>y1</l><block s="reportListItem"><l>2</l><block var="p1"/></block></block><block s="doSetVar"><l>x2</l><block s="reportListItem"><l>1</l><block var="p2"/></block></block><block s="doSetVar"><l>y2</l><block s="reportListItem"><l>2</l><block var="p2"/></block></block><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="x1"/><block var="x2"/></block><block s="reportDifference"><block var="x1"/><block var="x2"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="y1"/><block var="y2"/></block><block s="reportDifference"><block var="y1"/><block var="y2"/></block></list></block></list></block></block></block></script></block></script></block-definition><block-definition s="Levenshtein distance of %&apos;s1&apos; and %&apos;s2&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Metric for Strings.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Saturday</input><input type="%txt">Sunday</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_LevenshteinDistance(s1,s2)</l><list><block var="s1"/><block var="s2"/></list></block></block></script></block-definition><block-definition s="delete all closeButtons" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="196" collapsed="false">Deletes any &quot;remaining&quot; close buttons.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>sprites</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>sprites</l><block s="reportGet"><l><option>other sprites</option></l></block></block><block s="doAddToList"><block s="reportGet"><l><option>self</option></l></block><block var="sprites"/></block><block s="doForEach"><l>sprite</l><block var="sprites"/><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block><l>1</l><l>11</l></custom-block><l>closeButton</l></list></block><script><custom-block s="remove sprite %s"><block var="sprite"/></custom-block></script><list></list></block></script></block></script></block></script></block-definition><block-definition s="set SketchPadProperty %&apos;key&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="128.97435897435886" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets for Image position=imageOffsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;1: text height=textHeight&#xD;2. orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="value"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Missing variable "myProperties"!</l><l>set SketchPadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="SketchPadProperty %&apos;key&apos; of %&apos;sprite&apos;" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="95" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets for Image position=imageOffsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;1: text height=textHeight&#xD;2. orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing variable myProperties!</l><l>SketchPadProperty of ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="draw line from %&apos;position1&apos; to %&apos;position2&apos; on %&apos;sprite&apos; $nl using Snap! coordinates? %&apos;snap!Coordinates&apos;" type="command" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="147.77135416666673" collapsed="false">Draws a line on present costume using line properties. Coordinates can be used as Snap! or JS coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>x0</l><l>y0</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Sprite isn&apos;t configured as a SketchPad!</l><l>draw line ...</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doSetVar"><l>position1</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position1"/></custom-block></block><block s="doSetVar"><l>position2</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position2"/></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block></block><block s="doReplaceInList"><l>1</l><block var="position1"/><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><l>1</l><block var="position1"/></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="position1"/><block s="reportDifference"><block var="y0"/><block s="reportListItem"><l>2</l><block var="position1"/></block></block></block><block s="doReplaceInList"><l>1</l><block var="position2"/><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><l>1</l><block var="position2"/></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="position2"/><block s="reportDifference"><block var="y0"/><block s="reportListItem"><l>2</l><block var="position2"/></block></block></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_drawOnCostume(operation,costume,params,properties)</l><list><l>drawLine</l><custom-block s="copy of costume %s"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block><block s="reportConcatenatedLists"><list><block var="position1"/><block var="position2"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="%&apos;modus&apos; rectangle from: %&apos;position1&apos; to: %&apos;position2&apos; on %&apos;sprite&apos; $nl using Snap! coordinates? %&apos;snap!Coordinates&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Draws a rectangle on present costume using line properties. Coordinates can be used as Snap! or JS coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">draw<options>draw&#xD;fill</options></input><input type="%mult%s"></input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>x0</l><l>y0</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Sprite isn&apos;t configured as a SketchPad!</l><l>draw rectangle ...</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doSetVar"><l>position1</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position1"/></custom-block></block><block s="doSetVar"><l>position2</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position2"/></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block></block><block s="doReplaceInList"><l>1</l><block var="position1"/><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><l>1</l><block var="position1"/></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="position1"/><block s="reportDifference"><block var="y0"/><block s="reportListItem"><l>2</l><block var="position1"/></block></block></block><block s="doReplaceInList"><l>1</l><block var="position2"/><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><l>1</l><block var="position2"/></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="position2"/><block s="reportDifference"><block var="y0"/><block s="reportListItem"><l>2</l><block var="position2"/></block></block></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_drawOnCostume(operation,costume,params,properties)</l><list><block s="reportJoinWords"><list><block var="modus"/><l>Rect</l></list></block><custom-block s="copy of costume %s"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block><block s="reportConcatenatedLists"><list><block var="position1"/><block var="position2"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="%&apos;modus&apos; circle center: %&apos;position1&apos; radius: %&apos;radius&apos; on %&apos;sprite&apos; $nl using Snap! coordinates? %&apos;snap!Coordinates&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Draws or fills a rectangle on present costume using line properties. Coordinates can be used as Snap! or JS coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true" irreplaceable="true">draw<options>draw&#xD;fill</options></input><input type="%mult%s"></input><input type="%n">20</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>x0</l><l>y0</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Sprite isn&apos;t configured as a SketchPad!</l><l>draw circle ...</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doSetVar"><l>position1</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position1"/></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block></block><block s="doReplaceInList"><l>1</l><block var="position1"/><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><l>1</l><block var="position1"/></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="position1"/><block s="reportDifference"><block var="y0"/><block s="reportListItem"><l>2</l><block var="position1"/></block></block></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_drawOnCostume(operation,costume,params,properties)</l><list><block s="reportJoinWords"><list><block var="modus"/><l>Circle</l></list></block><custom-block s="copy of costume %s"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block><block s="reportConcatenatedLists"><list><block var="position1"/><block s="reportNewList"><list><block var="radius"/></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="draw text %&apos;text&apos; at: %&apos;position1&apos; height: %&apos;height&apos; horizontal? %&apos;horizontal?&apos; $nl on %&apos;sprite&apos; using Snap! coordinates? %&apos;snap!Coordinates&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="147.77135416666673" collapsed="false">Draws a text on present costume using line properties. The text is drawn horizontal or vertical. Coordinates can be used as Snap! or JS coordinates.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">my text</input><input type="%mult%s"></input><input type="%n">12</input><input type="%b"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">false</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>x0</l><l>y0</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Sprite isn&apos;t configured as a SketchPad!</l><l>draw text ...</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doSetVar"><l>position1</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position1"/></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>x0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block var="target"/></block><l>2</l></block></block><block s="doSetVar"><l>y0</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block var="target"/></block><l>2</l></block></block><block s="doReplaceInList"><l>1</l><block var="position1"/><block s="reportVariadicSum"><list><block var="x0"/><block s="reportListItem"><l>1</l><block var="position1"/></block></list></block></block><block s="doReplaceInList"><l>2</l><block var="position1"/><block s="reportDifference"><block var="y0"/><block s="reportListItem"><l>2</l><block var="position1"/></block></block></block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>SciS_drawOnCostume(operation,costume,params,properties)</l><list><l>drawText</l><custom-block s="copy of costume %s"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="position1"/></block><block s="reportListItem"><l>2</l><block var="position1"/></block><block var="text"/><block var="height"/><block var="horizontal?"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="width of text %&apos;text&apos; in height %&apos;height&apos; on %&apos;sprite&apos;" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="90" collapsed="false">Reports the width of the text, if drawn on a Sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">my text</input><input type="%n">18</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIfElse"><custom-block s="is %s a %s ?"><block var="target"/><l>SketchPad</l></custom-block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_drawOnCostume(operation,costume,params,properties)</l><list><l>widthOfText</l><custom-block s="copy of costume %s"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block><block s="reportNewList"><list><block var="text"/><block var="height"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite isn&apos;t configured as a SketchPad!</l><l>width of text ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="Example: rectangles, inspired by Frank Stella" type="command" category="1. SciSnap! globals" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>n</l></list></block><block s="doWarp"><script><custom-block s="start SciSnap! stage: %n X %n"><l>600</l><l>600</l></custom-block><block s="hide"></block><block s="doWait"><l>4</l></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><l>theStage</l><l>600</l><l>600</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doForever"><script><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>fillColor</l><l>theStage</l><custom-block s="%s as %txt"><l>black</l><l>RGB-value</l></custom-block></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><l>50</l><l>50</l></list><list><l>550</l><l>550</l></list><l>theStage</l><l><bool>false</bool></l></custom-block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineColor</l><l>theStage</l><custom-block s="%s as %txt"><l>white</l><l>RGB-value</l></custom-block></custom-block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportRandom"><l>1</l><l>4</l></block><script><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>draw</l><list><block s="reportVariadicSum"><list><l>50</l><block s="reportVariadicProduct"><list><block var="n"/><l>20</l></list></block></list></block><block s="reportVariadicSum"><list><l>50</l><block s="reportVariadicProduct"><list><block var="n"/><l>20</l></list></block></list></block></list><list><block s="reportDifference"><l>550</l><block s="reportVariadicProduct"><list><block var="n"/><l>20</l></list></block></block><block s="reportDifference"><l>550</l><block s="reportVariadicProduct"><list><block var="n"/><l>20</l></list></block></block></list><l>theStage</l><l><bool>false</bool></l></custom-block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doFor"><l>i</l><block var="n"/><block s="reportRandom"><l>5</l><l>15</l></block><script><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>fillColor</l><l>theStage</l><block s="reportNewList"><list><block s="reportDifference"><l>255</l><block s="reportVariadicProduct"><list><block var="i"/><block s="reportRandom"><l>15</l><l>25</l></block></list></block></block><block s="reportVariadicProduct"><list><block var="i"/><block s="reportQuotient"><block s="reportRandom"><l>150</l><l>255</l></block><block s="reportDifference"><l>15</l><block var="n"/></block></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="i"/><block s="reportQuotient"><l>155</l><block s="reportDifference"><l>15</l><block var="n"/></block></block></list></block><block s="reportRandom"><l>5</l><l>50</l></block></list></block></list></block></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><block s="reportVariadicSum"><list><l>50</l><block s="reportVariadicProduct"><list><block var="i"/><l>20</l></list></block></list></block><block s="reportVariadicSum"><list><l>50</l><block s="reportVariadicProduct"><list><block var="i"/><l>20</l></list></block></list></block></list><list><block s="reportDifference"><l>550</l><block s="reportVariadicProduct"><list><block var="i"/><l>20</l></list></block></block><block s="reportDifference"><l>550</l><block s="reportVariadicProduct"><list><block var="i"/><l>20</l></list></block></block></list><l>theStage</l><l><bool>false</bool></l></custom-block></script></block><block s="gotoXY"><l>025</l><l>-240</l></block><block s="doWait"><l>2</l></block></script></block></script></block></script></block-definition><block-definition s="Example: circles" type="command" category="1. SciSnap! globals"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doRepeat"><l>300</l><script><custom-block s="%txt circle center: %mult%s radius: %n on %txt %br using Snap! coordinates? %b"><l>draw</l><list><block s="reportRandom"><l>1</l><l>400</l></block><block s="reportRandom"><l>1</l><l>300</l></block></list><block s="reportRandom"><l>10</l><l>100</l></block><l>thisSprite</l><l><bool>false</bool></l></custom-block></script></block></script></block-definition><block-definition s="Example: why?" type="command" category="1. SciSnap! globals"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>vanishingPoint</l><l>x</l><l>y</l><l>height</l></list></block><block s="doSetVar"><l>vanishingPoint</l><block s="reportNewList"><list><block s="reportRandom"><l>150</l><l>650</l></block><block s="reportRandom"><l>20</l><l>350</l></block></list></block></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><l>theStage</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doWarp"><script><block s="doRepeat"><l>300</l><script><block s="doSetVar"><l>x</l><block s="reportRandom"><l>1</l><l>780</l></block></block><block s="doSetVar"><l>y</l><block s="reportRandom"><l>1</l><l>590</l></block></block><block s="doSetVar"><l>height</l><block s="reportQuotient"><custom-block s="Euclidean distance between %br point %mult%s and point %mult%s"><block var="vanishingPoint"/><list><block var="x"/><block var="y"/></list></custom-block><l>15</l></block></block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineColor</l><l>theStage</l><custom-block s="%s as %txt"><block s="reportRandom"><l>1</l><l>11</l></block><l>RGB-value</l></custom-block></custom-block><custom-block s="draw text %txt at: %mult%s height: %n horizontal? %b %br on %txt using Snap! coordinates? %b"><l>why?</l><list><block var="x"/><block var="y"/></list><block var="height"/><l><bool>true</bool></l><l>theStage</l><l><bool>false</bool></l></custom-block></script></block></script></block></script></block-definition><block-definition s="read %&apos;type&apos; data from URL %&apos;url&apos;" type="reporter" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="197.33333333333326" collapsed="false">Returns the content of a TEXT, CSV, RGB, JSON or FITS file from a URL. RGB-data should have the dimensions in the last row, otherwise use CSV.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">TEXT<options>TEXT&#xD;CSV&#xD;RGB&#xD;JSON&#xD;FITS</options></input><input type="%txt">this url</input></inputs><script><block s="doDeclareVariables"><list><l>filedata</l><l>filetype</l><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>filetype</l><block var="url"/></block><block s="doUntil"><block s="reportVariadicLessThan"><list><custom-block s="index of %txt in %txt"><l>.</l><block var="filetype"/></custom-block><l>1</l></list></block><script><block s="doSetVar"><l>filetype</l><custom-block s="delete %txt %txt in %txt"><l>first</l><custom-block s="substring of %txt from %n to %n"><block var="filetype"/><l>1</l><custom-block s="index of %txt in %txt"><l>.</l><block var="filetype"/></custom-block></custom-block><block var="filetype"/></custom-block></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="type"/><l>TEXT</l></list></block><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>TXT</l></list></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>TEXT</l></list></block></list></block><script><block s="doReport"><block s="reportURL"><block var="url"/></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: filetype doesn&apos;t match!</l><l>read data from URL</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="type"/><l>CSV</l></list></block><block s="reportVariadicEquals"><list><block var="type"/><l>RGB</l></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>CSV</l></list></block><script><block s="doReport"><block s="reportTextSplit"><block s="reportURL"><block var="url"/></block><l><option>csv</option></l></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: filetype doesn&apos;t match!</l><l>read data from URL</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="type"/><l>JSON</l></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>JSON</l></list></block><script><block s="doReport"><block s="reportTextSplit"><block s="reportURL"><block var="url"/></block><l><option>json</option></l></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: filetype doesn&apos;t match!</l><l>read data from URL</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="type"/><l>FITS</l></list></block><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>FITS</l></list></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>FTS</l></list></block></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_readFITSdataFromArrayBuffer(arraybuffer)</l><list><block s="reportApplyExtension"><l>SciS_fetchBinary(url)</l><list><block var="url"/></list></block></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: filetype doesn&apos;t match!</l><l>read data from URL</l></custom-block></script></block></script><list></list></block></script></block></script></block-definition><block-definition s="read %&apos;type&apos; -file with filepicker" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="197.33333333333326" collapsed="false">Returns the content of a TEXT, CSV, RGB, JSON or FITS file, selected with filepicker. RGB-data should have the dimensions in the last row, otherwise use CSV.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">TEXT<options>TEXT&#xD;CSV&#xD;RGB&#xD;JSON&#xD;FITS</options></input></inputs><script><block s="doDeclareVariables"><list><l>filedata</l><l>filetype</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>filedata</l><custom-block s="select %s with filepicker"><l>file</l></custom-block></block><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="filedata"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: oops - something went wrong!</l><l>read file with filepicker</l></custom-block></script><script><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="filedata"/></block><l><option>list</option></l></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: choose only one file, please!</l><l>read file with filepicker</l></custom-block></script><script><block s="doSetVar"><l>filetype</l><block s="reportListItem"><l>1</l><block var="filedata"/></block></block><block s="doUntil"><block s="reportVariadicLessThan"><list><custom-block s="index of %txt in %txt"><l>.</l><block var="filetype"/></custom-block><l>1</l></list></block><script><block s="doSetVar"><l>filetype</l><custom-block s="delete %txt %txt in %txt"><l>first</l><custom-block s="substring of %txt from %n to %n"><block var="filetype"/><l>1</l><custom-block s="index of %txt in %txt"><l>.</l><block var="filetype"/></custom-block></custom-block><block var="filetype"/></custom-block></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="type"/><l>TEXT</l></list></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>TXT</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="type"/><l>CSV</l></list></block><block s="reportVariadicEquals"><list><block var="type"/><l>RGB</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>CSV</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="type"/><l>JSON</l></list></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>JSON</l></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="type"/><l>FITS</l></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>FITS</l></list></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>upper case</option></l><block var="filetype"/></block><l>FTS</l></list></block></list></block></list></block></list></block><script><block s="doReport"><custom-block s="read file as BLOB %s"><block s="reportListItem"><l>2</l><block var="filedata"/></block></custom-block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: filetype doesn&apos;t match!</l><l>read file with filepicker</l></custom-block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="select %&apos;choice&apos; with filepicker" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="328.66666666666663" collapsed="false">Returns a list with one or more elements consisting of [filename/BLOB].</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">file<options>file&#xD;filelist</options></input></inputs><script><block s="doDeclareVariables"><list><l>ready</l></list></block><block s="doSetVar"><l>ready</l><block s="reportApplyExtension"><l>SciS_selectFileWithFilepicker(choice)</l><list><block var="choice"/></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="ready"/><list></list></block></block></block><block s="doReport"><block s="reportListItem"><l>2</l><block s="evaluate"><block var="ready"/><list></list></block></block></block></script></block-definition><block-definition s="read file as BLOB %&apos;source&apos;" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="205.33333333333334" collapsed="false">Returns the content of a TEXT, CSV, JSON or FITS file. The &quot;source&quot; could either be a BLOB or a list of filename and BLOB. RGB-data should have the dimensions in the last row, otherwise use CSV.</comment><header></header><code></code><translations></translations><inputs><input type="%s">this file</input></inputs><script><block s="doDeclareVariables"><list><l>ready</l></list></block><block s="doIf"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>text</option></l></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>2</l></list></block></list></block><script><block s="doSetVar"><l>source</l><block s="reportListItem"><l>2</l><block var="source"/></block></block></script><list></list></block></script><list></list></block><block s="doSetVar"><l>ready</l><block s="reportApplyExtension"><l>SciS_readFileAsBLOB(source)</l><list><block var="source"/></list></block></block><block s="doWaitUntil"><block s="reportListItem"><l>1</l><block s="evaluate"><block var="ready"/><list></list></block></block></block><block s="doReport"><block s="reportListItem"><l>2</l><block s="evaluate"><block var="ready"/><list></list></block></block></block></script></block-definition><block-definition s="write %&apos;data&apos; to %&apos;type&apos; -file %&apos;filename&apos;" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="124.1791359325606" collapsed="false">Saves the data to a file of the specified type.</comment><header></header><code></code><translations></translations><inputs><input type="%s">SciSnap!Data<options>SciSnap!Data&#xD;costumeData&#xD;other RGB data</options></input><input type="%s" readonly="true">TEXT<options>TEXT&#xD;CSV&#xD;RGB&#xD;JSON</options></input><input type="%txt">this file</input></inputs><script><block s="doDeclareVariables"><list><l>source</l></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>SciSnap!Data</l></list></block><script><block s="doSetVar"><l>source</l><block var="SciSnap!Data"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="data"/><l>costumeData</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportGet"><l><option>costume</option></l></block><l><option>costume</option></l></block><script><block s="doSetVar"><l>source</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></block><block s="doAddToList"><block s="reportNewList"><list><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block><l>dimensions</l><l></l></list></block><block var="source"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>no costume data available!</l><l>write to ...file</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script><script><block s="doSetVar"><l>source</l><block var="data"/></block></script></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="type"/><l>TEXT</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="source"/><l><option>text</option></l></block><script><block s="doApplyExtension"><l>SciS_write(data,type,filename)</l><list><block var="source"/><l>TEXT</l><block var="filename"/></list></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doApplyExtension"><l>SciS_write(data,type,filename)</l><list><block var="source"/><l>DATAASTEXT</l><block var="filename"/></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Wrong data type!</l><l>write to ...file</l></custom-block></script></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="type"/><l>CSV</l></list></block><block s="reportVariadicEquals"><list><block var="type"/><l>RGB</l></list></block></list></block><script><block s="doSayFor"><block var="source"/><l>2</l></block><block s="doIfElse"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><script><block s="doApplyExtension"><l>SciS_write(data,type,filename)</l><list><block var="source"/><l>CSV</l><block var="filename"/></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Wrong data type!</l><l>write to ...file</l></custom-block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="type"/><l>JSON</l></list></block><script><block s="doIfElse"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><script><block s="doApplyExtension"><l>SciS_write(data,type,filename)</l><list><block var="source"/><l>JSON</l><block var="filename"/></list></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>Wrong data type!</l><l>write to ...file</l></custom-block></script></block></script><list></list></block></script></block-definition><block-definition s="import %&apos;choice&apos; from %&apos;source&apos; to SciSnap!Data" type="command" category="1. SciSnap! globals"><comment x="0" y="0" w="177.26915922619068" collapsed="false">Imports text, table-CSV-data, costume-data, JSON-data, or FITS-data from current costume, a file or an URL to SciSnap!Data.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">CSV-data<options>TEXT-data&#xD;CSV-data&#xD;RGB-data&#xD;JSON-data&#xD;FITS-data&#xD;TEXT-BLOB&#xD;CSV-BLOB&#xD;JSON-BLOB&#xD;FITS-BLOB</options></input><input type="%s">filepicker<options>current-costume=costume&#xD;filepicker&#xD;URL</options></input></inputs><script><block s="doDeclareVariables"><list><l>data</l><l>properties</l><l>isBLOB?</l><l>posSeparator</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>choice</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="choice"/><l> </l></block></block></block><block s="doSetVar"><l>posSeparator</l><custom-block s="index of %txt in %txt"><l>-</l><block var="choice"/></custom-block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="posSeparator"/><l>1</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong choice-parameter!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doSetVar"><l>isBLOB?</l><block s="reportVariadicEquals"><list><custom-block s="substring of %txt from %n to %n"><block var="choice"/><block s="reportVariadicSum"><list><block var="posSeparator"/><l>1</l></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="choice"/></block></custom-block><l>BLOB</l></list></block></block><block s="doSetVar"><l>choice</l><custom-block s="substring of %txt from %n to %n"><block var="choice"/><l>1</l><block s="reportDifference"><block var="posSeparator"/><l>1</l></block></custom-block></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="source"/><l>filepicker</l></list></block><script><block s="doSetVar"><l>source</l><custom-block s="read %s -file with filepicker"><block var="choice"/></custom-block></block></script><list><block var="isBLOB?"/><script><block s="doSetVar"><l>source</l><custom-block s="read file as BLOB %s"><block var="source"/></custom-block></block></script><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="source"/><l><option>text</option></l></block><block s="reportVariadicNotEquals"><list><block var="source"/><l>costume</l></list></block></list></block><script><block s="doSetVar"><l>source</l><custom-block s="read %txt data from URL %txt"><block var="choice"/><block var="source"/></custom-block></block></script></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="source"/><l>ERROR: oops - something went wrong!</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: opps...something went wrong!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="source"/><l>costume</l></list></block><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="choice"/><l>RGB</l></list></block><block s="reportVariadicEquals"><list><block var="choice"/><l>CSV</l></list></block></list></block></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: invalid combination of parameters!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="source"/><l>costume</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><custom-block s="costume of %s"><l>thisSprite</l></custom-block><l><option>costume</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no costume data available!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><custom-block s="create SciSnap! global variables and properties"></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfData</l><block var="choice"/></custom-block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></block><block s="doSetVar"><l>data</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><block var="value"/><l><option>number</option></l></block></autolambda><list><l>value</l></list></block><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListAttribute"><l><option>flatten</option></l><block var="SciSnap!Data"/></block></block></block></block><custom-block s="set SciSnap! global property %txt to %s"><l>width</l><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>height</l><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>minValue</l><block s="reportListItem"><l>1</l><block var="data"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>maxValue</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><l>4</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></custom-block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>RGB</l></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block><l>dimensions</l><l></l></list></block><block var="SciSnap!Data"/></block></script><list></list></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>TEXT</l></list></block><script><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>text</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: opps...something went wrong!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><custom-block s="create SciSnap! global variables and properties"></custom-block><block s="doSetVar"><l>SciSnap!Data</l><block var="source"/></block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfData</l><l>TEXT</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>width</l><block s="reportTextAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>height</l><l>1</l></custom-block></script></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>JSON</l></list></block><script><block s="doIfElse"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: opps...something went wrong!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><script><custom-block s="create SciSnap! global variables and properties"></custom-block><block s="doSetVar"><l>SciSnap!Data</l><block var="source"/></block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfData</l><l>JSON</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>width</l><block s="reportListItem"><l>2</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="SciSnap!Data"/></block></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>height</l><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="SciSnap!Data"/></block></block></custom-block><block s="doSetVar"><l>data</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><block var="value"/><l><option>number</option></l></block></autolambda><list><l>value</l></list></block><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListAttribute"><l><option>flatten</option></l><block var="SciSnap!Data"/></block></block></block></block><custom-block s="set SciSnap! global property %txt to %s"><l>minValue</l><block s="reportListItem"><l>1</l><block var="data"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>maxValue</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>rows</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></custom-block></script></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="choice"/><l>RGB</l></list></block><block s="reportVariadicEquals"><list><block var="choice"/><l>CSV</l></list></block></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: opps...something went wrong!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>0</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no data found!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="choice"/><l>RGB</l></list></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="source"/></block><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: invalid dimension of data!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicNotEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="source"/></block></block><l>4</l></list></block><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>3</l><block s="reportListItem"><l><option>last</option></l><block var="source"/></block></block><l>dimensions</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: no RGB data found!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><custom-block s="create SciSnap! global variables and properties"></custom-block><block s="doDeleteFromList"><l><option>last</option></l><block var="source"/></block></script><script><custom-block s="create SciSnap! global variables and properties"></custom-block></script></block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfData</l><block var="choice"/></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>height</l><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block></custom-block><block s="doSetVar"><l>SciSnap!Data</l><custom-block s="copy of %s"><block var="source"/></custom-block></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="source"/></block><l>10000</l></list></block><script><block s="doSetVar"><l>data</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><block var="value"/><l><option>number</option></l></block></autolambda><list><l>value</l></list></block><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListAttribute"><l><option>flatten</option></l><block var="source"/></block></block></block></block><custom-block s="set SciSnap! global property %txt to %s"><l>minValue</l><block s="reportListItem"><l>1</l><block var="data"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>maxValue</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>minValue</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>maxValue</l><l>not set</l></custom-block></script></block><block s="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="SciSnap!Data"/></block><l><option>list</option></l></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>width</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="SciSnap!Data"/></block></block></custom-block></script><script><custom-block s="set SciSnap! global property %txt to %s"><l>width</l><l>1</l></custom-block></script></block><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><custom-block s="SciSnap! global property %s"><l>width</l></custom-block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>rows</l><custom-block s="SciSnap! global property %s"><l>height</l></custom-block></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>FITS</l></list></block><script><block s="doWarp"><script><block s="doIfElse"><block s="reportIsA"><block var="source"/><l><option>list</option></l></block><script><custom-block s="create SciSnap! global variables and properties"></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>typeOfData</l><l>FITS</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>header</l><block s="reportListItem"><l>1</l><block var="source"/></block></custom-block><block s="doSetVar"><l>properties</l><block s="reportListItem"><l>2</l><block var="source"/></block></block><custom-block s="set SciSnap! global property %txt to %s"><l>minValue</l><block s="reportListItem"><l>3</l><block var="source"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>maxValue</l><block s="reportListItem"><l>4</l><block var="source"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>sum</l><block s="reportListItem"><l>5</l><block var="source"/></block></custom-block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportListItem"><l>6</l><block var="source"/></block></block><custom-block s="set SciSnap! global property %txt to %s"><l>currentFilename</l><block s="reportListItem"><l>7</l><block var="source"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>width</l><block s="reportListItem"><l>NAXIS1</l><block s="reportListItem"><l>2</l><block var="source"/></block></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>height</l><block s="reportListItem"><l>NAXIS2</l><block s="reportListItem"><l>2</l><block var="source"/></block></block></custom-block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block><l>0</l></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><l>mean</l><block s="reportQuotient"><block s="reportListItem"><l>5</l><block var="source"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>stddev</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportApplyExtension"><l>SciS_variance(data,mean)</l><list><block var="SciSnap!Data"/><block s="reportQuotient"><block s="reportListItem"><l>5</l><block var="source"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></block></list></block></block></custom-block></script><list><l><bool>true</bool></l><script><custom-block s="set SciSnap! global property %txt to %s"><l>mean</l><l>not set</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>stddev</l><l>not set</l></custom-block></script></list></block><custom-block s="set SciSnap! global property %txt to %s"><l>rows</l><block s="reportListAttribute"><l><option>length</option></l><block var="SciSnap!Data"/></block></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>columns</l><l>1</l></custom-block><custom-block s="set SciSnap! global property %txt to %s"><l>times</l><l>1</l></custom-block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="properties"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="properties"/></block></block><l></l></list></block></list></block><script><custom-block s="set SciSnap! global property %txt to %s"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="properties"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="properties"/></block></block></custom-block><block s="doDeleteFromList"><l>1</l><block var="properties"/></block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: opps...something went wrong!</l><l>import ... to SciSnap!Data</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block></script><list></list></block></script></block-definition><block-definition s="report SciSnap! error %&apos;errortext&apos; $nl from %&apos;sender&apos; and stop all scripts" type="command" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="152.16666666666669" collapsed="false">Adds a new entry to SciSnap!Messages, shows the error message, and stopps all.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">something wrong!</input><input type="%txt">thisBlock</input></inputs><script><block s="doWarp"><script><block s="doSetVar"><l>sender</l><block s="reportJoinWords"><list><l>&lt;</l><block var="sender"/><custom-block s="translate %txt"><l>&gt; signals: </l></custom-block></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="errortext"/></block><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sender"/></block><l>6</l></list></block></list></block><script><block s="doSetVar"><l>errortext</l><block s="reportJoinWords"><list><l> </l><block var="errortext"/><l> </l></list></block></block></script></block><block s="doAddToList"><block s="reportJoinWords"><list><block var="sender"/><custom-block s="translate %txt"><block var="errortext"/></custom-block></list></block><block var="SciSnap!Messages"/></block><custom-block s="show global message title: %txt %br message: %txt"><block var="sender"/><custom-block s="translate %txt"><block var="errortext"/></custom-block></custom-block><block s="doStopThis"><l><option>all</option></l></block></script></block></script></block-definition><block-definition s="INFO &quot;GraphPad&quot; for dealing with graphs" type="command" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "GraphPad"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks for using any sprite or the stage as a sketch pad for displaying graphs,&#xD;i.e. systems made up of vertices ("nodes") and edges.&#xD;The graphs can be directed or undirected, provided with weights and arranged in a targeted or random manner.&#xD;Some standard procedures such as depth first or width first search etc. are implemented.&#xD;The properties of the "pad" used are initially set to default values, which can be changed using the corresponding blocks.&#xD;Some examples explain how the blocks can be used.</l></custom-block></custom-block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as a GraphPad width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;Color&apos; with close-button? %&apos;withCloseButton?&apos; left? %&apos;left?&apos; size: %&apos;closeButtonSize&apos;" type="command" category="7. GraphPad for graph operations" space="true"><comment x="0" y="0" w="160.16666666666674" collapsed="false">Creates a new  empty costume of the specified size and color and sets local properties. </comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%s" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%b">false</input><input type="%b">true</input><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l><l>oldStageCostume</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doIfElse"><block s="reportIsA"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><l><option>costume</option></l></block><script><block s="doSetVar"><l>oldStageCostume</l><custom-block s="copy of costume %s"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block></block></script><script><block s="doSetVar"><l>oldStageCostume</l><l>null</l></block></script></block></script><list></list></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><l>lightGray</l><block var="withCloseButton?"/><block var="left?"/><block var="closeButtonSize"/></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>adjacencyMatrix</l><l>vertexList</l></list></custom-block></script><list></list></block><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSetVar"><l>adjacencyMatrix</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>vertexList</l><block s="reportNewList"><list></list></block></block></script><list></list></block><list></list></block><block s="doReplaceInList"><l>typeOfConfiguration</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><l>GraphPad</l></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>none</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xLeft</l><l>1</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>xRight</l><block var="width"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yUpper</l><l>1</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>yLower</l><block var="height"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>verticesMinRadius</l><l>3</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>verticesGrowing</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>verticesContentShown</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>edgesDirected</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>edgesWithWeights</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>edgesShowWeights</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>initialCostume</l><l>null</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doIf"><block s="reportIsA"><block var="oldStageCostume"/><l><option>costume</option></l></block><script><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block var="oldStageCostume"/></list></block></script><list><l><bool>true</bool></l><script><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>fillColor</l><l>theStage</l><custom-block s="%s as %txt"><block var="Color"/><l>RGB-value</l></custom-block></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>fill</l><list><block s="reportListItem"><l>1</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block></list><list><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block><block var="width"/></list></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block><block var="height"/></list></block></list><l>theStage</l><l><bool>false</bool></l></custom-block></script></list></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>lineColor</l><l>theStage</l><custom-block s="%s as %txt"><l>black</l><l>RGB-value</l></custom-block></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>draw</l><list><block s="reportListItem"><l>1</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block></list><list><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block><block var="width"/></list></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><l>theStage</l></custom-block></block><block var="height"/></list></block></list><l>theStage</l><l><bool>false</bool></l></custom-block></script><list><l><bool>true</bool></l><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><block var="width"/><block var="height"/><block var="Color"/></custom-block></list></block><custom-block s="set SketchPadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><custom-block s="%s as %txt"><l>black</l><l>RGB-value</l></custom-block></custom-block><custom-block s="%txt rectangle from: %mult%s to: %mult%s on %txt %br using Snap! coordinates? %b"><l>draw</l><list><l>0</l><l>0</l></list><list><block var="width"/><block var="height"/></list><block var="target"/><l><bool>false</bool></l></custom-block></script></list></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>initialCostume</l><block var="target"/><custom-block s="copy of costume %s"><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></custom-block></custom-block></script></block></script><scripts><comment x="481.8333333333333" y="90.50000000000057" w="307.1666666666667" collapsed="false">Costume attributes and line attributes same as SketchPad.&#xD;&#xD;other attributes:&#xD;initial costume, maybe a map&#xD;vertex ranges for random coordinates&#xD;xLeft&#xD;xRight&#xD;yUpper&#xD;yLower&#xD;&#xD;vertex properties:&#xD;minimal radius of a vertex (should be changed if vertices &#xD;are not growing with number of edges) = verticesMinRadius&#xD;vertices grow with number of connected edges =  verticesGrowing&#xD;vertex content is shown (If there is no content the vertex number is shown) = verticesContentShown&#xD;&#xD;edge properties:&#xD;edge width=lineWidth&#xD;edge style=lineStyle&#xD;edge color=lineColor&#xD;fill color=fillColor&#xD;edges are directed=edgesDirected&#xD;edges have weights=edgesWithWeights&#xD;edges show weights=edgesShowWeights</comment></scripts></block-definition><block-definition s="is %&apos;sprite&apos; a GraphPad?" type="predicate" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>GraphPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><script><block s="doReport"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>GraphPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>GraphPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="set GraphPadProperty %&apos;key&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="128" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;initial costume=initialCostume&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;ranges for vertices={&#xD;x left=xLeft&#xD;x right=xRight&#xD;y lower=yLower&#xD;y upper=yUpper&#xD;}&#xD;vertex properties={&#xD;minimal radius=verticesMinRadius&#xD;vertices can grow=verticesGrowing&#xD;vertices show content=verticesContentShown&#xD;}&#xD;edge properties={&#xD;edge width=lineWidth&#xD;edge style=lineStyle&#xD;edge color=lineColor&#xD;fill color=fillColor&#xD;edges are directed=edgesDirected&#xD;edges have weights=edgesWithWeights&#xD;edges show weights=edgesShowWeights&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>set GraphPadProperty</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="value"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Missing variable "myProperties"!</l><l>set GraphPadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="GraphPadProperty %&apos;key&apos; of %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="95" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;initial costume=initialCostume&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;ranges for vertices={&#xD;x left=xLeft&#xD;x right=xRight&#xD;y lower=yLower&#xD;y upper=yUpper&#xD;}&#xD;vertex properties={&#xD;minimal radius=verticesMinRadius&#xD;vertices can grow=verticesGrowing&#xD;vertices show content=verticesContentShown&#xD;}&#xD;edge properties={&#xD;edge width=lineWidth&#xD;edge style=lineStyle&#xD;edge color=lineColor&#xD;fill color=fillColor&#xD;edges are directed=edgesDirected&#xD;edges have weights=edgesWithWeights&#xD;edges show weights=edgesShowWeights&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>GraphPadProperty of ...</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing variable myProperties!</l><l>GraphPadProperty of ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set GraphPad costume properties width: %&apos;width&apos; height: %&apos;height&apos; $nl back color: %&apos;color&apos; on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="119.32706197102902" collapsed="false">a simple way to set some costume attributes.&#xD;1: width&#xD;2: height&#xD;3: back color </comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>set GraphPad costume properties</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></custom-block></script><script><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block var="height"/></custom-block></script></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>backColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><custom-block s="GraphPadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><custom-block s="GraphPadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><custom-block s="GraphPadProperty %txt of %txt"><l>backColor</l><block var="target"/></custom-block></custom-block></block></script><list></list></block><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>xLeft</l><block var="target"/><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.1</l><block var="width"/></list></block></block></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>xRight</l><block var="target"/><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.9</l><block var="width"/></list></block></block></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>yLower</l><block var="target"/><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.9</l><block var="height"/></list></block></block></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>yUpper</l><block var="target"/><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.1</l><block var="height"/></list></block></block></custom-block></script></block></script></block-definition><block-definition s="set GraphPad vertex properties minSize: %&apos;minSize&apos; $nl growing? %&apos;isGrowing&apos; showsContent? %&apos;showsContent&apos; on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="197.2010396321616" collapsed="false">a simple way to set some vertex attributes:&#xD;1: ranges for random coordinates&#xD;    (xLeft,xRight, yUpper,yLower)&#xD;2: minimal radius of a vertex, should be&#xD;    changed is vertices are not growing&#xD;    with number of edges&#xD;3: boolean: vertices grow with number&#xD;    of connected edges&#xD;4: boolean: vertex content is shown. &#xD;    If there is no content, the vertex&#xD;    number is shown</comment><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%b">true</input><input type="%b">false</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>set GraphPad vertex properties</l></custom-block></script><list></list></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>verticesMinRadius</l><block var="target"/><block var="minSize"/></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>verticesGrowing</l><block var="target"/><block var="isGrowing"/></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>verticesContentShown</l><block var="target"/><block var="showsContent"/></custom-block></script></block></script></block-definition><block-definition s="set GraphPad edge properties lineWidth: %&apos;lineWidth&apos; $nl color: %&apos;color&apos; directed? %&apos;isDirected&apos; weighted? %&apos;withWeights&apos; $nl showsWeight? %&apos;showWeight&apos; on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="130.32706197102902" collapsed="false">a simple way to set some edge attributes:&#xD;1: line width&#xD;2: line color &#xD;3: boolean: edge is directed&#xD;4: boolean: edge has a weight&#xD;5: boolean: edge shows&#xD;    weight</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%mult%s"></input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>set GraphPad edge properties</l></custom-block></script><list></list></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>lineWidth</l><block var="target"/><block var="lineWidth"/></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>edgesDirected</l><block var="target"/><block var="isDirected"/></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>edgesWithWeights</l><block var="target"/><block var="withWeights"/></custom-block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>edgesShowWeights</l><block var="target"/><block var="showWeight"/></custom-block></script></block></script></block-definition><block-definition s="new vertex at %&apos;position&apos; content: %&apos;value&apos; on graph of %&apos;sprite&apos; $nl using Snap! coordinates? %&apos;snap!Coordinates&apos;" type="command" category="7. GraphPad for graph operations" space="true"><comment x="0" y="0" w="227.99999999999997" collapsed="false">adds a vertex at position. Snap!coordinates means: zero is in the middle of the graph</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%s"></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>offsets</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>new vertex at ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>offsets</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><block var="target"/></custom-block></block><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>position</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></block><block s="reportListItem"><l>1</l><block var="offsets"/></block></block><block s="reportDifference"><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block><block s="reportListItem"><l>2</l><block var="position"/></block></block><block s="reportListItem"><l>2</l><block var="offsets"/></block></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>1</l><block var="position"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>xLeft</l><block var="target"/></custom-block></list></block><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>2</l><block var="position"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>yUpper</l><block var="target"/></custom-block></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="position"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>xRight</l><block var="target"/></custom-block></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="position"/></block><custom-block s="GraphPadProperty %txt of %txt"><l>yLower</l><block var="target"/></custom-block></list></block></list></block><script><block s="doSetVar"><l>dummy</l><block s="reportApplyExtension"><l>SciS_addVerticesToGraph(n,amatrix,vlist,properties,point)</l><list><l>1</l><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="position"/></list></block></block></script><list></list></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><l><option>last</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block var="value"/></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="add %&apos;n&apos; random vertices to graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="214.16666666666686" collapsed="false">adds n vertices to the vertexList of a GraphPad:&#xD;Vertex attributes have the following order:&#xD;1: x&#xD;2: y&#xD;3: size&#xD;4: content&#xD;5: isMarked&#xD;6: colorNr&#xD;7: numberOfLinks&#xD;&#xD;parameter &apos;null&apos; means &apos;random vertices&apos;</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>dummy</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>add ... random vertices to graph</l></custom-block></script><list></list></block><block s="doSetVar"><l>dummy</l><block s="reportApplyExtension"><l>SciS_addVerticesToGraph(n,amatrix,vlist,properties,point)</l><list><block var="n"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><l>null</l></list></block></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="move vertex %&apos;n&apos; of graph on %&apos;sprite&apos; to %&apos;position&apos; $nl using Snap! coordinates? %&apos;snap!Coordinates&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Moves a vertex to another position measured in Snap! sprite-coordinates</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%mult%s">100</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>offsets</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>move vertex ... of graph</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block><script><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doSetVar"><l>offsets</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><block var="target"/></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>position</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></block><block s="reportListItem"><l>1</l><block var="offsets"/></block></block><block s="reportDifference"><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block><block s="reportListItem"><l>2</l><block var="position"/></block></block><block s="reportListItem"><l>2</l><block var="offsets"/></block></block></list></block></block></script><list></list></block><block s="doReplaceInList"><l>1</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportListItem"><l>1</l><block var="position"/></block></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportListItem"><l>2</l><block var="position"/></block></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>move vertex ... of graph</l></custom-block></script></block></script></block></script></block-definition><block-definition s="add edge from vertex %&apos;v1&apos; to vertex %&apos;v2&apos; to graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations" space="true"><comment x="0" y="0" w="107.5" collapsed="false">Creates a new edge between two vertices.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l><l>weight</l><l>e</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>add edge from vertex ... to vertex ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v1"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v2"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block></list></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIfElse"><custom-block s="GraphPadProperty %txt of %txt"><l>edgesWithWeights</l><block var="target"/></custom-block><script><block s="doSetVar"><l>weight</l><block s="reportRound"><block s="reportQuotient"><custom-block s="Euclidean distance between %br point %mult%s and point %mult%s"><list><block s="reportListItem"><l>1</l><block var="vertex1"/></block><block s="reportListItem"><l>2</l><block var="vertex1"/></block></list><list><block s="reportListItem"><l>1</l><block var="vertex2"/></block><block s="reportListItem"><l>2</l><block var="vertex2"/></block></list></custom-block><l>10</l></block></block></block></script><script><block s="doSetVar"><l>weight</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></list></block><script><block s="doReplaceInList"><l>7</l><block var="vertex1"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>7</l><block var="vertex1"/></block><l>1</l></list></block></block><block s="doReplaceInList"><l>6</l><block var="vertex2"/><block s="reportListItem"><l>6</l><block var="vertex1"/></block></block><block s="doReplaceInList"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></list></block><block s="reportNot"><custom-block s="GraphPadProperty %txt of %txt"><l>edgesDirected</l><block var="target"/></custom-block></block></list></block><script><block s="doReplaceInList"><l>7</l><block var="vertex2"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>7</l><block var="vertex2"/></block><l>1</l></list></block></block><block s="doReplaceInList"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block></script><list></list></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>add edge from vertex ... to vertex ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="add %&apos;n&apos; random edges to graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="150" collapsed="false">Creates n new edges randomly.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>result</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>add ... random edges to graph</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>SciS_addRandomEdgesToGraph(amatrix,n,properties,vlist)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block var="n"/><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></list></block></block><custom-block s="set %txt of %txt to %s"><l>adjacencyMatrix</l><block var="target"/><block s="reportListItem"><l>1</l><block var="result"/></block></custom-block><custom-block s="set %txt of %txt to %s"><l>vertexList</l><block var="target"/><block s="reportListItem"><l>2</l><block var="result"/></block></custom-block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="draw graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations" space="true"><comment x="0" y="0" w="155" collapsed="false">draws the graph on a GraphPad.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>initialCostume</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>draw graph on GraphPad</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><custom-block s="GraphPadProperty %txt of %txt"><l>initialCostume</l><block var="target"/></custom-block><l><option>costume</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target has no property &apos;initialCostume&apos;!</l><l>draw graph on GraphPad</l></custom-block></script><list></list></block><block s="doSetVar"><l>initialCostume</l><custom-block s="copy of costume %s"><custom-block s="GraphPadProperty %txt of %txt"><l>initialCostume</l><block var="target"/></custom-block></custom-block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="GraphPadProperty %txt of %txt"><l>initialCostume</l><block var="target"/></custom-block></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_drawGraphOnGraphPad(amatrix,vlist,properties)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></list></block></list></block><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>initialCostume</l><block var="target"/><block var="initialCostume"/></custom-block></script></block></script></block-definition><block-definition s="delete vertex %&apos;n&apos; of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations" space="true"><comment x="0" y="0" w="90" collapsed="false">Deletes a vertex.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>delete vertex ... of graph</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><l>1</l></list></block><script><custom-block s="set %txt of %txt to %s"><l>vertexList</l><block var="target"/><block s="reportNewList"><list></list></block></custom-block><custom-block s="set %txt of %txt to %s"><l>adjacencyMatrix</l><block var="target"/><block s="reportNewList"><list></list></block></custom-block></script><script><block s="doDeleteFromList"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="doDeleteFromList"><block var="n"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block s="doForEach"><l>item</l><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><script><block s="doDeleteFromList"><block var="n"/><block var="item"/></block></script></block></script></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="delete edge from vertex %&apos;v1&apos; to vertex %&apos;v2&apos; $nl of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="90" collapsed="false">Deletes an edge.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>delete edge from vertex ... to vertex ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v1"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v2"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block></list></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>0</l></list></block><script><block s="doReplaceInList"><l>7</l><block var="vertex1"/><block s="reportDifference"><block s="reportListItem"><l>7</l><block var="vertex1"/></block><l>1</l></block></block><block s="doReplaceInList"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><l>X</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>0</l></list></block><block s="reportNot"><custom-block s="GraphPadProperty %txt of %txt"><l>edgesDirected</l><block var="target"/></custom-block></block></list></block><script><block s="doReplaceInList"><l>7</l><block var="vertex2"/><block s="reportDifference"><block s="reportListItem"><l>7</l><block var="vertex2"/></block><l>1</l></block></block><block s="doReplaceInList"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><l>X</l></block></script><list></list></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>delete edge from vertex ... to vertex ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="weight of edge from vertex %&apos;v1&apos; to vertex %&apos;v2&apos; $nl of graph on %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%s">2</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>weight of edge ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v1"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v2"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block></list></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIfElse"><custom-block s="GraphPadProperty %txt of %txt"><l>edgesWithWeights</l><block var="target"/></custom-block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></list></block><script><block s="doReport"><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: there is no connection between these vertices!</l><l>weight of edge ...</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: in this Graph edges have no weights!</l><l>weight of edge ...</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>weight of edge ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="change weight of edge from vertex %&apos;v1&apos; to vertex %&apos;v2&apos; $nl to %&apos;weight&apos; of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="132.5" collapsed="false">Sets the weight of an edge.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>change weight of edge ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v1"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v2"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block></list></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doIfElse"><custom-block s="GraphPadProperty %txt of %txt"><l>edgesWithWeights</l><block var="target"/></custom-block><script><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block s="reportListItem"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></list></block><script><block s="doReplaceInList"><block var="v2"/><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicNotEquals"><list><block s="reportListItem"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block></block><l>X</l></list></block><block s="reportNot"><custom-block s="GraphPadProperty %txt of %txt"><l>edgesDirected</l><block var="target"/></custom-block></block></list></block><script><block s="doReplaceInList"><block var="v1"/><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block></block><block var="weight"/></block></script><list></list></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: there is no connection between these vertices!</l><l>change weight of edge ...</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: in this Graph edges have no weights!</l><l>change weight of edge ...</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>change weight of edge ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="ask for new weight of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations" space="true"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>n1</l><l>n2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>ask for new weight of graph ...</l></custom-block></script><list></list></block><block s="doAsk"><l>from vertex nr</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doSetVar"><l>n1</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>to vertex nr</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doSetVar"><l>n2</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>new weight</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><custom-block s="change weight of edge from vertex %n to vertex %n %br to %n of graph on %txt"><block var="n1"/><block var="n2"/><block s="getLastAnswer"></block><block var="target"/></custom-block></script><list></list></block></script><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="ask for new start vertex width of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="142.5" collapsed="false">Input for start vertex.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>aske for new start vertex width</l></custom-block></script><list></list></block><block s="doAsk"><l>new start vertexwidth (1....20)</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block s="getLastAnswer"></block><l>0</l></list></block><block s="reportVariadicLessThan"><list><block s="getLastAnswer"></block><l>21</l></list></block></list></block><script><custom-block s="set GraphPadProperty %txt of %txt to %s"><l>verticesMinRadius</l><block var="target"/><block s="getLastAnswer"></block></custom-block></script><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="content of vertex %&apos;n&apos; of graph on %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>content of vertex ..-. of graph</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>content of vertex ..-. of graph</l></custom-block></script></block></script></block></script></block-definition><block-definition s="change content of vertex %&apos;n1&apos; to %&apos;value&apos; of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="133.33333333333334" collapsed="false">Sets the content of a vertex.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>change content of vertex ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="n1"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="n1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doSetVar"><l>vertex</l><block s="reportListItem"><block var="n1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><block var="n1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block var="value"/></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>change content of vertex ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="ask for new vertex content in graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="145" collapsed="false">Input for a new vertex content.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>nr</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>ask for new vertex content</l></custom-block></script><list></list></block><block s="doAsk"><l>vertex number</l></block><block s="doIf"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doSetVar"><l>nr</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>new value</l></block><custom-block s="change content of vertex %n to %txt of graph on %txt"><block var="nr"/><block s="getLastAnswer"></block><block var="target"/></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="set marker of vertex %&apos;n&apos; of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="131.5491383870445" collapsed="false">Tells a vertex to be marked.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>set marker of vertex ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="remove marker of vertex %&apos;n&apos; of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="94.04913838704452" collapsed="false">Deletes a marker.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>remove marker of vertex</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="n"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="n"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="n"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script><list></list></block></script></block></script></block-definition><block-definition s="remove all markers of graph on %&apos;sprite&apos;" type="command" category="7. GraphPad for graph operations"><comment x="0" y="0" w="94.04913838704452" collapsed="false">Deletes all markers.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad</l><l>remove all markers of graph</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doForEach"><l>item</l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><script><block s="doReplaceInList"><l>5</l><block var="item"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><custom-block s="draw graph on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="depth first search of content %&apos;cont&apos; $nl starting at vertex %&apos;nr&apos; of graph on %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations" space="true"><comment x="0" y="0" w="132.5" collapsed="false">Depth first search in a graph.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>depth first search ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="nr"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="nr"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_depthFirstSearch(amatrix,vlist,cont,n)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block var="cont"/><block var="nr"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>depth first search ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="breadth first search of content %&apos;cont&apos; $nl starting at vertex %&apos;nr&apos; of graph on %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="146.66666666666669" collapsed="false">Breadth first search in a graph.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>nextVertices</l><l>vertexNr</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>breadth first search</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="nr"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="nr"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_breadthFirstSearch(amatrix,vlist,cont,n)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block var="cont"/><block var="nr"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>breadth first search</l></custom-block></script></block></script></block></script></block-definition><block-definition s="distance on %&apos;sprite&apos; from vertex %&apos;v1&apos; to vertex %&apos;v2&apos;" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="111.6666666666667" collapsed="false">Reports the Euclidean distance of two vertices.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">1</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>vertex1</l><l>vertex2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>distance on ... from ... to ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v1"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v1"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="v2"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="v2"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block></list></block><script><block s="doSetVar"><l>vertex1</l><block s="reportListItem"><block var="v1"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doSetVar"><l>vertex2</l><block s="reportListItem"><block var="v2"/><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></block><block s="doReport"><block s="reportRound"><block s="reportQuotient"><custom-block s="Euclidean distance between %br point %mult%s and point %mult%s"><list><block s="reportListItem"><l>1</l><block var="vertex1"/></block><block s="reportListItem"><l>2</l><block var="vertex1"/></block></list><list><block s="reportListItem"><l>1</l><block var="vertex2"/></block><block s="reportListItem"><l>2</l><block var="vertex2"/></block></list></custom-block><l>10</l></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>distance on ... from ... to ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="shortest path in graph from vertex %&apos;startVertex&apos; $nl to vertex %&apos;endVertex&apos; on %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="147.8313293457031" collapsed="false">Shortes path between two vertices, using Dijkstra-method.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">2</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>shortest path on graph</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="startVertex"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="startVertex"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="endVertex"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="endVertex"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_shortestPath(amatrix,start,end)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block var="startVertex"/><block var="endVertex"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>shortest path on graph</l></custom-block></script></block></script></block></script></block-definition><block-definition s="list of all shortest paths in graph from vertex %&apos;startVertex&apos; $nl to all connected vertices of graph on %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="195.11549479166646" collapsed="false">Shortes paths between startVertex and all connected vertices, using Dijkstra-method.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>list of all shortest paths</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="startVertex"/><l>0</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="startVertex"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block></block></list></block></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_allShortestPaths(amatrix,start)</l><list><block s="reportAttributeOf"><l>adjacencyMatrix</l><block var="target"/></block><block var="startVertex"/></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: index out of range!</l><l>list of all shortest paths</l></custom-block></script></block></script></block></script></block-definition><block-definition s="vertexnumber at %&apos;position&apos; of graph on %&apos;sprite&apos; $nl using Snap! coordinates? %&apos;snap!Coordinates&apos;" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="155" collapsed="false">Returns the vertexnumber of a vertex near (x|y), if there is one.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>offsets</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>vertexnumber at ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doSetVar"><l>offsets</l><custom-block s="GraphPadProperty %txt of %txt"><l>offsets</l><block var="target"/></custom-block></block><block s="doIf"><block var="snap!Coordinates"/><script><block s="doSetVar"><l>position</l><block s="reportNewList"><list><block s="reportDifference"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></block><block s="reportListItem"><l>1</l><block var="offsets"/></block></block><block s="reportDifference"><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block><block s="reportListItem"><l>2</l><block var="position"/></block></block><block s="reportListItem"><l>2</l><block var="offsets"/></block></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_vertexnumberAtGraph(vlist,properties,position)</l><list><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="position"/></list></block></block></script></block></script></block-definition><block-definition s="vertexnumber of %&apos;content&apos; in graph of %&apos;sprite&apos;" type="reporter" category="7. GraphPad for graph operations"><comment x="0" y="0" w="150.83333333333334" collapsed="false">Reports the vertexnumber of the vertex with the specified content. If not found then reports 0.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Peter</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>nr</l><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GraphPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GraphPad!</l><l>vertexnumber with content ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>nr</l><l>0</l></block><block s="doForEach"><l>item</l><block s="reportAttributeOf"><l>vertexList</l><block var="target"/></block><script><block s="doChangeVar"><l>nr</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><block var="item"/></block><block var="content"/></list></block><script><block s="doReport"><block var="nr"/></block></script><list></list></block></script></block><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="Graph Example: small worlds (needs some seconds)" type="command" category="7. GraphPad for graph operations" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as a GraphPad width: %n height: %n %br color: %s with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>true</bool></l><l></l></custom-block><block s="bubble"><l>mean distance between the nodes: ...</l></block><block s="doRepeat"><l>100</l><script><custom-block s="add %n random vertices to graph on %txt"><l>1</l><l>thisSprite</l></custom-block><custom-block s="add %n random edges to graph on %txt"><l>1</l><l>thisSprite</l></custom-block></script></block><block s="bubble"><custom-block s="round %n to %n digits"><custom-block s="%s of %s"><l>mean</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%s of %s"><l>mean</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>2</l><custom-block s="list of all shortest paths in graph from vertex %n %br to all connected vertices of graph on %txt"><l></l><l>thisSprite</l></custom-block><l><bool>true</bool></l></custom-block></custom-block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="vertexList"/></block></block></block></custom-block><l>2</l></custom-block></block></script></block-definition><block-definition s="Graph Example: distribution of links" type="command" category="7. GraphPad for graph operations"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>diagramSprite</l></list></block><block s="bubble"><l></l></block><custom-block s="configure %s as a GraphPad width: %n height: %n %br color: %s with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>true</bool></l><l></l></custom-block><custom-block s="add %n random vertices to graph on %txt"><l>100</l><l>thisSprite</l></custom-block><custom-block s="add %n random edges to graph on %txt"><l>100</l><l>thisSprite</l></custom-block><block s="doSetVar"><l>SciSnap!Data</l><block s="reportMap"><block s="reifyReporter"><script><block s="doIfElse"><block s="reportIsA"><l></l><l><option>number</option></l></block><script><block s="doReport"><l></l></block></script><script><block s="doReport"><l>0</l></block></script></block></script><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%s of %s"><l>number</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l>X</l></list></block></autolambda><list></list></block><l/></block></custom-block></autolambda><list></list></block><block var="adjacencyMatrix"/></block></block></block><block s="doSetVar"><l>diagramSprite</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>duplicate</l><block s="reportGet"><l><option>self</option></l></block><l>DiagramSprite</l></custom-block></block><custom-block s="configure %txt as a PlotPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>DiagramSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>true</bool></l><l>15</l></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>DiagramSprite</l><l>Edges per Node</l><l>18</l><l>Number of Edges</l><l>16</l><l>Number of Vertices</l><l>16</l></custom-block><custom-block s="add histogram of %s with %n groups %br to PlotPad %txt y-axis starting with 0? %b"><block var="SciSnap!Data"/><l>6</l><l>DiagramSprite</l><l><bool>true</bool></l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>DiagramSprite</l></custom-block></script></block-definition><block-definition s="INFO &quot;NNPad&quot; for dealing with Neural Nets" type="command" category="8. NNPad for neural networks"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "NNPad for Neural Net operations"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks for using any sprite or the stage as a sketch pad for displaying neural networks.&#xD;These consist of fully connected layers of perceptrons. The width and depth of the network can be set.&#xD;The backpropagation method is used as the learning method.&#xD;The weights in the networks are indicated by coloring of the edges: positive values appear green, negative values red.&#xD;Values close to zero are shown in gray. These colorings can be used to see how and what a network learns.&#xD;The properties of the "pad" used are initially set to default values, which can be changed using the corresponding blocks.&#xD;Some examples explain how the blocks are used.</l></custom-block></custom-block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as a NeuralNetPad width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; with close-button? %&apos;withCloseButton?&apos; left? %&apos;left?&apos; size: %&apos;closeButtonSize&apos;" type="command" category="8. NNPad for neural networks" space="true"><comment x="0" y="0" w="178.33333333333334" collapsed="false">Creates a new  empty costume of the specified size and color ans sets local properties for a NeuralNet.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%s" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%b">false</input><input type="%b">false</input><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><block var="color"/><block var="withCloseButton?"/><block var="left?"/><block var="closeButtonSize"/></custom-block><block s="doReplaceInList"><l>typeOfConfiguration</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><l>NNPad</l></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>weights</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>numberOfLayers</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>layerWidth</l><l>0</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>netWidth</l><block var="width"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>netHeight</l><block var="height"/></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>inputs</l><block s="reportNewList"><list></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></script></block></script><scripts><comment x="462.61067708333366" y="113.30555555555561" w="192.5" collapsed="false">costume properties:&#xD;1: width&#xD;2: height&#xD;3: back color red&#xD;4: back color green&#xD;5: back color blue&#xD;6: left offset for NN position on stage&#xD;7: upper offset for NN position on stage&#xD;&#xD;neural net properties:&#xD;1: number of layers&#xD;2: layer width&#xD;3: width of NN&#xD;4: height of NN</comment></scripts></block-definition><block-definition s="is %&apos;sprite&apos; a NNPad?" type="predicate" category="8. NNPad for neural networks"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>NNPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><script><block s="doReport"><block s="reportAskFor"><l>Stage</l><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>NNPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>NNPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="set NNPadProperty %&apos;key&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="131.66666666666669" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">numberOfLayers<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;net properties={&#xD;number of layers=numberOfLayers&#xD;layer width=layerWidth&#xD;net width=netWidth&#xD;net height=netHeight&#xD;input list=inputs&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as NNPad</l><l>set NNPadProperty</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="value"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Missing variable "myProperties"!</l><l>set NNPadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="NNPadProperty %&apos;key&apos; of %&apos;sprite&apos;" type="reporter" category="8. NNPad for neural networks"><comment x="0" y="0" w="92.5" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">numberOfLayers<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;net properties={&#xD;number of layers=numberOfLayers&#xD;layer width=layerWidth&#xD;net width=netWidth&#xD;net height=netHeight&#xD;input list=inputs&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as NNPad</l><l>set NNPadProperty</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Missing variable "myProperties"!</l><l>set NNPadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set NNPad costume properties width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; offsets: %&apos;offsets&apos; on %&apos;sprite&apos;" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="209.18420482817183" collapsed="false">a simple way to set some costume attributes:&#xD;1: width&#xD;2: height&#xD;3: back color &#xD;4: offsets for NN position on stage</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%mult%s"></input><input type="%mult%n"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as NNPad</l><l>set NNPad costume properties</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><custom-block s="set NNPadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="offsets"/></custom-block></custom-block></script><script><custom-block s="set NNPadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block var="height"/></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><l>0</l><l>0</l></list></block></custom-block></script></block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>netWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>netHeight</l><block var="target"/><block var="height"/></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><l>0</l><l>0</l></list></block></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>backColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><custom-block s="NNPadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><custom-block s="NNPadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><custom-block s="NNPadProperty %txt of %txt"><l>backColor</l><block var="target"/></custom-block></custom-block></block></script><list></list></block><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="set NNPad net properties numberOfLayers: %&apos;layers&apos; layerWidth: %&apos;layerWidth&apos; $nl on %&apos;sprite&apos;" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="196.82706197102902" collapsed="false">a simple way to set net attributes:&#xD;1: number of layers&#xD;2: layer width</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as NNPad</l><l>setNNPad net properties</l></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>numberOfLayers</l><block var="target"/><block var="layers"/></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>layerWidth</l><block var="target"/><block var="layerWidth"/></custom-block></script></block></script></block-definition><block-definition s="NN add new weights for %&apos;depth&apos; layers of width %&apos;width&apos; on %&apos;sprite&apos;" type="command" category="8. NNPad for neural networks" space="true"><comment x="0" y="0" w="146.4285714285717" collapsed="false">Creates a fully connected neural network of perceptrons. Inputs should be connected to layer 1, outputs to last layer.</comment><header></header><code></code><translations></translations><inputs><input type="%n">2</input><input type="%n">3</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>row</l><l>matrix</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as NNPad</l><l>NN add new weights</l></custom-block></script><list></list></block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><block s="reportNewList"><list></list></block></custom-block><block s="doRepeat"><block var="depth"><comment w="115.85714185714295" collapsed="false">one matrix for each layer</comment></block><script><block s="doSetVar"><l>matrix</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="width"/><script><block s="doSetVar"><l>row</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>j</l><l>1</l><block var="width"/><script><block s="doAddToList"><custom-block s="random"></custom-block><block var="row"/></block></script></block><block s="doAddToList"><l>1</l><block var="row"/></block><block s="doAddToList"><block var="row"/><block var="matrix"/></block></script></block><block s="doAddToList"><block var="matrix"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script></block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>numberOfLayers</l><block var="target"/><block var="depth"/></custom-block><custom-block s="set NNPadProperty %txt of %txt to %s"><l>layerWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="NN show status on %txt"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="NN output of %&apos;n&apos; layer on %&apos;sprite&apos;" type="reporter" category="8. NNPad for neural networks"><comment x="0" y="0" w="173.33333333333334" collapsed="false">Reports the output of the nth layer of a neural network with given input.</comment><header></header><code></code><translations></translations><inputs><input type="%s">last<options>1&#xD;last</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>input</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite isn&apos;t configured as NNPad!</l><l>NN output</l></custom-block></script><list></list></block><block s="doSetVar"><l>input</l><custom-block s="NNPadProperty %txt of %txt"><l>inputs</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block><l>0</l></list></block><script><custom-block s="set NNPadProperty %txt of %txt to %s"><l>inputs</l><block var="target"/><block s="reportNumbers"><l>1</l><custom-block s="NNPadProperty %txt of %txt"><l>layerWidth</l><block var="target"/></custom-block></block></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="input"/><l>vector</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong data format, numerical input required!</l><l>NN output</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><custom-block s="NNPadProperty %txt of %txt"><l>layerWidth</l><block var="target"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: the input should match the net width!</l><l>NN output</l></custom-block></script><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_NNoutput(weights,width,depth,n,input)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><custom-block s="NNPadProperty %txt of %txt"><l>layerWidth</l><block var="target"/></custom-block><custom-block s="NNPadProperty %txt of %txt"><l>numberOfLayers</l><block var="target"/></custom-block><block var="n"/><block var="input"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="NN show status on %&apos;sprite&apos;" type="command" category="8. NNPad for neural networks"><comment x="0" y="0" w="185.33333333333334" collapsed="false">Draws the nodes and current status of connections of an NN as new costume.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>layerOutputs</l><l>netWidth</l><l>depth</l><l>input</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as NNPad</l><l>NN show status</l></custom-block></script><list></list></block><block s="doSetVar"><l>input</l><custom-block s="NNPadProperty %txt of %txt"><l>inputs</l><block var="target"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block><l>0</l></list></block><script><custom-block s="set NNPadProperty %txt of %txt to %s"><l>inputs</l><block var="target"/><block s="reportNumbers"><l>1</l><custom-block s="NNPadProperty %txt of %txt"><l>layerWidth</l><block var="target"/></custom-block></block></custom-block><block s="doSetVar"><l>input</l><custom-block s="NNPadProperty %txt of %txt"><l>inputs</l><block var="target"/></custom-block></block></script><list></list></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><custom-block s="NNPadProperty %txt of %txt"><l>layerWidth</l><block var="target"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: input doesn&apos;t match netwidth!</l><l>NN show status</l></custom-block></script><script><block s="doSetVar"><l>depth</l><custom-block s="NNPadProperty %txt of %txt"><l>numberOfLayers</l><block var="target"/></custom-block></block><block s="doSetVar"><l>layerOutputs</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><block var="input"/><block var="layerOutputs"/></block><block s="doFor"><l>i</l><l>1</l><block var="depth"/><script><block s="doAddToList"><custom-block s="NN output of %s layer on %txt"><block var="i"/><block var="target"/></custom-block><block var="layerOutputs"/></block></script></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_NNshowStatus(properties,weights,outputs,costume,isStage)</l><list><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="layerOutputs"/><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></list></block></list></block></script></block></script></block-definition><block-definition s="teach NN with input %&apos;input&apos; and target output %&apos;output&apos; by back- $nl propagation with learning factor %&apos;eta&apos; on %&apos;sprite&apos;" type="command" category="8. NNPad for neural networks" space="true"><comment x="0" y="0" w="154.83333333333331" collapsed="false">A block for teaching a neural net.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n">0.1</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>width</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a NNPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as NNPad</l><l>teach NN</l></custom-block></script><list></list></block><block s="doSetVar"><l>width</l><custom-block s="NNPadProperty %txt of %txt"><l>layerWidth</l><block var="target"/></custom-block></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="width"/><block s="reportListAttribute"><l><option>length</option></l><block var="input"/></block></list></block><block s="reportVariadicEquals"><list><block var="width"/><block s="reportListAttribute"><l><option>length</option></l><block var="output"/></block></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: data don&apos;t match netwidth!</l><l>teach NN</l></custom-block></script><script><custom-block s="set NNPadProperty %txt of %txt to %s"><l>inputs</l><block var="target"/><block var="input"/></custom-block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><block s="reportApplyExtension"><l>SciS_NNteach(weights,width,depth,input,output,eta)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="width"/><custom-block s="NNPadProperty %txt of %txt"><l>numberOfLayers</l><block var="target"/></custom-block><block var="input"/><block var="output"/><block var="eta"/></list></block></custom-block></script></block></script></block></script></block-definition><block-definition s="NN Example: on %&apos;sprite&apos;" type="command" category="8. NNPad for neural networks" space="true"><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><custom-block s="configure %s as a NeuralNetPad width: %n height: %n %br color: %s with close-button? %b left? %b size: %n"><block var="sprite"/><l>600</l><l>300</l><l>lightGray</l><l><bool>true</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="NN add new weights for %n layers of width %n on %txt"><l>2</l><l>20</l><block var="sprite"/></custom-block><block s="doRepeat"><l>300</l><script><custom-block s="teach NN with input %l and target output %l by back- %br propagation with learning factor %n on %txt"><block s="reportNumbers"><l>1</l><l>20</l></block><block s="reportNewList"><list><l>1</l><l>0</l><l>0</l><l>-1</l><l>0</l><l>0</l><l>0</l><l>1</l><l>0</l><l>0</l><l>0</l><l>0</l><l>0</l><l>1</l><l>-1</l><l>-1</l><l>-1</l><l>0</l><l>0</l><l>0</l></list></block><l>0.1</l><block var="sprite"/></custom-block><custom-block s="NN show status on %txt"><block var="sprite"/></custom-block></script></block></script></block-definition><block-definition s="INFO &quot;GridPad&quot; for dealing with cellular automata" type="command" category="9. GridPad for grid operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="show global message title: %txt %br message: %txt"><custom-block s="translate %txt"><l>INFO about "GridPad for grid operations"</l></custom-block><custom-block s="translate %txt"><l>This category contains blocks for using any sprite or the stage as a sketch pad for displaying grids that are used for cellular automata, for example.&#xD;Blocks are available for determining neighborhoods, processing neighboring blocks with settable properties, etc.&#xD;The colors of the cells are determined via color codes ("numerical values").&#xD;The properties of the "pad" used are initially set to default values, which can be changed using the corresponding blocks.&#xD;Some examples explain how the blocks are used.</l></custom-block></custom-block></script></block-definition><block-definition s="configure %&apos;sprite&apos; as an GridPad width: %&apos;width&apos; height: %&apos;height&apos; $nl color: %&apos;color&apos; with close-button? %&apos;withCloseButton?&apos; left? %&apos;left?&apos; size: %&apos;closeButtonSize&apos;" type="command" category="9. GridPad for grid operations" space="true"><comment x="0" y="0" w="142.5" collapsed="false">Creates a new  empty costume of the specified size and color and sets local properties</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">400</input><input type="%n">300</input><input type="%txt" readonly="true">lightGray<options>black&#xD;gray&#xD;lightGray&#xD;white&#xD;red&#xD;orange&#xD;yellow&#xD;green&#xD;cyan&#xD;blue&#xD;magenta</options></input><input type="%b">false</input><input type="%b">false</input><input type="%n">15</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>costumeWidth</l><l>costumeHeight</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><custom-block s="configure %txt as a SketchPad width: %n height: %n %br color: %s with close-button %b left? %b size: %n"><block var="target"/><block var="width"/><block var="height"/><block var="color"/><block var="withCloseButton?"/><block var="left?"/><block var="closeButtonSize"/></custom-block><block s="doReplaceInList"><l>typeOfConfiguration</l><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><l>GridPad</l></block><block s="doAddToList"><block s="reportNewList"><list><l>typeOfData</l><l>number</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>numberOfGridRows</l><block s="reportRound"><block s="reportQuotient"><block var="height"/><l>10</l></block></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>numberOfGridColumns</l><block s="reportRound"><block s="reportQuotient"><block var="width"/><l>10</l></block></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>cellWidth</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>cellHeight</l><l>10</l></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>withGridLines</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doAddToList"><block s="reportNewList"><list><l>cellColors</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>180</l><l>180</l><l>180</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>165</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>230</l><l>230</l><l>230</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l></list></block></list></block></list></block></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="color"/><l>black</l></list></block><script><block s="doSetVar"><l>color</l><l>1</l></block></script><list><block s="reportVariadicEquals"><list><block var="color"/><l>red</l></list></block><script><block s="doSetVar"><l>color</l><l>2</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>green</l></list></block><script><block s="doSetVar"><l>color</l><l>3</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>blue</l></list></block><script><block s="doSetVar"><l>color</l><l>4</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>gray</l></list></block><script><block s="doSetVar"><l>color</l><l>5</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>orange</l></list></block><script><block s="doSetVar"><l>color</l><l>6</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>cyan</l></list></block><script><block s="doSetVar"><l>color</l><l>7</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>magenta</l></list></block><script><block s="doSetVar"><l>color</l><l>8</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>yellow</l></list></block><script><block s="doSetVar"><l>color</l><l>9</l></block></script><block s="reportVariadicEquals"><list><block var="color"/><l>white</l></list></block><script><block s="doSetVar"><l>color</l><l>10</l></block></script><l><bool>true</bool></l><script><block s="doSetVar"><l>color</l><l>11</l></block></script></list></block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><custom-block s="%n x %n table %br initialized with %s"><block s="reportRound"><block s="reportQuotient"><block var="width"/><l>10</l></block></block><block s="reportRound"><block s="reportQuotient"><block var="height"/><l>10</l></block></block><block var="color"/></custom-block></custom-block><custom-block s="add grid %s on %s"><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="target"/></custom-block></script></block></script><scripts><comment x="512.8333333333335" y="114.16666666666693" w="192.5" collapsed="false">Costume attributes and line attributes same as SketchPad.&#xD;&#xD;other attributes:&#xD;numberOfGridColumns&#xD;numberOfGridRows&#xD;cellWidth&#xD;cellHeight&#xD;cellColors&#xD;&#xD;1: black&#xD;2: red&#xD;3: green&#xD;4: blue&#xD;5: gray&#xD;6: orange&#xD;7: cyan&#xD;8: magenta&#xD;9: yellow&#xD;10: lightGray&#xD;11: white&#xD;&#xD;&#xD;</comment></scripts></block-definition><block-definition s="is %&apos;sprite&apos; a GridPad?" type="predicate" category="9. GridPad for grid operations"><comment x="0" y="0" w="134" collapsed="false">Reports whether the sprite is configured as a GridPad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l><option>myself</option></l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>GridPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><l>Stage</l></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>GridPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script><script><block s="doReport"><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><custom-block s="is %s a %s ?"><l>thisSprite</l><l>GridPad</l></custom-block></autolambda><list></list></block><list></list></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="set GridPadProperty %&apos;key&apos; of %&apos;sprite&apos; to %&apos;value&apos;" type="command" category="9. GridPad for grid operations"><comment x="0" y="0" w="128" collapsed="false">Sets the value of an existing property or inserts it anew.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;line properties={&#xD;line width=lineWidth&#xD;line style=lineStyle&#xD;line color=lineColor&#xD;fill color=fillColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;grid proterties={&#xD;number of grid columns=numberOfGridColumns&#xD;number of grid rows=numberOfGridRows&#xD;cell width=cellWidth&#xD;cell height=cellHeight&#xD;cell colors=cellColors&#xD;with grid lines=withGridLines&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>set GridPadProperty</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="value"/></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: Missing variable "myProperties"!</l><l>set GridPadProperty</l></custom-block></script></block></script></block></script></block-definition><block-definition s="GridPadProperty %&apos;key&apos; of %&apos;sprite&apos;" type="reporter" category="9. GridPad for grid operations"><comment x="0" y="0" w="95" collapsed="false">Reads the value of an existing property.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">typeOfConfiguration<options>typeOfConfiguration&#xD;typeOfData&#xD;costumeProperties={&#xD;width=costumeWidth&#xD;height=costumeHeight&#xD;back color=backColor&#xD;offsets=offsets&#xD;front color=frontColor&#xD;}&#xD;text properties={&#xD;text height=textHeight&#xD;orientation=textOrientation&#xD;}&#xD;closebutton properties={&#xD;with closebutton?=withCloseButton&#xD;position=closeButtonLeft&#xD;size=closeButtonSize&#xD;}&#xD;grid properties={&#xD;number of grid columns=numberOfGridColumns&#xD;number of grid rows=numberOfGridRows&#xD;cell width=cellWidth&#xD;cell height=cellHeight&#xD;cell colors=cellColors&#xD;with grid lines=withGridLines&#xD;}</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad!</l><l>GridPadProperty of ...</l></custom-block></script><list></list></block><block s="doIfElse"><custom-block s="is variable %s in the scope of %s ?"><l>myProperties</l><block var="target"/></custom-block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="key"/><l> </l></block></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: missing variable myProperties!</l><l>GridPadProperty of ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="set GridPad costume properties width: %&apos;width&apos; height: %&apos;height&apos; $nl back color: %&apos;color&apos; offsets: %&apos;leftOffset&apos; %&apos;upperOffset&apos; on %&apos;sprite&apos;" type="command" category="9. GridPad for grid operations"><comment x="0" y="0" w="117.66039530436255" collapsed="false">a simple way to set some costume attributes:&#xD;1: width&#xD;2: height&#xD;3: back color red&#xD;4: back color green&#xD;5: back color blue&#xD;6: left offset for Image&#xD;    position on stage&#xD;7: upper offset for Image&#xD;    position on stage</comment><header></header><code></code><translations></translations><inputs><input type="%n">400</input><input type="%n">300</input><input type="%mult%s"></input><input type="%n">0</input><input type="%n">0</input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>set GridPad costume properties</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><custom-block s="set GridPadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>backColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block></script><script><custom-block s="set GridPadProperty %txt of %txt to %s"><l>costumeWidth</l><block var="target"/><block var="width"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>costumeHeight</l><block var="target"/><block var="height"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>backColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>offsets</l><block var="target"/><block s="reportNewList"><list><block var="leftOffset"/><block var="upperOffset"/></list></block></custom-block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="new costume size: %n %n %s"><custom-block s="GridPadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><custom-block s="GridPadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><custom-block s="GridPadProperty %txt of %txt"><l>backColor</l><block var="target"/></custom-block></custom-block></block></script><list></list></block><list></list></block><custom-block s="adjust close-button of %s"><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="set GridPad line properties style: %&apos;style&apos; $nl width: %&apos;lineWidth&apos; color: %&apos;color&apos; fill color: %&apos;fillColor&apos; on %&apos;sprite&apos;" type="command" category="9. GridPad for grid operations"><comment x="0" y="0" w="105.68386840820362" collapsed="false">a simple way to set some net attributes:&#xD;line properties:&#xD;1: line style&#xD;2: lineWidth&#xD;3: line color &#xD;4: fill color</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">continuous<options>continuous&#xD;dashed&#xD;dash-dot&#xD;dot-dot</options></input><input type="%n">1</input><input type="%mult%s"></input><input type="%mult%s"></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as ImagePad</l><l>set ImagePad line properties</l></custom-block></script><list></list></block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>lineWidth</l><block var="target"/><block var="lineWidth"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>lineStyle</l><block var="target"/><block var="style"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>lineColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="color"/></custom-block></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>fillColor</l><block var="target"/><custom-block s="variadic color %mult%s $arrowRightOutline RGB(A)-value"><block var="fillColor"/></custom-block></custom-block></script></block></script></block-definition><block-definition s="set GridPad grid properties on %&apos;sprite&apos; $nl horizontal cells: %&apos;hNumber&apos; vertical cells: %&apos;vNumber&apos; $nl initial cell colornumber: %&apos;cellcolor&apos; with grid lines? %&apos;withLines&apos;" type="command" category="9. GridPad for grid operations"><comment x="0" y="0" w="140.9937286376957" collapsed="false">a simple way to set some grid attributes:&#xD;1: number of horizontal cells&#xD;2: number of vertical cells&#xD;3: cell width&#xD;4: cell height&#xD;&#xD;grid data are stored in myData</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">40</input><input type="%n">30</input><input type="%n">11</input><input type="%b">true</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>target</l><l>wh</l><l>ws</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>set GridPad grid properties</l></custom-block></script><list></list></block><block s="doSetVar"><l>wh</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><custom-block s="GridPadProperty %txt of %txt"><l>costumeWidth</l><block var="target"/></custom-block><block var="hNumber"/></block></block></block><block s="doSetVar"><l>ws</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><custom-block s="GridPadProperty %txt of %txt"><l>costumeHeight</l><block var="target"/></custom-block><block var="vNumber"/></block></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="wh"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="ws"/><l>1</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: cell size is too small!</l><l>set GridPad grid properties</l></custom-block></script><list></list></block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>numberOfGridRows</l><block var="target"/><block var="vNumber"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>numberOfGridColumns</l><block var="target"/><block var="hNumber"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>cellWidth</l><block var="target"/><block var="ws"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>cellHeight</l><block var="target"/><block var="wh"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>cellHeight</l><block var="target"/><block var="wh"/></custom-block><custom-block s="set GridPadProperty %txt of %txt to %s"><l>withGridLines</l><block var="target"/><block var="withLines"/></custom-block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><custom-block s="%n x %n table %br initialized with %s"><block var="hNumber"/><block var="vNumber"/><block var="cellcolor"/></custom-block></custom-block><custom-block s="add grid %s on %s"><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="target"/></custom-block></script></block></script></block></script></block-definition><block-definition s="add grid %&apos;theGrid&apos; on %&apos;sprite&apos;" type="command" category="9. GridPad for grid operations" space="true"><comment x="0" y="0" w="163.00000000000003" collapsed="false">Draws a grid on an GridPad.</comment><header></header><code></code><translations></translations><inputs><input type="%s">myData</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>data</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>add grid</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="theGrid"/><l>myData</l></list></block><script><block s="doSetVar"><l>data</l><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></script><script><block s="doSetVar"><l>data</l><block var="theGrid"/></block></script></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="data"/><l>matrix</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: matrix data required!</l><l>add grid</l></custom-block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><l>thisSprite</l></custom-block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="data"/></block></block></list></block><block s="reportVariadicEquals"><list><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><l>thisSprite</l></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: wrong grid dimensions!</l><l>add grid</l></custom-block></script><list></list></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportApplyExtension"><l>SciS_addGridToGridPad(costume,properties,withLines,data)</l><list><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><custom-block s="GridPadProperty %txt of %txt"><l>withGridLines</l><block var="target"/></custom-block><block var="data"/></list></block></list></block></script></block></script></block-definition><block-definition s="fill cells on %&apos;sprite&apos; range x: %&apos;xmin&apos; %&apos;xmax&apos; y: %&apos;ymin&apos; %&apos;ymax&apos; $nl randomly with color numbers %&apos;numbers&apos;" type="command" category="9. GridPad for grid operations" space="true"><comment x="0" y="0" w="281" collapsed="false">Fills a grid or a part of a grid with one of the specified values.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input><input type="%mult%n"></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>fill cells on ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="xmax"/><l>xMax</l></list></block><script><block s="doSetVar"><l>xmax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="ymax"/><l>yMax</l></list></block><script><block s="doSetVar"><l>ymax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></block></script><list></list></block><custom-block s="set %txt of %txt to %s"><l>myData</l><block var="target"/><block s="reportApplyExtension"><l>SciS_fillOnGridPadGridRandomlyOnImagePad(xMin,xMax,yMin,yMax,numbers,data)</l><list><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/><block var="numbers"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></list></block></custom-block></script></block><custom-block s="add grid %s on %s"><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="target"/></custom-block></script></block-definition><block-definition s="set cell value on %&apos;sprite&apos; to %&apos;value&apos; by mouse" type="command" category="9. GridPad for grid operations"><comment x="0" y="0" w="145.83333333333334" collapsed="false">sets the value of a grid cell</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>targetCostume</l><l>targetCostumeWidth</l><l>targetCostumeHeight</l><l>targetXPosition</l><l>targetYPosition</l><l>targetSize</l><l>x</l><l>y</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad!</l><l>set cell value by mouse</l></custom-block></script><list></list></block><block s="doSetVar"><l>targetCostume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>targetCostumeWidth</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetCostumeHeight</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="targetCostume"/></block></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doSetVar"><l>targetXPosition</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></block></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></block></block><block s="doSetVar"><l>targetSize</l><l>100</l></block><block s="doSetVar"><l>x</l><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block></block></script><script><block s="doSetVar"><l>targetXPosition</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block></script></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="y"/><block var="targetCostumeHeight"/></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><block s="doReplaceInList"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="x"/><custom-block s="GridPadProperty %txt of %txt"><l>cellWidth</l><block var="target"/></custom-block></block></block><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="y"/><custom-block s="GridPadProperty %txt of %txt"><l>cellHeight</l><block var="target"/></custom-block></block></block><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><block var="value"/></block></script><list></list></block><custom-block s="add grid %s on %s"><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="target"/></custom-block></script></block></script></block-definition><block-definition s="%&apos;selection&apos; on %&apos;sprite&apos; by mouse" type="reporter" category="9. GridPad for grid operations"><comment x="0" y="0" w="168.33333333333334" collapsed="false">Obtaining data with the mouse from a grid stored in myData.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">cellValue<options>cell value=cellValue&#xD;cell coodinates=cellCoordinates&#xD;costume coordinates=costumeCoordinates</options></input><input type="%txt">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>target</l><l>targetCostume</l><l>targetCostumeWidth</l><l>targetCostumeHeight</l><l>targetXPosition</l><l>targetYPosition</l><l>targetSize</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad!</l><l>cellValue/... by mouse</l></custom-block></script><list></list></block><block s="doSetVar"><l>selection</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="selection"/><l> </l></block></block></block><block s="doSetVar"><l>targetCostume</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costume</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>targetCostumeWidth</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="targetCostume"/></block></block><block s="doSetVar"><l>targetCostumeHeight</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="targetCostume"/></block></block><block s="doIfElse"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block><script><block s="doSetVar"><l>targetXPosition</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></block></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportRound"><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></block></block><block s="doSetVar"><l>targetSize</l><l>100</l></block><block s="doSetVar"><l>x</l><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block></block><block s="doSetVar"><l>y</l><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block></block></script><script><block s="doSetVar"><l>targetXPosition</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetYPosition</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></block><block s="doSetVar"><l>targetSize</l><block s="reportAttributeOf"><l><option>size</option></l><block var="target"/></block></block><block s="doSetVar"><l>x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block s="reportMouseX"></block><block var="targetXPosition"/></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeWidth"/><l>2</l></block></list></block><l>1</l></list></block></block></block><block s="doSetVar"><l>y</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block s="reportDifference"><block var="targetYPosition"/><block s="reportMouseY"></block></block><block var="targetSize"/></block></list></block><block s="reportQuotient"><block var="targetCostumeHeight"/><l>2</l></block></list></block><l>1</l></list></block></block></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>costumeCoordinates</l></list><comment w="121.68283420138891" collapsed="false">costume coordinates.</comment></block><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>cellCoordinates</l></list></block><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportNewList"><list><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="x"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></list></block><block var="targetCostumeWidth"/></block></block><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="y"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></list></block><block var="targetCostumeHeight"/></block></block></list></block></block></script></block></script><list></list><comment w="90" collapsed="false">coordinates of a grid cell</comment></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>cellValue</l></list></block><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="x"/><block var="targetCostumeWidth"/></list></block><block s="reportVariadicGreaterThan"><list><block var="y"/><block var="targetCostumeHeight"/></list></block></list></block><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicLessThan"><list><block var="y"/><l>1</l></list></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="x"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></list></block><block var="targetCostumeWidth"/></block></block><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="y"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></list></block><block var="targetCostumeHeight"/></block></block><block var="myData"/></block></block></block></script></block></script><list></list><comment w="90" collapsed="false">value of a grid cell</comment></block></script></block></script></block-definition><block-definition s="set cell value on %&apos;sprite&apos; at %&apos;x&apos; %&apos;y&apos; to %&apos;value&apos; $nl with grid lines? %&apos;withLines&apos;" type="command" category="9. GridPad for grid operations"><comment x="0" y="0" w="227" collapsed="false">Sets the value of a grid cell an shows the result.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">1</input><input type="%n">1</input><input type="%n">2</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>set cell value at ... to ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="y"/><l>1</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="y"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></list></block></list></block><script><block s="doReplaceInList"><block var="x"/><block s="reportListItem"><block var="y"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block><block var="value"/></block><custom-block s="add grid %s on %s"><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="target"/></custom-block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: indices out of bounds!</l><l>set cell value at ... to ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="cell value on %&apos;sprite&apos; at %&apos;x&apos; %&apos;y&apos;" type="reporter" category="9. GridPad for grid operations"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l> cell value at ...</l></custom-block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="x"/><l>1</l></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="y"/><l>1</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="x"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="y"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></list></block></list></block><script><block s="doReport"><block s="reportListItem"><block var="x"/><block s="reportListItem"><block var="y"/><block s="reportAttributeOf"><l>myData</l><block var="target"/></block></block></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: indices out of bounds!</l><l>set cell value at ... to ...</l></custom-block></script></block></script></block></script></block-definition><block-definition s="%&apos;typeOfNeighborhood&apos; -neighborhood as torus? %&apos;asTorus&apos; of %&apos;x&apos; %&apos;y&apos; $nl on %&apos;sprite&apos;" type="reporter" category="9. GridPad for grid operations" space="true"><comment x="0" y="0" w="165.83333333333334" collapsed="false">Reports the Moore- or v.-Neumann-neighborhood of a cell. &#xD;Order: north,east,south,west</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">Moore<options>Moore&#xD;vonNeumann</options></input><input type="%b">false</input><input type="%n">1</input><input type="%n">1</input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>... neighborhood of ...</l></custom-block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_neighborhoodInGridOnImagePad(data,properties,x,y,isTorus,typeOfNeighborhood)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block s="reportAttributeOf"><l>myProperties</l><block var="target"/></block><block var="x"/><block var="y"/><block var="asTorus"/><block var="typeOfNeighborhood"/></list></block></block></script></block-definition><block-definition s="all cells on %&apos;sprite&apos; as torus? %&apos;isTorus&apos; swapped %&apos;n&apos; times $nl randomly inside radius %&apos;range&apos; range x: %&apos;xmin&apos; %&apos;xmax&apos; y: %&apos;ymin&apos; %&apos;ymax&apos;" type="reporter" category="9. GridPad for grid operations" space="true"><comment x="0" y="0" w="194.99999999999977" collapsed="false">Swaps the cell values of a grid randomly.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input><input type="%n">1</input><input type="%n">1</input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>all cells ... swapped ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="xmax"/><l>xMax</l></list></block><script><block s="doSetVar"><l>xmax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="ymax"/><l>yMax</l></list></block><script><block s="doSetVar"><l>ymax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="xmin"/><l>1</l></list></block><script><block s="doSetVar"><l>xmin</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="xmax"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></list></block><script><block s="doSetVar"><l>xmax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="ymin"/><l>1</l></list></block><script><block s="doSetVar"><l>ymin</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="ymax"/><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></list></block><script><block s="doSetVar"><l>ymax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_swapCellsOfGridOnGridPad(data,n,isTorus,range,xMin,xMax,yMin,yMax)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="n"/><block var="isTorus"/><block s="reportMonadic"><l><option>abs</option></l><block var="range"/></block><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/></list></block></block></script></block></script></block-definition><block-definition s="all cells on %&apos;sprite&apos; as torus? %&apos;isTorus&apos; with value %&apos;oldValue&apos; $nl take value %&apos;ifValue&apos; if number of surrounding value %&apos;surrValue&apos; is %&apos;operator&apos; %&apos;n&apos; $nl else take value %&apos;elseValue&apos; with noise? %&apos;withNoise&apos; of %&apos;noise&apos; % $nl range x: %&apos;xmin&apos; %&apos;xmax&apos; y: %&apos;ymin&apos; %&apos;ymax&apos;" type="reporter" category="9. GridPad for grid operations"><comment x="0" y="0" w="299" collapsed="false">Counts the surrounding values and changes it if necessary.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input><input type="%s">any<options>any</options></input><input type="%n">2</input><input type="%n">2</input><input type="%s" readonly="true">greater-than<options>greater-than&#xD;equal-to&#xD;smaller-than&#xD;different-from</options></input><input type="%n">4</input><input type="%n">1</input><input type="%b">false</input><input type="%n">5</input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target isn&apos;t configured as GridPad</l><l>all cells ... with value ...</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="xmax"/><l>xMax</l></list></block><script><block s="doSetVar"><l>xmax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="ymax"/><l>yMax</l></list></block><script><block s="doSetVar"><l>ymax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_changeSurroundingValuesOfGridOnGridPad(data,ifValue,elseValue,surrValue,op,n,isTorus,withNoise,noise,xMin,xMax,yMin,yMax,oldValue)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block var="ifValue"/><block var="elseValue"/><block var="surrValue"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="operator"/><l> </l></block></block><block var="n"/><block var="isTorus"/><block var="withNoise"/><block var="noise"/><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="oldValue"/><l> </l></block></block></list></block></block></script></block></script></block-definition><block-definition s="all cells on %&apos;sprite&apos; as torus? %&apos;isTorus&apos; take %&apos;operation&apos; $nl of surrounding cells x: %&apos;xmin&apos; %&apos;xmax&apos; y: %&apos;ymin&apos; %&apos;ymax&apos; range: %&apos;range&apos;" type="reporter" category="9. GridPad for grid operations"><comment x="0" y="0" w="196.99999999999997" collapsed="false">Replaces the cell values of a grid depending on the features of the neighbors.</comment><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%b">true</input><input type="%s" readonly="true">sum<options>sum&#xD;min&#xD;max&#xD;mean</options></input><input type="%n">1</input><input type="%s">xMax</input><input type="%n">1</input><input type="%s">yMax</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s a GridPad?"><block var="target"/></custom-block></block><script><block s="doReport"><l>ERROR: target isn&apos;t configured as GridPad</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="xmax"/><l>xMax</l></list></block><script><block s="doSetVar"><l>xmax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridColumns</l><block var="target"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="ymax"/><l>yMax</l></list></block><script><block s="doSetVar"><l>ymax</l><custom-block s="GridPadProperty %txt of %txt"><l>numberOfGridRows</l><block var="target"/></custom-block></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_replaceValuesOfGridOnImagePad(data,operation,isTorus,xMin,xMax,yMin,yMax,range)</l><list><block s="reportAttributeOf"><l>myData</l><block var="target"/></block><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="operation"/><l> </l></block></block><block var="isTorus"/><block var="xmin"/><block var="xmax"/><block var="ymin"/><block var="ymax"/><block s="reportMonadic"><l><option>abs</option></l><block var="range"/></block></list></block></block></script></block-definition><block-definition s="combine grid1 %&apos;grid1&apos; and grid2 %&apos;grid2&apos; by value1= %&apos;value1&apos; %&apos;operator&apos; value2= %&apos;value2&apos; $nl to %&apos;ifValue&apos; else %&apos;elseValue&apos;" type="reporter" category="9. GridPad for grid operations"><comment x="0" y="0" w="113" collapsed="false">Combines two grids.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n">1</input><input type="%s" readonly="true">or<options>and&#xD;or&#xD;xor&#xD;not-and&#xD;not-or&#xD;not-xor&#xD;minus</options></input><input type="%n">2</input><input type="%n">1</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>xMax</l><l>yMax</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><custom-block s="is %s a %txt"><block var="grid1"/><l>matrix</l></custom-block><custom-block s="is %s a %txt"><block var="grid2"/><l>matrix</l></custom-block></list></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: matrices required!</l><l>combine grids ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>xMax</l><block s="reportIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid1"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid2"/></block></block></list></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid1"/></block></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="grid2"/></block></block></block></block><block s="doSetVar"><l>yMax</l><block s="reportIfElse"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="grid1"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="grid2"/></block></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="grid1"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="grid2"/></block></block></block></script></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_combineGridsOnGridPad(grid1,grid2,value1,operator,value2,ifValue,elseValue,xMax,yMax)</l><list><block var="grid1"/><block var="grid2"/><block var="value1"/><block var="operator"/><block var="value2"/><block var="ifValue"/><block var="elseValue"/><block var="xMax"/><block var="yMax"/></list></block></block></script></block-definition><block-definition s="Example: plot of mixed data" type="command" category="5. PlotPad for data plots"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %txt as a PlotPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>true</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doSetVar"><l>myData</l><custom-block s="empty table"></custom-block></block><custom-block s="add %s %s to %s"><l>row</l><block s="reportNewList"><list><l>Meier</l><l>5</l></list></block><block var="myData"/></custom-block><custom-block s="add %s %s to %s"><l>row</l><block s="reportNewList"><list><l>Miller</l><l>7</l></list></block><block var="myData"/></custom-block><custom-block s="add %s %s to %s"><l>row</l><block s="reportNewList"><list><l>Hansen</l><l>3</l></list></block><block var="myData"/></custom-block><custom-block s="set PlotPad labels on %s to %br title: %txt titleheight: %n %br x-label: %txt xLabelheight: %n %br y-label: %txt yLabelheight: %n"><l>thisSprite</l><l>Plot of mixed data</l><l>18</l><l> Meier                    Miller                    Hansen </l><l>16</l><l>sales</l><l>16</l></custom-block><custom-block s="add dataplot of mixed data: %s %br y-scale? %b x-scale? %b to PlotPad %txt"><l>myData</l><l><bool>true</bool></l><l><bool>false</bool></l><l>thisSprite</l></custom-block><custom-block s="add axes and scales to PlotPad %txt"><l>thisSprite</l></custom-block></script></block-definition><block-definition s="set %&apos;sprite&apos; to full size, bounded by $nl left %&apos;left&apos; right %&apos;right&apos; top %&apos;top&apos; bottom %&apos;bottom&apos;" type="command" category="looks" space="true"><comment x="0" y="0" w="122.40000000000002" collapsed="false">Sets the size of a sprite so that it fits into the specified stage area.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">thisSprite<options>thisSprite&#xD;anotherSprite</options></input><input type="%n">-200</input><input type="%n">200</input><input type="%n">200</input><input type="%n">-200</input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>spriteWidth</l><l>spriteHeight</l><l>windowWidth</l><l>windowHeight</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="setScale"><l>100</l></block></script><list></list></block><list></list></block><block s="doSetVar"><l>spriteWidth</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>spriteHeight</l><block s="reportAskFor"><block var="target"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doSetVar"><l>windowWidth</l><block s="reportRound"><block s="reportDifference"><block var="right"/><block var="left"/></block></block></block><block s="doSetVar"><l>windowHeight</l><block s="reportRound"><block s="reportDifference"><block var="top"/><block var="bottom"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicIsIdentical"><list><block var="target"/><block s="reportObject"><l>Stage</l></block></list></block></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportQuotient"><block var="spriteWidth"/><block var="windowWidth"/></block><block s="reportQuotient"><block var="spriteHeight"/><block var="windowHeight"/></block></list></block><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block var="windowWidth"/><block var="spriteWidth"/></block></list></block></list></block></script><script><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><list><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block var="windowHeight"/><block var="spriteHeight"/></block></list></block></list></block></script></block><block s="doTellTo"><block var="target"/><block s="reifyScript"><script><block s="gotoXY"><block s="reportRound"><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="right"/><block var="left"/></list></block><l>2</l></block></block><block s="reportRound"><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="top"/><block var="bottom"/></list></block><l>2</l></block></block></block></script><list></list></block><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="convert %&apos;position&apos; on %&apos;sprite&apos; to %&apos;choice&apos; - coordinates" type="reporter" category="6. ImagePad for image operations" space="true"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s" readonly="true">JavaScript<options>JavaScript&#xD;Snap!</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>theStage</l></list></block><block s="reportObject"><l>Stage</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block></block><block s="doIf"><block s="reportNot"><custom-block s="is %s an ImagePad?"><block var="target"/></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: target is not an ImagePad!</l><l>convert ... coordinates to ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>position</l><custom-block s="variadic position %mult%s $arrowRightOutline position"><block var="position"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>JavaScript</l></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block><block s="reportListItem"><l>2</l><block var="position"/></block></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportNewList"><list><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportAttributeOf"><l><option>left</option></l><block var="target"/></block></list></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>top</option></l><block var="target"/></block><block s="reportListItem"><l>2</l><block var="position"/></block></block></list></block></block></script></block></script></block-definition><block-definition s="let part %&apos;sprite&apos; of the TheLineTool respond to %&apos;event&apos;" type="command" category="6. ImagePad for image operations" space="true"><header></header><code></code><translations></translations><inputs><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input><input type="%s" readonly="true">receiveGo<options>receiveGo&#xD;receiveKey enter&#xD;receiveKey space&#xD;receiveKey +&#xD;receiveKey -&#xD;receiveKey up arrow&#xD;receiveKey down arrow&#xD;receiveKey left arrow&#xD;receiveKey right arrow&#xD;receiveInteraction clicked&#xD;receiveInteraction pressed&#xD;receiveInteraction mouse-entered&#xD;receiveInteraction mouse-departed&#xD;receiveInteraction scrolled up&#xD;receiveInteraction scrolleddown&#xD;receiveMessage</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>data</l><l>dist</l><l>slice</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>TheLineTool</l></block></list></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportAttributeOf"><l>isMoving</l><l>LineEnd1</l></block></block><block s="reportNot"><block s="reportAttributeOf"><l>isMoving</l><l>LineEnd2</l></block></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction pressed</l></list></block><script><block s="doIfElse"><custom-block s="is key %n pressed?"><l>16</l></custom-block><script><custom-block s="update tool coordinates on %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block><block s="doSetVar"><l>data</l><block s="reportNewList"><list><l>Data of TheLineTool</l></list></block></block><block s="doAddToList"><block s="reportJoinWords"><list><l>datetime: </l><custom-block s="datetime"></custom-block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>position of LineEnd1: </l><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd1</l></block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>position of LineEnd2: </l><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd2</l></block></list></block><block var="data"/></block><block s="doSetVar"><l>dist</l><block s="reportRound"><custom-block s="Euclidean distance between %br point %mult%s and point %mult%s"><list><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd1</l></block></list><list><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd2</l></block></list></custom-block></block></block><block s="doAddToList"><block s="reportNewList"><list><l>length: </l><block var="dist"/></list></block><block var="data"/></block><block s="doTellTo"><l>LineEnd1</l><block s="reifyScript"><script><block s="doFaceTowards"><l>LineEnd2</l></block></script><list></list></block><list></list></block><block s="doAddToList"><block s="reportNewList"><list><l>angle: </l><block s="reportAttributeOf"><l><option>direction</option></l><l>LineEnd1</l></block></list></block><block var="data"/></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="dist"/><l>2</l></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: points are too close together!</l><l>let sprite respond to event</l></custom-block></script><script><block s="doSetVar"><l>slice</l><block s="reportApplyExtension"><l>SciS_collectSliceData(p1,p2,dist,imageData,width,height,imageType)</l><list><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd1</l></block><block s="reportAttributeOf"><l>myImagePosition</l><l>LineEnd2</l></block><block var="dist"/><block s="reportAttributeOf"><l>myData</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></block></block><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></block></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageHeight</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></block></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageType</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></block></custom-block></list></block></block><block s="doAddToList"><block s="reportNewList"><list><l>slice: </l><block var="slice"/></list></block><block var="data"/></block><custom-block s="set %txt of %txt to %s"><l>myData</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block><block var="data"/></custom-block><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="doSayFor"><l>Slice data are stored in myData of the window.</l><l>2</l></block></script><list></list></block><list></list></block></script></block></script><script><custom-block s="attach part %s to sprite %s"><block s="reportObject"><l>LineEnd1</l></block><block s="reportObject"><l>TheLineTool</l></block></custom-block><custom-block s="attach part %s to sprite %s"><block s="reportObject"><l>LineEnd2</l></block><block s="reportObject"><l>TheLineTool</l></block></custom-block><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>TheLineTool</l><block s="reportBoolean"><l><bool>true</bool></l></block></custom-block><custom-block s="update window %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script></block></script><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction mouse-departed</l></list></block><block s="reportAttributeOf"><l>isMoving</l><l>TheLineTool</l></block></list></block><script><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>TheLineTool</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><custom-block s="detach all parts from %s"><block s="reportObject"><l>TheLineTool</l></block></custom-block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script></list></block><custom-block s="select sprite %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>LineEnd1</l></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction pressed</l></list></block><script><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>LineEnd1</l><block s="reportBoolean"><l><bool>true</bool></l></block></custom-block><custom-block s="update window %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction mouse-departed</l></list></block><block s="reportAttributeOf"><l>isMoving</l><l>LineEnd1</l></block></list></block><script><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>LineEnd1</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><custom-block s="update tool coordinates on %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script></list></block><custom-block s="select sprite %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="target"/><block s="reportObject"><l>LineEnd2</l></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction pressed</l></list></block><script><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>LineEnd2</l><block s="reportBoolean"><l><bool>true</bool></l></block></custom-block><custom-block s="update window %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction mouse-departed</l></list></block><block s="reportAttributeOf"><l>isMoving</l><l>LineEnd2</l></block></list></block><script><custom-block s="set %txt of %txt to %s"><l>isMoving</l><l>LineEnd2</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><custom-block s="update tool coordinates on %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block><custom-block s="%txt %txt of window %s"><l>show</l><l>TheLineTool</l><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script></list></block><custom-block s="select sprite %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheLineTool</l></block></custom-block></script><list></list></block></script></block></script><scripts><script x="55.66666666666659" y="2780.0000000000005"><custom-block s="update tool positions on %s"><block s="reportAttributeOf"><l>myWindow</l><l>TheSquareTool</l></block></custom-block><block s="doSetVar"><l>data</l><block s="reportNewList"><list><l>Data of TheSquareTool</l></list></block></block><block s="doAddToList"><block s="reportJoinWords"><list><l>datetime: </l><custom-block s="datetime"></custom-block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>position of TheSquareTool: </l><block s="reportAttributeOf"><l>myImagePosition</l><l>TheSquareTool</l></block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>current width of TheSquareTool: </l><block s="reportAttributeOf"><l><option>width</option></l><l>TheSquareTool</l></block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>brightness: </l><block s="reportApplyExtension"><l>SciS_brightness(data,xpos,ypos,r,width,height,typeOfData,typeOfArea)</l><list><block s="reportAttributeOf"><l>myData</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheSquareTool</l></block></block></block><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l>myImagePosition</l><l>TheSquareTool</l></block></block><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l>myImagePosition</l><l>TheSquareTool</l></block></block><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><l>TheSquareTool</l></block><l>2</l></block><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheSquareTool</l></block></block></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageHeight</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheSquareTool</l></block></block></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageType</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><l>TheSquareTool</l></block></block></custom-block><l>square</l></list></block></list></block><block var="data"/></block><custom-block s="set %txt of %txt to %s"><l>myData</l><block s="reportAttributeOf"><l>myWindow</l><l>TheSquareTool</l></block><block var="data"/></custom-block></script><script x="429.3333333333332" y="2579.8611111111118"><block s="doIf"><block s="reportVariadicAnd"><list><l/><l/></list></block><script><block s="doTellTo"><l>TheSquareTool</l><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicLessThan"><list><l></l><l>300</l></list></block><script><block s="changeScale"><l>10</l></block></script><list></list></block></script><list></list></block><list><block s="reportAttributeOf"><l><option>size</option></l><l>TheSquareTool</l></block></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction scrolleddown</l></list></block><script><block s="doTellTo"><l>TheSquareTool</l><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><l></l><l>20</l></list></block><script><block s="changeScale"><l>-10</l></block></script><list></list></block></script><list></list></block><list><block s="reportAttributeOf"><l><option>size</option></l><l>TheSquareTool</l></block></list></block></script><list></list></block></script></scripts></block-definition><block-definition s="let SquareTool %&apos;tool&apos; respond to %&apos;event&apos;" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true">receiveGo<options>receiveGo&#xD;receiveKey enter&#xD;receiveKey space&#xD;receiveKey +&#xD;receiveKey -&#xD;receiveKey up arrow&#xD;receiveKey down arrow&#xD;receiveKey left arrow&#xD;receiveKey right arrow&#xD;receiveInteraction clicked&#xD;receiveInteraction pressed&#xD;receiveInteraction mouse-entered&#xD;receiveInteraction mouse-departed&#xD;receiveInteraction scrolled up&#xD;receiveInteraction scrolleddown&#xD;receiveMessage&#xD;getData</options></input></inputs><script><block s="doDeclareVariables"><list><l>data</l><l>size/5</l><l>result</l><l>size</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportIsA"><block var="tool"/><l><option>sprite</option></l></block><script><block s="doSetVar"><l>size</l><block s="reportAskFor"><block var="tool"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction pressed</l></list></block><block s="reportVariadicEquals"><list><block var="event"/><l>getData</l></list></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction pressed</l></list></block><script><custom-block s="set %txt of %txt to %s"><l>isActive</l><block var="tool"/><block s="reportNot"><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block></block></custom-block></script><list></list></block><block s="doSetVar"><l>size/5</l><block s="reportQuotient"><block var="size"/><l>5</l></block></block><block s="doIfElse"><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block><script><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportApplyExtension"><l>SciS_changeToolCostume(size,tool,color)</l><list><block var="size"/><l>squareTool</l><custom-block s="%s as %txt"><l>green</l><l>RGB-value</l></custom-block></list></block><block var="size"/><block var="size"/></block></list></block></script><script><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportApplyExtension"><l>SciS_changeToolCostume(size,tool,color)</l><list><block var="size"/><l>squareTool</l><custom-block s="%s as %txt"><l>orange</l><l>RGB-value</l></custom-block></list></block><block var="size"/><block var="size"/></block></list></block></script></block><block s="doIf"><block s="reportVariadicOr"><list><custom-block s="is key %n pressed?"><l>16</l></custom-block><block s="reportVariadicEquals"><list><block var="event"/><l>getData</l></list></block></list></block><script><custom-block s="update tool coordinates on %s"><block s="reportAttributeOf"><l>myWindow</l><block var="tool"/></block></custom-block><block s="doSetVar"><l>data</l><block s="reportNewList"><list><block s="reportJoinWords"><list><l>Data of </l><block s="reportAskFor"><block var="tool"/><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block><l>: </l></list></block></list></block></block><block s="doAddToList"><block s="reportNewList"><list><l>datetime: </l><custom-block s="datetime"></custom-block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>position: </l><block s="reportAttributeOf"><l>myImagePosition</l><block var="tool"/></block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>current width: </l><block s="reportAttributeOf"><l><option>width</option></l><block var="tool"/></block></list></block><block var="data"/></block><block s="doAddToList"><block s="reportNewList"><list><l>brightness: </l><block s="reportApplyExtension"><l>SciS_brightness(data,xpos,ypos,r,width,height,typeOfData,typeOfArea)</l><list><block s="reportAttributeOf"><l>myData</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><block var="tool"/></block></block></block><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l>myImagePosition</l><block var="tool"/></block></block><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l>myImagePosition</l><block var="tool"/></block></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sqrt</option></l><l>2</l></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><l>2</l><block s="reportAskFor"><block var="tool"/><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></autolambda><list></list></block><list></list></block></list></block><l>5</l></block></list></block><custom-block s="ImagePadProperty %txt of %txt"><l>imageWidth</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><block var="tool"/></block></block></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageHeight</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><block var="tool"/></block></block></custom-block><custom-block s="ImagePadProperty %txt of %txt"><l>imageType</l><block s="reportAttributeOf"><l>currentImage</l><block s="reportAttributeOf"><l>myWindow</l><block var="tool"/></block></block></custom-block><l>circle</l></list></block></list></block><block var="data"/></block><custom-block s="set %txt of %txt to %s"><l>myData</l><block s="reportAttributeOf"><l>myWindow</l><block var="tool"/></block><block var="data"/></custom-block><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="doSayFor"><l>Brightness data are stored in myData of the window.</l><l>3</l></block></script><list></list></block><list></list></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="event"/><l>receiveInteraction mouse-departed</l></list></block><script><custom-block s="update tool coordinates on %s"><block s="reportAttributeOf"><l>myWindow</l><block var="tool"/></block></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey +</l></list></block><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block></list></block><script><block s="doIf"><block s="reportVariadicLessThanOrEquals"><list><block var="size"/><l>190</l></list></block><script><block s="doChangeVar"><l>size</l><l>10</l></block><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportApplyExtension"><l>SciS_changeToolCostume(size,tool,color)</l><list><block var="size"/><l>squareTool</l><custom-block s="%s as %txt"><l>green</l><l>RGB-value</l></custom-block></list></block><block var="size"/><block var="size"/></block></list></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey -</l></list></block><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block></list></block><script><block s="doIf"><block s="reportVariadicGreaterThanOrEquals"><list><block var="size"/><l>30</l></list></block><script><block s="doChangeVar"><l>size</l><l>-10</l></block><block s="doTellTo"><block var="tool"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><block s="reportNewCostume"><block s="reportApplyExtension"><l>SciS_changeToolCostume(size,tool,color)</l><list><block var="size"/><l>squareTool</l><custom-block s="%s as %txt"><l>green</l><l>RGB-value</l></custom-block></list></block><block var="size"/><block var="size"/></block></list></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey left arrow</l></list></block><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block></list></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportNewList"><list><l>-1</l><l>0</l></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey right arrow</l></list></block><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block></list></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportNewList"><list><l>1</l><l>0</l></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey up arrow</l></list></block><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block></list></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportNewList"><list><l>0</l><l>1</l></list></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="event"/><l>receiveKey down arrow</l></list></block><block s="reportAttributeOf"><l>isActive</l><block var="tool"/></block></list></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportNewList"><list><l>0</l><l>-1</l></list></block></list></block></block></script><list></list></block></script><list></list></block></script></block></script></block-definition><block-definition s="Example: Use of a window to an image" type="command" category="6. ImagePad for image operations" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>theImage</l><l>theWindow</l></list></block><block s="doSetVar"><l>theImage</l><block s="newClone"><l><option>myself</option></l></block></block><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><block var="theImage"/><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doTellTo"><block var="theImage"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l>0</l><l>0</l></block></script><list></list></block><list><block s="reportListItem"><l>20</l><block s="reportGet"><l><option>costumes</option></l></block></block></list></block><block s="doSetVar"><l>theWindow</l><block s="newClone"><l><option>myself</option></l></block></block><custom-block s="configure %txt as a window to ImagePad %s"><block var="theWindow"/><block var="theImage"/></custom-block><block s="doRepeat"><l>3</l><script><custom-block s="magnify or shrink image on window %s by %n %"><block var="theWindow"/><l>10</l></custom-block><block s="doWait"><l>1</l></block></script></block><block s="doRepeat"><l>3</l><script><custom-block s="move image of window %s by %n %n"><block var="theWindow"/><l>20</l><l>20</l></custom-block><block s="doWait"><l>1</l></block></script></block></script></block-definition><block-definition s="Example: get line data with the LineTool" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>theImage</l><l>theWindow</l></list></block><block s="doSetVar"><l>theImage</l><block s="newClone"><l><option>myself</option></l></block></block><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><block var="theImage"/><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doTellTo"><block var="theImage"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l>0</l><l>0</l></block></script><list></list></block><list><block s="reportListItem"><l>20</l><block s="reportGet"><l><option>costumes</option></l></block></block></list></block><block s="doSetVar"><l>theWindow</l><block s="newClone"><l><option>myself</option></l></block></block><custom-block s="configure %txt as a window to ImagePad %s"><block var="theWindow"/><block var="theImage"/></custom-block><custom-block s="%txt %txt - tool for window %s size %n"><l>remove</l><l>line</l><block var="theWindow"/><l>15</l></custom-block><custom-block s="%txt %txt - tool for window %s size %n"><l>create</l><l>line</l><block var="theWindow"/><l>15</l></custom-block><block s="doTellTo"><l>TheLineTool</l><block s="reifyScript"><script><block s="bubble"><l>Move the LineTool or its ends with the mouse. Shift-click on the yellow LineTool to get data.</l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="Example: get brightness data with SquareTools" type="command" category="6. ImagePad for image operations"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>theImage</l><l>theWindow</l></list></block><block s="doSwitchToCostume"><l>HilbertoLeft</l></block><block s="bubble"><l></l></block><block s="doSetVar"><l>theImage</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><l>TheImage</l></custom-block></block><custom-block s="configure %s as an ImagePad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><block var="theImage"/><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><block s="doTellTo"><block var="theImage"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l>0</l><l>0</l></block></script><list></list></block><list><block s="reportListItem"><l>20</l><block s="reportGet"><l><option>costumes</option></l></block></block></list></block><block s="doSetVar"><l>theWindow</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><l>TheWindow</l></custom-block></block><custom-block s="configure %txt as a window to ImagePad %s"><block var="theWindow"/><block var="theImage"/></custom-block><block s="doTellTo"><block var="theImage"/><block s="reifyScript"><script><custom-block s="import image data from %s %br to myData of %s and set properties"><l>currentCostume</l><block var="theImage"/></custom-block></script><list></list></block><list></list></block><block s="gotoXY"><l>-200</l><l>150</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="bubble"><l>Activate SquareTools by mouseclick, enlarge or reduce activated SquareTools by +/- keys, move them by arrow keys. Get data by shift-click on a SquareTool.</l></block><custom-block s="%txt %txt - tool for window %s size %n"><l>create</l><l>a square</l><l>TheWindow</l><l>50</l></custom-block><block s="doTellTo"><block s="reportListItem"><l>1</l><custom-block s="get %txt of sprite %s"><l>mySquareTools</l><block var="theWindow"/></custom-block></block><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block></script><list></list></block><list></list></block><custom-block s="%txt %txt - tool for window %s size %n"><l>create</l><l>a square</l><l>TheWindow</l><l>50</l></custom-block><custom-block s="%txt %txt - tool for window %s size %n"><l>create</l><l>a square</l><l>TheWindow</l><l>50</l></custom-block></script></block-definition><block-definition s="Example: graphical noise" type="command" category="looks" space="true"><comment x="0" y="0" w="172.8603515625" collapsed="false">Random graphic, inspired by &quot;Merzbild 1a - the psychiatrist&quot; &#xD;painted by Kurt Schwitters.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>stamp</l></list></block><custom-block s="start SciSnap! stage: %n X %n"><l>800</l><l>600</l></custom-block><block s="hide"></block><custom-block s="show global message title: %txt %br message: %txt"><l>headline</l><l>Load your favorite picture as a background for the stage! Then press the space bar. Stop image creation with mouseclick.</l></custom-block><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>space</option></l></block></block><block s="doSetVar"><l>stamp</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>duplicate</l><l>thisSprite</l><l>Hilberto</l></custom-block></block><block s="doTellTo"><block var="stamp"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><list><custom-block s="new costume size: %n %n %s"><block s="reportRandom"><l>20</l><l>50</l></block><block s="reportRandom"><l>20</l><l>50</l></block><l>lightGray</l></custom-block></list></block><block s="doUntil"><block s="reportMouseDown"></block><script><block s="doTellTo"><block var="stamp"/><block s="reifyScript"><script><block s="gotoXY"><block s="reportRandom"><l>-400</l><l>400</l></block><block s="reportRandom"><l>-300</l><l>300</l></block></block></script><list></list></block><list></list></block><block s="doTellTo"><l>Stage</l><block s="reifyScript"><script><block s="doPasteOn"><l></l></block></script><list></list></block><list><block var="stamp"/></list></block><block s="doTellTo"><block var="stamp"/><block s="reifyScript"><script><block s="turnLeft"><block s="reportRandom"><l>1</l><l>360</l></block></block><block s="forward"><block s="reportRandom"><l>5</l><l>20</l></block></block><block s="doPasteOn"><l>Stage</l></block></script><list></list></block><list></list></block></script></block><custom-block s="remove sprite %s"><block var="stamp"/></custom-block><block s="doSwitchToCostume"><l>HilbertoLeft</l></block><block s="gotoXY"><l>350</l><l>-250</l></block><block s="show"></block></script></block-definition><block-definition s="Example: create dynamically a new sprite $nl that responds to three events" type="command" category="0. My own blocks" space="true"><comment x="0" y="0" w="144.4999999999999" collapsed="false">The reaction of the sprite must be defined in the block &quot;let &lt;sprite&gt; respond to &lt;event&gt;&quot;.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>newSprite</l></list></block><block s="doSetVar"><l>newSprite</l><custom-block s="create a %txt ( of %s ) %br with name %txt"><l>newSprite</l><l>thisSprite</l><l>TheNewSprite</l><comment w="90" collapsed="false">create a new sprite</comment></custom-block></block><block s="doTellTo"><block var="newSprite"/><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="gotoXY"><l>0</l><l>0</l></block></script><list></list></block><list><block s="reportListItem"><l>5</l><block s="reportAskFor"><l>Hilberto</l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costumes</option></l></block></autolambda><list></list></block><list></list></block></block></list><comment w="90" collapsed="false">choose costume</comment></block><custom-block s="install eventhandler %s for %s"><l>receiveKey +</l><block var="newSprite"/><comment w="119.189453125" collapsed="false">add three event handler</comment></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveKey -</l><block var="newSprite"/></custom-block><custom-block s="install eventhandler %s for %s"><l>receiveInteraction clicked</l><block var="newSprite"/></custom-block><block s="doTellTo"><block var="newSprite"/><block s="reifyScript"><script><block s="bubble"><l></l></block></script><list></list></block><list><l>Let me grow/shrink by pressing the +/- buttons or delete me by mouse click.</l></list><comment w="90" collapsed="false">choose costume</comment></block></script></block-definition><block-definition s="variadic position %&apos;position&apos; $arrowRightOutline position" type="reporter" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="126.00000000000011" collapsed="false">Converts a variadic position parameter into a position.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="position"/></block><l>2</l></list></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="position"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="position"/></block><l><option>number</option></l></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="position"/></block><block s="reportListItem"><l>2</l><block var="position"/></block></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: position or two numbers expected!</l><l>variadic position --&gt; position</l></custom-block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="position"/></block><l>1</l></list></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="position"/></block><l><option>list</option></l></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="position"/></block></block><l>2</l></list></block><block s="reportIsA"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="position"/></block></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="position"/></block></block><l><option>number</option></l></block></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="position"/></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: position or two numbers expected!</l><l>variadic position --&gt; position</l></custom-block></script></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: position or two numbers expected!</l><l>variadic position --&gt; position</l></custom-block></script></block></script></block></script></block-definition><block-definition s="variadic color %&apos;color&apos; $arrowRightOutline RGB(A)-value" type="reporter" category="1. SciSnap! globals"><comment x="0" y="0" w="152.85714285714297" collapsed="false">Converts a variadic color parameter into a RGB(A)-value.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>3</l></list></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="color"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="color"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="color"/></block><l><option>number</option></l></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="color"/></block><block s="reportListItem"><l>2</l><block var="color"/></block><block s="reportListItem"><l>3</l><block var="color"/></block></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: three RGB-values expected!</l><l>variadic color --&gt; RGB(A) value</l></custom-block></script></block></script><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>4</l></list></block><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="color"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="color"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="color"/></block><l><option>number</option></l></block><block s="reportIsA"><block s="reportListItem"><l>4</l><block var="color"/></block><l><option>number</option></l></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="color"/></block><block s="reportListItem"><l>2</l><block var="color"/></block><block s="reportListItem"><l>3</l><block var="color"/></block><block s="reportListItem"><l>4</l><block var="color"/></block></list></block></block></script><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: four RGBA-values expected!</l><l>variadic color --&gt; RGB(A) value</l></custom-block></script></block></script><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>1</l></list></block><script><block s="doSetVar"><l>color</l><block s="reportListItem"><l>1</l><block var="color"/></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="color"/><l><option>number</option></l></block><block s="reportIsA"><block var="color"/><l><option>text</option></l></block></list></block><script><block s="doReport"><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block></block></script><list><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>3</l></list></block><script><block s="doReport"><custom-block s="%s as %txt"><block var="color"/><l>RGB-value</l></custom-block></block></script><script><block s="doReport"><custom-block s="%s as %txt"><block var="color"/><l>RGBA-value</l></custom-block></block></script></block></script><l><bool>true</bool></l><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: RGB(A)-values, color number, or color name expected!</l><l>variadic color --&gt; RGB(A) value</l></custom-block></script></list></block></script><l><bool>true</bool></l><script><block s="doReport"><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></block></script></list></block></script></block-definition><block-definition s="translate %&apos;text&apos;" type="reporter" category="1. SciSnap! globals" space="true"><comment x="0" y="0" w="90" collapsed="false">Currently not used.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">any text</input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="apply Wolfram automaton no %&apos;no&apos; to grid %&apos;grid&apos; $nl with colors for 0: %&apos;color0&apos; and 1: %&apos;color1&apos;" type="reporter" category="9. GridPad for grid operations" space="true"><comment x="0" y="0" w="237" collapsed="false">Applies a Wolfram Cellular Automaton to a grid.</comment><header></header><code></code><translations></translations><inputs><input type="%n">30</input><input type="%l"></input><input type="%n">3</input><input type="%n">1</input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="grid"/><l>matrix</l></custom-block></block><script><block s="doReport"><l>ERROR: grid expected!</l></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>SciS_applyWolframAutomatonToAgridOnGridPad(no,grid,color0,color1)</l><list><block var="no"/><block var="grid"/><block var="color0"/><block var="color1"/></list></block></block></script></block-definition><block-definition s="is %&apos;set&apos; numerical?" type="predicate" category="2. Math tools"><comment x="0" y="0" w="114.66666666666669" collapsed="false">Reports whether the set is numerical or not.</comment><header></header><code></code><translations></translations><inputs><input type="%s">this set</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><custom-block s="is %s a %txt"><block var="set"/><l>set</l></custom-block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: parameter is not a set!</l><l>is set numerical?</l></custom-block></script><list></list></block><block s="doReport"><block s="reportListItem"><l>2</l><block var="set"/></block></block></script></block></script></block-definition><block-definition s="install eventhandler %&apos;event&apos; for %&apos;sprite&apos;" type="command" category="control"><comment x="0" y="0" w="117.59999999999998" collapsed="false">Installs an event handling method for a sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">receiveGo<options>receiveGo&#xD;receiveKey enter&#xD;receiveKeyspace&#xD;receiveKey +&#xD;receiveKey -&#xD;receiveKey up arrow&#xD;receiveKey down arrow&#xD;receiveKey left arrow&#xD;receiveKey right arrow&#xD;receiveInteraction clicked&#xD;receiveInteraction pressed&#xD;receiveInteraction mouse-entered&#xD;receiveInteraction mouse-departed&#xD;receiveInteraction scrolled up&#xD;receiveInteraction scrolleddown&#xD;receiveMessage</options></input><input type="%s">thisSprite<options>thisSprite&#xD;theStage&#xD;anotherSprite</options></input></inputs><script><block s="doDeclareVariables"><list><l>target</l><l>caller</l><l>xml</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>target</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="sprite"/><l>thisSprite</l></list></block><block s="reportObject"><l><option>myself</option></l></block><block s="reportObject"><block var="sprite"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="target"/><l><option>sprite</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: sprite required!</l><l>install eventhandler for ...</l></custom-block></script><list></list></block><block s="doSetVar"><l>caller</l><block s="reportGet"><l><option>self</option></l></block></block><block s="doSetVar"><l>xml</l><block s="reportJoinWords"><list><l>&lt;script app="Snap! 9.0, https://snap.berkeley.edu" version="2"&gt;&lt;script&gt;&lt;block s="</l></list></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>Go</l><block var="event"/></custom-block><l>0</l></list></block><script><block s="doSetVar"><l>xml</l><block s="reportJoinWords"><list><block var="xml"/><l>receiveGo"&gt;</l></list></block></block></script><list><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>Key</l><block var="event"/></custom-block><l>0</l></list></block><script><block s="doSetVar"><l>xml</l><block s="reportJoinWords"><list><block var="xml"/><l>receiveKey"&gt;&lt;l&gt;&lt;option&gt;</l><custom-block s="substring of %txt from %n to %n"><block var="event"/><l>12</l><block s="reportTextAttribute"><l><option>length</option></l><block var="event"/></block></custom-block><l>&lt;/option&gt;&lt;/l&gt;&lt;list&gt;&lt;/list&gt;</l></list></block></block></script><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>receiveMessage</l><block var="event"/></custom-block><l>0</l></list></block><script><block s="doSetVar"><l>xml</l><block s="reportJoinWords"><list><block var="xml"/><l>receiveMessage"&gt;&lt;l&gt;&lt;option&gt;any message&lt;/option&gt;&lt;/l&gt;&lt;list&gt;&lt;/list&gt;</l></list></block></block></script><block s="reportVariadicGreaterThan"><list><custom-block s="index of %txt in %txt"><l>receiveInteraction</l><block var="event"/></custom-block><l>0</l></list></block><script><block s="doSetVar"><l>xml</l><block s="reportJoinWords"><list><block var="xml"/><l>receiveInteraction"&gt;&lt;l&gt;&lt;option&gt;</l><custom-block s="substring of %txt from %n to %n"><block var="event"/><l>20</l><block s="reportTextAttribute"><l><option>length</option></l><block var="event"/></block></custom-block><l>&lt;/option&gt;&lt;/l&gt;&lt;list&gt;&lt;/list&gt;</l></list></block></block></script></list></block><block s="doSetVar"><l>xml</l><block s="reportJoinWords"><list><block var="xml"/><l>&lt;/block&gt;&lt;custom-block s="let %s respond to %s"&gt;&lt;block s="reportObject"&gt;&lt;l&gt;&lt;option&gt;myself&lt;/option&gt;&lt;/l&gt;&lt;/block&gt;&lt;l&gt;</l><block var="event"/><l>&lt;/l&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;/script&gt;</l></list></block></block><custom-block s="select sprite %s"><block var="target"/></custom-block><block s="doRun"><block s="reifyScript"><script><block s="doApplyExtension"><l>SciS_installEventHandler(data)</l><list><l></l></list></block></script><list></list></block><list><block var="xml"/></list></block><custom-block s="select sprite %s"><block var="caller"/></custom-block></script></block></script></block-definition><block-definition s="Example: diffusion" type="command" category="9. GridPad for grid operations" space="true"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as an GridPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>400</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set GridPad grid properties on %s %br horizontal cells: %n vertical cells: %n %br initial cell colornumber: %n with grid lines? %b"><l>thisSprite</l><l>400</l><l>400</l><l>4</l><l><bool>false</bool></l></custom-block><custom-block s="fill cells on %s range x: %n %s y: %n %s %br randomly with color numbers %mult%n"><l>thisSprite</l><l>150</l><l>250</l><l>150</l><l>250</l><list><l>2</l></list></custom-block><custom-block s="add grid %s on %s"><l>myData</l><l>thisSprite</l></custom-block><block s="doForever"><script><block s="doSetVar"><l>myData</l><custom-block s="all cells on %s as torus? %b swapped %n times %br randomly inside radius %n range x: %n %s y: %n %s"><l>thisSprite</l><l><bool>true</bool></l><l>1</l><l>5</l><l>1</l><l>xMax</l><l>1</l><l>yMax</l></custom-block></block><custom-block s="add grid %s on %s"><l>myData</l><l>thisSprite</l></custom-block></script></block></script></block-definition><block-definition s="Example: Wolfram Automaton No. 30" type="command" category="9. GridPad for grid operations"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="configure %s as an GridPad width: %n height: %n %br color: %txt with close-button? %b left? %b size: %n"><l>thisSprite</l><l>400</l><l>300</l><l>lightGray</l><l><bool>false</bool></l><l><bool>false</bool></l><l>15</l></custom-block><custom-block s="set GridPad grid properties on %s %br horizontal cells: %n vertical cells: %n %br initial cell colornumber: %n with grid lines? %b"><l>thisSprite</l><l>400</l><l>300</l><l>11</l><l><bool>false</bool></l></custom-block><custom-block s="set cell value on %s at %n %n to %n %br with grid lines? %b"><l>thisSprite</l><l>200</l><l>1</l><l>1</l><l><bool>false</bool></l></custom-block><custom-block s="add grid %s on %s"><custom-block s="apply Wolfram automaton no %n to grid %l %br with colors for 0: %n and 1: %n"><l>30</l><block var="myData"/><l>11</l><l>1</l></custom-block><l>thisSprite</l></custom-block></script></block-definition><block-definition s="extract pure text from %&apos;text&apos;" type="reporter" category="operators" space="true"><comment x="0" y="0" w="250.66666666666663" collapsed="false">Extracts the words in upper case from a text, e.g. for statistical analysis or cryptographic purposes. </comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>c</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>text</l><block s="reportTextAttribute"><l><option>upper case</option></l><block var="text"/></block></block><block s="doSetVar"><l>text</l><custom-block s="replace %txt %txt with %txt in %txt"><l>all</l><l>Ä</l><l>AE</l><block var="text"/></custom-block></block><block s="doSetVar"><l>text</l><custom-block s="replace %txt %txt with %txt in %txt"><l>all</l><l>Ö</l><l>OE</l><block var="text"/></custom-block></block><block s="doSetVar"><l>text</l><custom-block s="replace %txt %txt with %txt in %txt"><l>all</l><l>Ü</l><l>UE</l><block var="text"/></custom-block></block><block s="doSetVar"><l>text</l><custom-block s="replace %txt %txt with %txt in %txt"><l>all</l><l>Ü</l><l>UE</l><block var="text"/></custom-block></block><block s="doSetVar"><l>result</l><l></l></block><block s="doFor"><l>i</l><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><script><block s="doSetVar"><l>c</l><block s="reportLetter"><block var="i"/><block var="text"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportUnicode"><block var="c"/></block><l>13</l></list></block><script><block s="doSetVar"><l>c</l><l> </l></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="c"/><l> </l></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block var="c"/><l>A</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block var="c"/><l>Z</l></list></block></list></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block var="c"/></list></block></block></script><list></list></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="prepare data für naive Bayes text classification $nl from text list of category 1 %&apos;textlist1&apos; $nl and text list of other categories %&apos;textlist2&apos;" type="reporter" category="operators"><comment x="0" y="0" w="224.00000000000003" collapsed="false">Reports a list [p(category1), p(category2), LagrangeSmoothing1, LagrangeSmoothing2,  probabilities1, probabilities2) for naive Bayes classification of texts.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>pCat1</l><l>pCat2</l><l>text1</l><l>text2</l><l>total vocabulary</l><l>vocabulary1</l><l>vocabulary2</l><l>lengthTotalVocabulary</l><l>lengthVocabulary1</l><l>lengthVocabulary2</l><l>conditional probabilities1</l><l>conditional probabilities2</l><l>countedWords1</l><l>countedWords2</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="textlist1"/></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="textlist2"/></block><l>0</l></list></block></list></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>two lists of texts necessary!</l><l>prepare data for Bayes classification</l></custom-block></script><list></list></block><block s="doSetVar"><l>pCat1</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="textlist1"/></block><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="textlist1"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="textlist2"/></block></list></block></block></block><block s="doSetVar"><l>pCat2</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="textlist2"/></block><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="textlist1"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="textlist2"/></block></list></block></block></block><block s="doSetVar"><l>text1</l><block s="reportListItem"><l>1</l><block var="textlist1"/></block></block><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="textlist1"/></block><script><block s="doSetVar"><l>text1</l><block s="reportJoinWords"><list><block var="text1"/><l> </l><block s="reportListItem"><block var="i"/><block var="textlist1"/></block></list></block></block></script></block><block s="doSetVar"><l>text2</l><block s="reportListItem"><l>1</l><block var="textlist2"/></block></block><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="textlist2"/></block><script><block s="doSetVar"><l>text2</l><block s="reportJoinWords"><list><block var="text2"/><l> </l><block s="reportListItem"><block var="i"/><block var="textlist2"/></block></list></block></block></script></block><block s="doSetVar"><l>text1</l><custom-block s="extract pure text from %txt"><block var="text1"/></custom-block></block><block s="doSetVar"><l>text2</l><custom-block s="extract pure text from %txt"><block var="text2"/></custom-block></block><block s="doSetVar"><l>countedWords1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><l/></block></block><l>0</l></list></block></autolambda><list></list></block><custom-block s="count values in %s"><block s="reportTextSplit"><block var="text1"/><l> </l></block></custom-block></block></block><block s="doSetVar"><l>countedWords2</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><l/></block></block><l>0</l></list></block></autolambda><list></list></block><custom-block s="count values in %s"><block s="reportTextSplit"><block var="text2"/><l> </l></block></custom-block></block></block><block s="doSetVar"><l>vocabulary1</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="countedWords1"/><l><bool>true</bool></l></custom-block></block><block s="doSetVar"><l>vocabulary2</l><custom-block s="%s %s of %s with first item? %b"><l>column</l><l>1</l><block var="countedWords2"/><l><bool>true</bool></l></custom-block></block><block s="doSetVar"><l>total vocabulary</l><custom-block s="sort %s with predicate %predRing"><custom-block s="%s without duplicates"><block s="reportConcatenatedLists"><list><block var="vocabulary1"/><block var="vocabulary2"/></list></block></custom-block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></block><block s="doSetVar"><l>lengthTotalVocabulary</l><block s="reportListAttribute"><l><option>length</option></l><block var="total vocabulary"/></block></block><block s="doSetVar"><l>lengthVocabulary1</l><block s="reportListAttribute"><l><option>length</option></l><block var="vocabulary1"/></block></block><block s="doSetVar"><l>lengthVocabulary2</l><block s="reportListAttribute"><l><option>length</option></l><block var="vocabulary2"/></block></block><block s="doSetVar"><l>conditional probabilities1</l><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="value"/></block><l>1</l></list></block><block s="reportVariadicSum"><list><block var="lengthVocabulary1"/><block var="lengthTotalVocabulary"/></list></block></block></list></block></block></script><list><l>value</l></list></block><block var="countedWords1"/></block></block><block s="doSetVar"><l>conditional probabilities2</l><block s="reportMap"><block s="reifyReporter"><script><block s="doReport"><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="value"/></block><l>1</l></list></block><block s="reportVariadicSum"><list><block var="lengthVocabulary2"/><block var="lengthTotalVocabulary"/></list></block></block></list></block></block></script><list><l>value</l></list></block><block var="countedWords2"/></block></block><block s="doReport"><block s="reportNewList"><list><block var="pCat1"/><block var="pCat2"/><block s="reportQuotient"><l>1</l><block s="reportVariadicSum"><list><block var="lengthVocabulary1"/><block var="lengthTotalVocabulary"/></list></block></block><block s="reportQuotient"><l>1</l><block s="reportVariadicSum"><list><block var="lengthVocabulary2"/><block var="lengthTotalVocabulary"/></list></block></block><block var="conditional probabilities1"/><block var="conditional probabilities2"/></list></block></block></script></block></script><scripts><script x="1405.4332031249996" y="435.21666666666687"><block var="text2"/></script></scripts></block-definition><block-definition s="naive Bayes classification of %&apos;text&apos; $nl based on trained data %&apos;trained data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">this text</input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>wordlist</l><l>result1</l><l>result2</l><l>factor</l><l>LagrangeSmoothing1</l><l>LagrangeSmoothing2</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>wordlist</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></autolambda><list></list></block><block s="reportTextSplit"><custom-block s="extract pure text from %txt"><block var="text"/></custom-block><l> </l></block></block></block><block s="doSetVar"><l>result1</l><block s="reportListItem"><l>1</l><block var="trained data"/></block></block><block s="doSetVar"><l>result2</l><block s="reportListItem"><l>2</l><block var="trained data"/></block></block><block s="doForEach"><l>word</l><block var="wordlist"/><script><block s="doSetVar"><l>factor</l><block s="reportListItem"><block var="word"/><block s="reportListItem"><l>5</l><block var="trained data"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="factor"/><l><option>number</option></l></block></block><script><block s="doSetVar"><l>factor</l><block s="reportListItem"><l>3</l><block var="trained data"/></block></block></script><list></list></block><block s="doSetVar"><l>result1</l><block s="reportVariadicProduct"><list><block var="result1"/><block var="factor"/></list></block></block><block s="doSetVar"><l>factor</l><block s="reportListItem"><block var="word"/><block s="reportListItem"><l>6</l><block var="trained data"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="factor"/><l><option>number</option></l></block></block><script><block s="doSetVar"><l>factor</l><block s="reportListItem"><l>4</l><block var="trained data"/></block></block></script><list></list></block><block s="doSetVar"><l>result2</l><block s="reportVariadicProduct"><list><block var="result2"/><block var="factor"/></list></block></block></script></block><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block var="result1"/><block s="reportVariadicSum"><list><block var="result1"/><block var="result2"/></list></block></block><block s="reportQuotient"><block var="result2"/><block s="reportVariadicSum"><list><block var="result1"/><block var="result2"/></list></block></block></list></block></block></script></block></script></block-definition><block-definition s="list %&apos;list&apos; from item %&apos;start&apos; to item %&apos;end&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">1</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="list"/><l><option>list</option></l></block></block><script><custom-block s="report SciSnap! error %txt %br from %txt and stop all scripts"><l>ERROR: list required!</l><l>part of list</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block><script><block s="doAddToList"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="remove all custom blocks in %&apos;category&apos;" type="command" category="control" space="true"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_dynamicMenu</options></input></inputs><script><block s="doForEach"><l>custom block</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportListIndex"><block var="category"/><block s="reportGet"><l><option>categories</option></l></block></block></list></block><block s="reportBlockAttribute"><l><option>custom?</option></l><block s="reifyReporter"><script></script><list></list></block></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>blocks</option></l></block></block><script><block s="doDeleteBlock"><block var="custom block"/></block></script></block></script><scripts><script x="10" y="246.1666666666667"><block s="receiveSlotEvent"><l>category</l><l><option>menu</option></l></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportListIndex"><block var="cat"/><block s="reportGet"><l><option>categories</option></l></block></block></list></block><block s="reportBlockAttribute"><l><option>custom?</option></l><block s="reifyReporter"><script></script><list></list></block></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>blocks</option></l></block></block></block></block></autolambda><list><l>cat</l></list></block><block s="reportGet"><l><option>categories</option></l></block></block></block></script></scripts></block-definition><block-definition s="%&apos;selection&apos; category %&apos;catName&apos; color %&apos;r&apos; %&apos;g&apos; %&apos;b&apos;" type="command" category="control"><comment x="0" y="0" w="220.83333333333334" collapsed="false">You can use this block to delete or create your own categories. For security reasons, JavaScript must be activated for this.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true" initial="1">remove<options>remove&#xD;create&#xD;hide all blocks&#xD;show all blocks</options></input><input type="%s" readonly="true" initial="1"><options>§_dynamicMenu</options></input><input type="%n" initial="1">0</input><input type="%n" initial="1">116</input><input type="%n" initial="1">143</input></inputs><script><block s="doDeclareVariables"><list><l>catNr</l></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selection"/><l>remove</l></list></block><script><block s="doSetVar"><l>catNr</l><block s="reportListIndex"><block var="catName"/><block s="reportGet"><l><option>categories</option></l></block></block></block><block s="doIf"><block s="reportVariadicGreaterThanOrEquals"><list><block var="catNr"/><l>11</l></list></block><script><custom-block s="remove all custom blocks in %s"><block var="catName"/></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>name</l></list><l>var ide = this.parentThatIsA(IDE_Morph);&#xD;ide.deletePaletteCategory(name);</l></block><list><block var="catName"/></list></block></script><list><l><bool>true</bool></l><script><block s="doSayFor"><l>ERROR: unknown category!</l><l>2</l></block></script></list></block></script><list><block s="reportVariadicEquals"><list><block var="selection"/><l>create</l></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l><l>r</l><l>g</l><l>b</l></list><l>var ide = this.parentThatIsA(IDE_Morph), color = new Color(r,g,b);&#xD;ide.addPaletteCategory(name,color);</l></block><list><l></l><block var="r"/><block var="g"/><block var="b"/></list></block></script><block s="reportVariadicEquals"><list><block var="selection"/><l>hide all blocks</l></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>selection</l><l>category</l></list><l>var ide = this.parentThatIsA(IDE_Morph), blocks = this.allPaletteBlocks(),i, operation;&#xD;i = 0;&#xD;while (i &lt; blocks.length){&#xD;  if(category === blocks[i].category) this.changeBlockVisibility(blocks[i],true,true);&#xD;  i++;&#xD;  } &#xD;ide.flushBlocksCache();&#xD;ide.refreshPalette();&#xD;ide.categories.refreshEmpty();</l></block><list><block var="selection"/><block var="catName"/></list></block></script><block s="reportVariadicEquals"><list><block var="selection"/><l>show all blocks</l></list></block><script><block s="doRun"><block s="reportJSFunction"><list><l>selection</l><l>category</l></list><l>var ide = this.parentThatIsA(IDE_Morph), blocks = this.allPaletteBlocks(),i, operation;&#xD;i = 0;&#xD;while (i &lt; blocks.length){&#xD;  if(category === blocks[i].category) this.changeBlockVisibility(blocks[i],false,true);&#xD;  i++;&#xD;  } &#xD;ide.flushBlocksCache();&#xD;ide.refreshPalette();&#xD;ide.categories.refreshEmpty();</l></block><list><block var="selection"/><block var="catName"/></list></block></script></list></block></script><scripts><script x="9.864908854166952" y="851.75"><block s="receiveSlotEvent"><l>catName</l><l><option>menu</option></l></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>category</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportListIndex"><block var="cat"/><block s="reportGet"><l><option>categories</option></l></block></block></list></block><block s="reportBlockAttribute"><l><option>custom?</option></l><block s="reifyReporter"><script></script><list></list></block></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>blocks</option></l></block></block></block></block></autolambda><list><l>cat</l></list></block><block s="reportGet"><l><option>categories</option></l></block></block></block></script></scripts></block-definition><block-definition s="%&apos;selection&apos; block %&apos;block&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true" initial="1">hide<options>hide&#xD;show</options></input><input type="%repRing" initial="1"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>selector</l><l>selection</l></list><l>var ide = this.parentThatIsA(IDE_Morph), blocks = this.allPaletteBlocks(),i, operation;&#xD;operation = selection === &apos;hide&apos;;&#xD;i = 0;&#xD;while (i &lt; blocks.length){&#xD;  if(selector === blocks[i].selector) this.changeBlockVisibility(blocks[i],operation,true);&#xD;  i++;&#xD;  } &#xD;ide.flushBlocksCache();&#xD;ide.refreshPalette();&#xD;ide.categories.refreshEmpty();</l></block><list><block s="reportBlockAttribute"><l><option>selector</option></l><block var="block"/></block><block var="selection"/></list></block></script></block-definition><block-definition s="Example: configure SciSnap! as a MathTool" type="command" category="0. My own blocks" space="true"><comment x="0" y="0" w="248.94856770833334" collapsed="false">A simple example for a SciSnap!-configuration: some categories are removed and some blocks are hidden.</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="%txt category %s color %n %n %n"><l>remove</l><l>4. SQL tools</l><l>0</l><l>116</l><l>143</l></custom-block><custom-block s="%txt category %s color %n %n %n"><l>remove</l><l>6. ImagePad for image operations</l><l>0</l><l>116</l><l>143</l></custom-block><custom-block s="%txt category %s color %n %n %n"><l>remove</l><l>7. GraphPad for graph operations</l><l>0</l><l>116</l><l>143</l></custom-block><custom-block s="%txt category %s color %n %n %n"><l>remove</l><l>8. NNPad for neural networks</l><l>0</l><l>116</l><l>143</l></custom-block><custom-block s="%txt category %s color %n %n %n"><l>remove</l><l>9. GridPad for grid operations</l><l>0</l><l>116</l><l>143</l></custom-block><custom-block s="%txt block %repRing"><l>hide</l><block s="reifyReporter"><script><block s="doDefineBlock"><l>block</l><l></l><block s="reifyReporter"><script></script><list></list></block></block></script><list></list></block></custom-block><custom-block s="%txt block %repRing"><l>hide</l><block s="reifyReporter"><script><block s="doDeleteBlock"><block s="reifyReporter"><script></script><list></list></block></block></script><list></list></block></custom-block><custom-block s="%txt block %repRing"><l>hide</l><block s="reifyReporter"><script><block s="doSetBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block><l></l></block></script><list></list></block></custom-block><custom-block s="%txt block %repRing"><l>hide</l><block s="reifyReporter"><autolambda><block s="reportBlockAttribute"><l><option>definition</option></l><block s="reifyReporter"><script></script><list></list></block></block></autolambda><list></list></block></custom-block><custom-block s="%txt block %repRing"><l>hide</l><block s="reifyReporter"><autolambda><block s="reportEnvironment"><l><option>script</option></l></block></autolambda><list></list></block></custom-block><custom-block s="%txt block %repRing"><l>hide</l><block s="reifyReporter"><script><block s="doSetSlot"><l></l><l></l></block></script><list></list></block></custom-block></script></block-definition><block-definition s="script %&apos;script&apos;" type="reporter" category="AlonzoAPI"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doReport"><block var="script"/></block></script></block-definition><block-definition s="%&apos;block&apos; block" type="reporter" category="AlonzoAPI"><header></header><code></code><translations></translations><inputs><input type="%cmdRing" initial="1"></input></inputs><script><block s="doReport"><block var="block"/></block></script></block-definition><block-definition s="parse code %&apos;code&apos; to blocks" type="reporter" category="operators"><comment x="0" y="0" w="104" collapsed="false">turn LISP syntax text code into blocks</comment><header></header><code></code><translations>de:verwandle Code _ in Blöcke&#xD;ca:blocs del codi textual _&#xD;</translations><inputs><input type="%code" initial="1">(+ 3 4)</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportTextSplit"><block var="code"/><l><option>blocks</option></l></block></block></block></script></block-definition><block-definition s="encode blocks %&apos;script&apos; to text %&apos;lines&apos; pretty" type="reporter" category="operators"><comment x="0" y="0" w="106" collapsed="false">turn blocks into LISP syntax text code.</comment><header></header><code></code><translations>de:verwandle Blöcke _ in Code _ formatiert&#xD;ca:codi textual dels blocs _ formatats _&#xD;</translations><inputs><input type="%repRing" initial="1"></input><input type="%b" initial="1">true</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l></l><block s="reportTextSplit"><block var="script"/><l><option>blocks</option></l></block></block></autolambda><list></list></block><list><block s="reportIfElse"><block var="lines"/><l>lines</l><l>text</l></block></list></block></block></script></block-definition><block-definition s="object %&apos;fields&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:Objekt _&#xD;</translations><inputs><input type="%group%t%s" irreplaceable="true" expand="$nl&#xD;:" initial="2" min="2">$_field&#xD;$_thing</input></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doSetVar"><l>data</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doForEach"><l>assoc</l><block var="fields"/><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="assoc"/></block><block var="data"/><block s="reportListItem"><l>2</l><block var="assoc"/></block></block><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><block s="reportListItem"><l>1</l><block var="assoc"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="assoc"/></block><block var="data"/></block></list></block></script></block></script></block><block s="doReport"><block var="data"/></block></script></block-definition><block-definition s="clone %&apos;parent&apos; %&apos;fields&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:klone _ _&#xD;</translations><inputs><input type="%l" initial="1"></input><input type="%group%upvar%s" irreplaceable="true" expand="$nl&#xD;:">$_field&#xD;$_thing</input></inputs><script><block s="doDeclareVariables"><list><l>data</l></list></block><block s="doSetVar"><l>data</l><custom-block s="object %group%t%s"><list><l>...</l><block var="parent"/></list></custom-block></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block var="fields"/></block></block><script><block s="doWarp"><script><block s="doForEach"><l>assoc</l><block var="fields"/><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="assoc"/></block><block var="data"/><block s="reportListItem"><l>2</l><block var="assoc"/></block></block><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><block s="reportListItem"><l>1</l><block var="assoc"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="assoc"/></block><block var="data"/></block></list></block></script></block></script></block></script><list></list></block><block s="doReport"><block var="data"/></block></script></block-definition><block-definition s="field %&apos;field&apos; of %&apos;object&apos; %&apos;inputs&apos;" type="reporter" category="lists" space="true"><header></header><code></code><translations>de:Feld _ von _ _&#xD;</translations><inputs><input type="%anyUE" initial="1"><options>§_dynamicMenu</options></input><input type="%l" initial="1"></input><input type="%mult%s" expand="$_with inputs"></input></inputs><script><block s="doDeclareVariables"><list><l>syntax</l><l>value</l></list></block><block s="doSetVar"><l>syntax</l><block s="reportTextSplit"><block var="field"/><l><option>blocks</option></l></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="syntax"/></block><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block></list></block><block s="reportListItem"><l>2</l><block var="syntax"/></block><block s="evaluate"><block var="field"/><list></list></block></block><block var="object"/></block></block><block s="doIf"><block s="reportIsA"><block var="value"/><l><option>script</option></l></block><script><block s="doSetVar"><l>syntax</l><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportTextSplit"><block var="value"/><l><option>blocks</option></l></block></block></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="syntax"/></block><l><option>command</option></l></block></block><block s="reportListContainsItem"><block var="syntax"/><block s="reifyScript"><script><block s="doReport"><l></l></block></script><list></list></block></block></list></block><script><block s="doReport"><block s="evaluate"><block var="value"/><block var="inputs"/></block></block></script><list></list></block><block s="doRun"><block var="value"/><block var="inputs"/></block><block s="doReport"><l></l></block></script><list></list></block><block s="doReport"><block var="value"/></block></script><scripts><script x="10" y="467.49999999999994"><block s="receiveSlotEvent"><l>field</l><l><option>menu</option></l></block><block s="doReport"><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportListAttribute"><l><option>uniques</option></l><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><l/></block></block><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l><option>parent</option></l><l/></block><l><option>list</option></l></block><block s="evaluate"><block s="reportEnvironment"><l><option>script</option></l></block><list><block s="reportListItem"><l><option>parent</option></l><l/></block></list></block><block s="reportNewList"><list></list></block></block></list></block></autolambda><list></list></block><list><block var="object"/></list></block></block></block></block></script><script x="10" y="709.8333333333335"><block s="receiveSlotEvent"><l>field</l><l><option>edited</option></l></block><block s="doDeclareVariables"><list><l>value</l></list></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block s="evaluate"><block var="field"/><list></list></block><block var="object"/></block></block><block s="doSetSlot"><l>inputs</l><block s="reportReshape"><block var="inputs"/><list><block s="reportIfElse"><block s="reportIsA"><block var="value"/><l><option>script</option></l></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><l/></block><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block s="reportListItem"><l>1</l><l/></block><l><option>blocks</option></l></block></block></block></autolambda><list></list></block><list><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><l/></block><l><option>list</option></l></block><block s="reportListItem"><l>1</l><l/></block><l></l></block></autolambda><list></list></block><list><block s="reportTextSplit"><block var="value"/><l><option>blocks</option></l></block></list></block></list></block><l>0</l></block></list></block></block></script></scripts></block-definition><block-definition s="add %&apos;fields&apos; to %&apos;data&apos;" type="command" category="lists"><header></header><code></code><translations>de:füge _ zu _ hinzu&#xD;</translations><inputs><input type="%group%upvar%s" irreplaceable="true" expand="$nl&#xD;:" initial="2" min="2">$_field&#xD;$_thing</input><input type="%l" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>assoc</l><block var="fields"/><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="assoc"/></block><block var="data"/><block s="reportListItem"><l>2</l><block var="assoc"/></block></block><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><list><block s="reportListItem"><l>1</l><block var="assoc"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="assoc"/></block><block var="data"/></block></list></block></script></block></script></block></script></block-definition><block-definition s="when variable %&apos;variable&apos; changes" type="hat" category="variables"><variables><list struct="atomic" id="96225">old</list></variables><header></header><code></code><translations>de:Wenn Variable _ sich ändert&#xD;</translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportListContainsItem"><block s="reportAttributeOf"><l><option>variables</option></l><block s="reportEnvironment"><l><option>caller</option></l></block></block><block var="variable"/></block></block><block s="reportVariadicEquals"><list><block s="reportAttributeOf"><block var="variable"/><block s="reportEnvironment"><l><option>caller</option></l></block></block><block var="old"/></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>old</l><block s="reportAttributeOf"><block var="variable"/><block s="reportEnvironment"><l><option>caller</option></l></block></block></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="when %&apos;sensor&apos; &gt; %&apos;threshold&apos;" type="hat" category="sensing"><header></header><code></code><translations>de:Wenn _ &gt; _&#xD;</translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">$_volume<options>volume=$_volume&#xD;timer=$_timer</options></input><input type="%n" initial="1">5</input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="evaluate"><block s="reportListItem"><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="sensor"/></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>volume</l><block s="reifyReporter"><autolambda><block s="reportAudio"><l><option>volume</option></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><l>timer</l><block s="reifyReporter"><autolambda><block s="getTimer"></block></autolambda><list></list></block></list></block></list></block></block><list></list></block><block var="threshold"/></list></block></block></script></block-definition><block-definition s="when background switches to %&apos;costume name&apos;" type="hat" category="looks"><header></header><code></code><translations>de:Wenn Hintergrund zu _ wechselt&#xD;</translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1"><options>§_dynamicMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block var="costume name"/></list></block></block></script><scripts><script x="10" y="121.83333333333331"><block s="receiveSlotEvent"><l>costume name</l><l><option>menu</option></l></block><block s="doReport"><block s="reportGetImageAttribute"><l><option>name</option></l><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>costumes</option></l></block></autolambda><list></list></block><list></list></block></block></block></script></scripts></block-definition><block-definition s="has %&apos;test&apos; happened?" type="predicate" category="operators"><variables><list struct="atomic" id="96361">last state</list></variables><header></header><code></code><translations>de:hat _ sich ereignet?&#xD;</translations><inputs><input type="%b" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="test"/><block var="last state"/></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>last state</l><block var="test"/></block><block s="doReport"><block var="test"/></block></script></block-definition><block-definition s="has %&apos;value&apos; changed?" type="predicate" category="variables"><variables><list struct="atomic" id="96384">old</list></variables><header></header><code></code><translations>de:hat _ sich verändert?&#xD;</translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="value"/><block var="old"/></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>old</l><block var="value"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="when %&apos;value&apos; changes" type="hat" category="control"><variables><list struct="atomic" id="96409">old</list></variables><header></header><code></code><translations>de:Wenn _ sich ändert&#xD;</translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="value"/><block var="old"/></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>old</l><block var="value"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="run %&apos;action&apos; with continuation" type="command" category="control"><header></header><code></code><translations>de:führe _ mit Continuation aus&#xD;</translations><inputs><input type="%cmdRing" initial="1"></input></inputs><script><block s="doRun"><block var="action"/><list><block s="reportEnvironment"><l><option>continuation</option></l></block></list></block></script></block-definition><block-definition s="call %&apos;action&apos; with continuation" type="reporter" category="control"><header></header><code></code><translations>de:rufe _ mit Continuation auf&#xD;</translations><inputs><input type="%cmdRing" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><script><custom-block s="run %cmdRing with continuation"><block var="action"/></custom-block></script><list></list></block><list></list></block></block></script></block-definition><block-definition s="$flash assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block><block var="a-list"/></block></block></script><scripts><script x="19.33333333333337" y="108.22222222222223"><block s="doIf"><block s="reportVariadicEquals"><list><block var="a-list"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></script><list></list></block><block s="doReport"><custom-block s="$flash assoc %s %l"><block var="key"/><block s="reportCDR"><block var="a-list"/></block></custom-block></block></script></scripts></block-definition><block-definition s="$brush change pen %&apos;dimension&apos; by %&apos;amount&apos;" type="command" category="pen"><comment x="0" y="0" w="334" collapsed="false">Changes any pen property by the specified amount.  Some color scales can&apos;t be adjusted this way unless the color was first SET using that scale.&#xD;Vectors (e.g., RGB color as a list of three numbers) can be incremented&#xD;by a vector as the amount. X11/W3C names can&apos;t be incremented.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>color number&#xD;crayon&#xD;fair hue&#xD;&#126;1&#xD;size&#xD;transparency&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGBA vector&#xD;}&#xD;}</options></input><input type="%n"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doDeclareVariables"><list><l>old</l></list></block><block s="doSetVar"><l>old</l><custom-block s="$brush pen %s"><block var="dimension"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="old"/><l>not set</l></list></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Dimension </l><block var="dimension"/><l> not set.</l></list></block></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>crayon</l></list></block><script><custom-block s="✐ set pen to crayon %s %l"><block s="reportVariadicSum"><list><block var="old"/><block var="amount"/></list></block><l/></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>RGB hex</l></list></block><script><custom-block s="error %txt"><l>Sorry, I don&apos;t know how to add in hexadecimal.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="amount"/><l><option>number</option></l></block><script><custom-block s="$brush set pen %s to %s %mult%s"><block var="dimension"/><block s="reportVariadicSum"><list><block var="old"/><block var="amount"/></list></block><list><l></l></list></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="amount"/><l><option>list</option></l></block><script><custom-block s="$brush set pen %s to %s %mult%s"><block var="dimension"/><custom-block s="mmap %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><block var="old"/><block var="amount"/></list></custom-block><list><l></l></list></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><custom-block s="error %txt"><block s="reportJoinWords"><list><l>I don&apos;t know how to handle </l><block var="dimension"/></list></block></custom-block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportCallCC"><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></block></script></block-definition><block-definition s="✐ make fair hue table" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>hues</l><l>fair hues</l><l>hue table index</l><l>fair hue ceiling</l><l>bottom hue</l></list></block><block s="doSetVar"><l>hues</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block></block><block s="doFor"><l>fairhue10</l><l>1</l><l>1000</l><script><custom-block s="$brush set pen %s to %s %mult%s"><l>fair hue</l><block s="reportQuotient"><block var="fairhue10"/><l>10</l></block><list><l></l></list></custom-block><block s="doIf"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportVariadicProduct"><list><l>10</l><block s="getPenAttribute"><l><option>hue</option></l></block></list></block><block s="reportListItem"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="hues"/></block></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportVariadicProduct"><list><l>10</l><block s="getPenAttribute"><l><option>hue</option></l></block></list></block><block var="fairhue10"/></list></block><block var="hues"/></block></script><list></list></block></script></block><block s="doReplaceInList"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="hues"/></block><l>1000</l></block><block s="doSetVar"><l>hues</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportCONS"><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="hues"/></block></block><block s="reportListAttribute"><l><option>columns</option></l><block var="hues"/></block></block></block></block><block s="doSetVar"><l>fair hues</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block></block><block s="doFor"><l>hue10</l><l>1</l><l>1000</l><script><block s="doSetVar"><l>fair hue ceiling</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>2</l><l/></block><block var="hue10"/></list></block></autolambda><list></list></block><block var="hues"/></block></block><block s="doSetVar"><l>bottom hue</l><block s="reportListItem"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="fair hue ceiling"/></block><l>1</l></block><block var="hues"/></block></block><block s="doAddToList"><block s="reportNewList"><list><block var="hue10"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>3</l><block var="bottom hue"/></block><block s="reportQuotient"><block s="reportDifference"><block var="hue10"/><block s="reportListItem"><l>2</l><block var="bottom hue"/></block></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="fair hue ceiling"/></block><block s="reportListItem"><l>2</l><block var="bottom hue"/></block></block></block></list></block></list></block><block var="fair hues"/></block></script></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><l><option>last</option></l><block var="fair hues"/></block><l>1000</l></block><block s="doSetVar"><l>✐ fair hue table</l><block s="reportQuotient"><block var="fair hues"/><l>10</l></block></block></script></block-definition><block-definition s="✐ CMYK from RGB %&apos;rgb&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>cmy</l><l>k</l></list></block><block s="doSetVar"><l>rgb</l><block s="reportQuotient"><block var="rgb"/><l>255</l></block></block><block s="doSetVar"><l>k</l><block s="reportCombine"><block var="rgb"/><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>cmy</l><block s="reportQuotient"><block s="reportDifference"><block var="k"/><block var="rgb"/></block><block var="k"/></block></block><block s="doReport"><block s="reportConcatenatedLists"><list><block var="cmy"/><block s="reportNewList"><list><block s="reportDifference"><l>1</l><block var="k"/></block></list></block></list></block></block></script></block-definition><block-definition s="✐ RGB from CMYK %&apos;cmyk&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>cmyk</l><block s="reportDifference"><l>1</l><block var="cmyk"/></block></block><block s="doReport"><block s="reportVariadicProduct"><list><l>255</l><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportNumbers"><l>1</l><l>3</l></block><block var="cmyk"/></block><block s="reportListItem"><l>4</l><block var="cmyk"/></block></list></block></list></block></block></script></block-definition><block-definition s="lighten %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportVariadicSum"><list><l>50</l><custom-block s="$brush %s from color %obj"><l>RGB vector</l><block var="color"/></custom-block></list></block><list><l></l></list></custom-block></block></script></block-definition><block-definition s="darken %&apos;color&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportDifference"><custom-block s="$brush %s from color %obj"><l>RGB vector</l><block var="color"/></custom-block><l>100</l></block><list><l></l></list></custom-block></block></script><scripts><script x="191" y="20.28888888888893"><block s="reportCombine"><l/><block s="reifyReporter"><script></script><list></list></block></block></script><script x="101.9951171875" y="193.40000000000006"><block s="reportNewList"><list><l>-75</l><l>-75</l><l>-100</l></list></block></script><script x="39.666666666666664" y="116.77777777777779"><block s="reportCombine"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l>0</l></list></block></autolambda><list></list></block><custom-block s="$brush %s from color %obj"><l>RGB vector</l><block var="color"/></custom-block></block><block s="reifyReporter"><autolambda><block s="reportVariadicMin"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script></scripts></block-definition><block-definition s="$brush color %&apos;color&apos; at weight %&apos;weight&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="color"/><block var="weight"/></list></block></block></script></block-definition><block-definition s="plot %&apos;waveform&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="up"></block><block s="gotoXY"><l>-72</l><block s="reportDifference"><block s="reportVariadicProduct"><list><l>100</l><block s="reportListItem"><l>1</l><block var="waveform"/></block></list></block><l>50</l></block></block><block s="down"></block><block s="doFor"><l>i</l><l>1</l><l>36</l><script><block s="gotoXY"><block s="reportVariadicSum"><list><l>-72</l><block s="reportVariadicProduct"><list><l>4</l><block var="i"/></list></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>200</l><block s="reportListItem"><block var="i"/><block var="waveform"/></block></list></block><l>50</l></block></block></script></block></script><scripts><script x="426" y="41.55555555555558"><block s="clear"></block><block s="up"></block><block s="gotoXY"><l>-72</l><l>-50</l></block><block s="down"></block><block s="gotoXY"><l>72</l><l>-50</l></block><block s="up"></block><block s="gotoXY"><l>-72</l><l>-50</l></block><block s="down"></block><block s="gotoXY"><l>-72</l><l>150</l></block></script></scripts></block-definition><block-definition s="$brush color from %&apos;color&apos; and %&apos;dimension&apos; %&apos;value&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%s" readonly="true"><options>fair hue&#xD;transparency&#xD;&#126;2&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;}&#xD;}</options></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>old</l><l>transp</l></list></block><block s="doSetVar"><l>transp</l><custom-block s="$brush %s from color %obj"><l>transparency</l><block var="color"/></custom-block></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>color number</l><l>hue</l><l>fair hue</l></list></block><block var="dimension"/></block><script><block s="doSetVar"><l>value</l><block s="reportModulus"><block var="value"/><l>100</l></block></block></script><script><block s="doIfElse"><block s="reportListContainsItem"><block s="reportNewList"><list><l>red</l><l>green</l><l>blue</l></list></block><block var="dimension"/></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="value"/><l>0</l></list></block><script><block s="doSetVar"><l>value</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="value"/><l>255</l></list></block><script><block s="doSetVar"><l>value</l><l>255</l></block></script><list></list></block></script><script><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>saturation (HSV)</l><l>saturation (HSL)</l><l>value (brightness)</l><l>lightness</l><l>fair saturation (HSV)</l><l>fair saturation (HSL)</l><l>fair value (brightness)</l><l>fair lightness</l><l>transparency</l></list></block><block var="dimension"/></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="value"/><l>0</l></list></block><script><block s="doSetVar"><l>value</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="value"/><l>100</l></list></block><script><block s="doSetVar"><l>value</l><l>100</l></block></script><list></list></block></script><list></list><comment w="164.66666666666666" collapsed="false">We have to do this last test to rule out the vector options, which aren&apos;t numbers; their code makes three recursive calls and we catch range issues then.</comment></block></script></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>hue</l></list></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSV vector</l><block s="reportCONS"><block var="value"/><block s="reportCDR"><custom-block s="$brush %s from color %obj"><l>HSV vector</l><block var="color"/></custom-block></block></block><list><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>saturation (HSV)</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block var="value"/><block s="reportListItem"><l>3</l><block var="old"/></block><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>value (brightness)</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block s="reportListItem"><l>2</l><block var="old"/></block><block var="value"/><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>saturation (HSL)</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block var="value"/><block s="reportListItem"><l>3</l><block var="old"/></block><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>lightness</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block s="reportListItem"><l>2</l><block var="old"/></block><block var="value"/><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>transparency</l></list></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>color</l><block var="color"/><list><block var="value"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>red</l></list></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportCONS"><block var="value"/><block s="reportCDR"><custom-block s="$brush %s from color %obj"><l>RGBA vector</l><block var="color"/></custom-block></block></block><list><l></l></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>green</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>RGBA vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block var="value"/><block s="reportListItem"><l>3</l><block var="old"/></block><block s="reportListItem"><l>4</l><block var="old"/></block></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>blue</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>RGBA vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>RGB vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block s="reportListItem"><l>2</l><block var="old"/></block><block var="value"/><block s="reportListItem"><l>4</l><block var="old"/></block></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair hue</l></list></block><script><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSV vector</l><block s="reportCONS"><block var="value"/><block s="reportCDR"><custom-block s="$brush %s from color %obj"><l>fair HSV vector</l><block var="color"/></custom-block></block></block><list><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair saturation (HSV)</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block var="value"/><block s="reportListItem"><l>3</l><block var="old"/></block><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair value (brightness)</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSV vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSV vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block s="reportListItem"><l>2</l><block var="old"/></block><block var="value"/><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair saturation (HSL)</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block var="value"/><block s="reportListItem"><l>3</l><block var="old"/></block><block var="transp"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>fair lightness</l></list></block><script><block s="doSetVar"><l>old</l><custom-block s="$brush %s from color %obj"><l>fair HSL vector</l><block var="color"/></custom-block></block><block s="doReport"><custom-block s="$brush color from %s %s %mult%s"><l>fair HSL vector</l><block s="reportListItem"><l>1</l><block var="old"/></block><list><block s="reportListItem"><l>2</l><block var="old"/></block><block var="value"/><block var="transp"/></list></custom-block></block></script><list></list></block></script></block-definition><block-definition s="reset" type="command" category="3D Beetle"><header></header><code></code><translations>ca:reinicia&#xD;</translations><inputs></inputs><script><custom-block s="stop extruding"></custom-block><custom-block s="go home"></custom-block><custom-block s="clear scene"></custom-block><custom-block s="set shape offset to %l"><block s="reportNewList"><list><l>0</l><l>0</l></list></block></custom-block><custom-block s="set %s scale to %n"><l>shape</l><l>1</l></custom-block><custom-block s="set %s scale to %n"><l>movement</l><l>1</l></custom-block><block s="doIf"><block s="reportListContainsItem"><block s="reportApplyExtension"><l>var_names(scope)</l><list><l>global</l></list></block><l>bb_stack</l></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>bb_stack</l><block s="reportNewList"><list></list></block></list></block></script><list></list></block></script></block-definition><block-definition s="clear scene" type="command" category="3D Beetle"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>bb_clear()</l><list></list></block></script></block-definition><block-definition s="go home" type="command" category="3D Beetle"><header></header><code></code><translations>ca:torna a casa&#xD;</translations><inputs></inputs><script><custom-block s="go to %l"><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></custom-block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><list><l>0</l><l>0</l><l>0</l></list></block></script></block-definition><block-definition s="go to %&apos;position&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:vés a _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="position"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>position</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></block></script><list></list></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><block var="position"/></block></script></block-definition><block-definition s="set %&apos;which&apos; position to %&apos;what&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:fixa la coordenada _ a _&#xD;</translations><inputs><input type="%s" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">3</input></inputs><script><block s="doDeclareVariables"><list><l>mask</l></list></block><block s="doSetVar"><l>mask</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block></block><custom-block s="go to %l"><block s="reportVariadicSum"><list><block s="reportDifference"><custom-block s="%s position"><l></l></custom-block><block s="reportVariadicProduct"><list><block var="mask"/><custom-block s="%s position"><l></l></custom-block></list></block></block><block s="reportVariadicProduct"><list><block var="mask"/><block s="reportNewList"><list><block var="what"/><block var="what"/><block var="what"/></list></block></list></block></list></block></custom-block></script></block-definition><block-definition s="change absolute %&apos;which&apos; by %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:augmenta la coordenada _ en _&#xD;</translations><inputs><input type="%s" readonly="true">x<options>x&#xD;y&#xD;z</options></input><input type="%n">2</input></inputs><script><custom-block s="go to %l"><block s="reportVariadicSum"><list><custom-block s="%s position"><l></l></custom-block><block s="reportVariadicProduct"><list><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block><block s="reportNewList"><list><block var="n"/><block var="n"/><block var="n"/></list></block></list></block></list></block></custom-block></script></block-definition><block-definition s="change relative %&apos;which&apos; by %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:mou-te en la _ pròpia _ passos&#xD;</translations><inputs><input type="%s" readonly="true">y<options>x&#xD;y&#xD;z</options></input><input type="%n">2</input></inputs><script><block s="doApplyExtension"><l>bb_move(axis, steps)</l><list><block var="which"/><block var="n"/></list></block></script></block-definition><block-definition s="%&apos;which&apos; position" type="reporter" category="3D Beetle"><header></header><code></code><translations>ca:posició _&#xD;</translations><inputs><input type="%s" readonly="true">x<options>x&#xD;y&#xD;z</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l></l></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>bb_position()</l><list></list></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block var="which"/><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block><block s="reportApplyExtension"><l>bb_position()</l><list></list></block></block></block></script></block></script></block-definition><block-definition s="rotate %&apos;which&apos; by %&apos;what&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:gira sobre _ propi en _ graus&#xD;</translations><inputs><input type="%s" readonly="true">z<options>x&#xD;y&#xD;z</options></input><input type="%n">15</input></inputs><script><block s="doDeclareVariables"><list><l>empty</l></list></block><block s="doSetVar"><l>empty</l><l></l></block><block s="doApplyExtension"><l>bb_rotate(x, y, z)</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block><block var="what"/><block var="empty"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block></block></script></block-definition><block-definition s="set %&apos;which&apos; rotation to %&apos;what&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:fixa l&apos;angle _ propi a _&#xD;</translations><inputs><input type="%s" readonly="true">z<options>x&#xD;y&#xD;z</options></input><input type="%n">45</input></inputs><script><block s="doDeclareVariables"><list><l>empty</l></list></block><block s="doSetVar"><l>empty</l><l></l></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><block var="which"/></list></block><block var="what"/><block var="empty"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block></block></script></block-definition><block-definition s="point to %&apos;point&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:apunta cap a _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="point"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>point</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block></block></script><list></list></block><block s="doApplyExtension"><l>bb_pointto(x, y, z)</l><block var="point"/></block></script></block-definition><block-definition s="%&apos;which&apos; rotation" type="reporter" category="3D Beetle"><header></header><code></code><translations>ca:angle _&#xD;</translations><inputs><input type="%s" readonly="true">z<options>x&#xD;y&#xD;z</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l></l></list></block><script><block s="doReport"><block s="reportApplyExtension"><l>bb_rotation()</l><list></list></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block var="which"/><block s="reportNewList"><list><l>x</l><l>y</l><l>z</l></list></block></block><block s="reportApplyExtension"><l>bb_rotation()</l><list></list></block></block></block></script></block></script></block-definition><block-definition s="start extruding %&apos;base&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:comença a extrudir amb _ de base&#xD;</translations><inputs><input type="%s" readonly="true">$_circle<options>circle=$_circle&#xD;triangle=$_triangle&#xD;square=$_square&#xD;semicircle=$_semicircle&#xD;line=$_line&#xD;point=$_point&#xD;sprite positions=$_sprite positions</options></input></inputs><script><block s="doApplyExtension"><l>bb_stopextruding()</l><list></list></block><block s="doIfElse"><block s="reportIsA"><block var="base"/><l><option>list</option></l></block><script><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><block var="base"/></list></block></script><script><block s="doApplyExtension"><l>bb_setextrusionbase(base)</l><list><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="base"/></list></block></list></block></script></block><block s="doApplyExtension"><l>bb_startextruding()</l><list></list></block></script></block-definition><block-definition s="stop extruding" type="command" category="3D Beetle"><header></header><code></code><translations>ca:deixa d&apos;extrudir&#xD;</translations><inputs></inputs><script><block s="doApplyExtension"><l>bb_stopextruding()</l><list></list></block></script></block-definition><block-definition s="log sprite positions in %&apos;script&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:enregistra les posicions de la tortuga _&#xD;</translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doApplyExtension"><l>bb_logspritepositions(bool, currentPos)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block><block s="getPosition"></block></list></block><block s="doRun"><block var="script"/><list></list></block><block s="doApplyExtension"><l>bb_logspritepositions(bool, currentPos)</l><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></script></block-definition><block-definition s="shape points" type="reporter" category="3D Beetle" space="true"><header></header><code></code><translations>ca:punts de la base&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bb_extrusionbasepoints()</l><list></list></block></block></script></block-definition><block-definition s="set shape offset to %&apos;offset&apos;" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:fixa el desplaçament de la base a _&#xD;</translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doApplyExtension"><l>bb_setoffset(offset)</l><list><block var="offset"/></list></block></script></block-definition><block-definition s="set %&apos;which&apos; scale to %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:fixa l&apos;escala de _ a _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_shape<options>shape=$_shape&#xD;movement=$_movement</options></input><input type="%n">1</input></inputs><script><block s="doApplyExtension"><l>bb_setscale(scale, which)</l><list><block var="n"/><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="which"/></list></block></list></block></script></block-definition><block-definition s="change %&apos;which&apos; scale by %&apos;n&apos;" type="command" category="3D Beetle"><header></header><code></code><translations>ca:augmenta l&apos;escala de _ en _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_shape<options>shape=$_shape&#xD;movement=$_movement</options></input><input type="%n">0.5</input></inputs><script><custom-block s="set %s scale to %n"><block var="which"/><block s="reportVariadicSum"><list><custom-block s="%s scale"><block var="which"/></custom-block><block var="n"/></list></block></custom-block></script></block-definition><block-definition s="%&apos;which&apos; scale" type="reporter" category="3D Beetle"><header></header><code></code><translations>ca:escala de _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_shape<options>shape=$_shape&#xD;movement=$_movement</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bb_scale(which)</l><list><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="which"/></list></block></list></block></block></script></block-definition><block-definition s="push position" type="command" category="3D Beetle" space="true"><header></header><code></code><translations>ca:enregistra posició actual&#xD;</translations><inputs></inputs><script><block s="doAddToList"><block s="reportNewList"><list><custom-block s="%s position"><l></l></custom-block><custom-block s="%s rotation"><l></l></custom-block></list></block><custom-block s="stack"></custom-block></block></script></block-definition><block-definition s="pop position" type="command" category="3D Beetle"><header></header><code></code><translations>ca:torna a la posició enregistrada&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><custom-block s="stack"></custom-block></block></block><script><block s="doDeclareVariables"><list><l>record</l></list></block><block s="doSetVar"><l>record</l><block s="reportListItem"><l><option>last</option></l><custom-block s="stack"></custom-block></block></block><block s="doApplyExtension"><l>bb_goto(x, y, z)</l><block s="reportListItem"><l>1</l><block var="record"/></block></block><block s="doApplyExtension"><l>bb_setrot(x, y, z)</l><block s="reportListItem"><l>2</l><block var="record"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><custom-block s="stack"></custom-block></block></script><list></list></block></script></block></script></block-definition><block-definition s="stack" type="reporter" category="3D Beetle"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportApplyExtension"><l>var_names(scope)</l><list><l>global</l></list></block><l>bb_stack</l></block></block><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>bb_stack</l></list></block><block s="doApplyExtension"><l>var_hide(name)</l><list><l>bb_stack</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>bb_stack</l><block s="reportNewList"><list></list></block></list></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><l>bb_stack</l></list></block></block></script></block-definition><block-definition s="init module" type="command" category="3D Beetle"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>__module__beetle__</l><l>libraries/beetle/init.js</l></block></script><scripts><script x="59.50413223140495" y="111.4280991735537"><block s="doSetVar"><l>__module__beetle__</l><l>libraries/beetle/init.js</l></block></script></scripts></block-definition><block-definition s="beetle view" type="reporter" category="3D Beetle" space="true"><header></header><code></code><translations>ca:vista de l&apos;escarbat&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bb_beetleView()</l><list></list></block></block></script></block-definition><block-definition s="stop stitching" type="command" category="Embroidery"><header></header><code></code><translations>de:Stich zurücksetzen&#xD;</translations><inputs></inputs><script><block s="doDeleteFromList"><block s="reportGet"><l><option>name</option></l></block><block var="_embroider"/></block></script></block-definition><block-definition s="%&apos;pattern&apos; stitch by %&apos;step size&apos; width %&apos;width&apos; center %&apos;centered&apos;" type="command" category="Embroidery" space="true"><header></header><code></code><translations>de:_ Stich Länge _ Breite _ zentriert _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_zigzag<options>zigzag=$_zigzag&#xD;z=$_z&#xD;cross=$_cross</options></input><input type="%n" initial="1">20</input><input type="%n" initial="1">10</input><input type="%b" initial="1">true</input></inputs><script><block s="doReplaceInList"><block s="reportGet"><l><option>name</option></l></block><block var="_embroider"/><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportCONS"><custom-block s="unselect %s"><block s="reportListItem"><l>1</l><l/></block></custom-block><block s="reportCDR"><l/></block></block></autolambda><list></list></block><list><block s="reportEnvironment"><l><option>inputs</option></l></block></list></block></block></script></block-definition><block-definition s="%&apos;pattern&apos; stitch by %&apos;step size&apos;" type="command" category="Embroidery"><header></header><code></code><translations>de:_ Stich Länge _&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_running<options>running=$_running&#xD;triple run=$_triple run</options></input><input type="%n" initial="1">10</input></inputs><script><block s="doReplaceInList"><block s="reportGet"><l><option>name</option></l></block><block var="_embroider"/><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportCONS"><custom-block s="unselect %s"><block s="reportListItem"><l>1</l><l/></block></custom-block><block s="reportCDR"><l/></block></block></autolambda><list></list></block><list><block s="reportEnvironment"><l><option>inputs</option></l></block></list></block></block></script></block-definition><block-definition s="satin stitch width %&apos;width&apos; center %&apos;centered&apos;" type="command" category="Embroidery"><header></header><code></code><translations>de:Satinstich Breite _ zentriert _&#xD;</translations><inputs><input type="%n" initial="1">20</input><input type="%b" initial="1">true</input></inputs><script><custom-block s="%s stitch by %n width %n center %b"><l>zigzag</l><l>2</l><block var="width"/><block var="centered"/></custom-block></script></block-definition><block-definition s="primitive go to %&apos;position&apos;" type="command" category="motion" primitive="doGotoObject"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_destinationsMenu</options></input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>doGotoObject</l></block></script></block-definition><block-definition s="%&apos;pattern&apos; stitch to %&apos;dest&apos; in steps of %&apos;step size&apos; width %&apos;width&apos; center %&apos;centered&apos;" type="command" category="Embroidery" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">zigzag<options>zigzag&#xD;z&#xD;cross&#xD;running&#xD;triple run</options></input><input type="%s" readonly="true" initial="1"><options>§_destinationsMenu</options></input><input type="%n" initial="1">5</input><input type="%n" initial="1">8</input><input type="%b" initial="1">true</input></inputs><script><block s="doDeclareVariables"><list><l>destination</l><l>heading</l><l>offset</l></list></block><block s="doSetVar"><l>destination</l><block s="reportIfElse"><block s="reportIsA"><block var="dest"/><l><option>list</option></l></block><block var="dest"/><block s="reportAttributeOf"><l><option>position</option></l><block var="dest"/></block></block></block><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="destination"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>destination</l><block s="reportListItem"><custom-block s="unselect %s"><block var="dest"/></custom-block><block s="reportNewList"><list><block s="reportNewList"><list><l>random position</l><block s="reportNewList"><list><block s="reportRandom"><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportAttributeOf"><l><option>right</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="reportRandom"><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportAttributeOf"><l><option>top</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></list></block></list></block><block s="reportNewList"><list><l>mouse-pointer</l><block s="reportMousePosition"></block></list></block><block s="reportNewList"><list><l>center</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></list></block></list></block></block></block></script><list></list></block><block s="doSetVar"><l>heading</l><custom-block s="angle from %l to %l"><block s="getPosition"></block><block var="destination"/></custom-block></block><block s="doSetVar"><l>offset</l><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicSum"><list><block var="heading"/><l>90</l></list></block></block><block s="reportMonadic"><l><option>cos</option></l><block s="reportVariadicSum"><list><block var="heading"/><l>90</l></list></block></block></list></block><block s="reportQuotient"><block var="width"/><l>2</l></block></list></block></block><block s="doForEach"><l>point</l><block s="evaluate"><block s="reportListItem"><block var="pattern"/><block s="reportNewList"><list><block s="reportNewList"><list><l>zigzag</l><block s="reifyReporter"><autolambda><custom-block s="zigzag from %l to %l in steps of %n width %n turn %b"><l/><l/><l></l><l></l><l><bool>true</bool></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><l>z</l><block s="reifyReporter"><autolambda><custom-block s="z-stitch from %l to %l in steps of %n width %n turn %b"><l/><l/><l></l><l></l><l><bool>true</bool></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><l>cross</l><block s="reifyReporter"><autolambda><custom-block s="cross-stitch from %l to %l in steps of %n width %n"><l/><l/><l></l><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><l>running</l><block s="reifyReporter"><autolambda><custom-block s="running stitch from %l to %l in steps of %n"><l/><l/><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><l>triple run</l><block s="reifyReporter"><autolambda><custom-block s="triple-run stitch from %l to %l in steps of %n"><l/><l/><l></l></custom-block></autolambda><list></list></block></list></block></list></block></block><list><block s="reportIfElse"><block var="centered"/><block s="getPosition"></block><block s="reportVariadicSum"><list><block s="getPosition"></block><block var="offset"/></list></block></block><block s="reportIfElse"><block var="centered"/><block var="destination"/><block s="reportVariadicSum"><list><block var="destination"/><block var="offset"/></list></block></block><block s="reportMonadic"><l><option>abs</option></l><block var="step size"/></block><block s="reportMonadic"><l><option>abs</option></l><block var="width"/></block></list></block><script><custom-block s="primitive go to %s"><block var="point"/></custom-block></script></block><block s="doIf"><block s="reportNot"><block var="centered"/></block><script><custom-block s="primitive go to %s"><block var="destination"/></custom-block></script><list></list></block></script></block-definition><block-definition s="arc $turnRight radius: %&apos;r&apos; degrees: %&apos;degrees&apos;" type="command" category="motion"><header></header><code></code><translations>de:Bogen $turnRight Radius: _ Grad: _&#xD;pl:łuk $turnRight promień: _ stopnie: _&#xD;</translations><inputs><input type="%n" initial="1">50</input><input type="%n" initial="1">30</input></inputs><script><block s="doDeclareVariables"><list><l>start</l><l>end</l><l>path</l><l>center</l></list></block><block s="doSetVar"><l>start</l><block s="reportVariadicSum"><list><block s="direction"></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sign</option></l><block var="degrees"/></block><l>-90</l></list></block></list></block></block><block s="doSetVar"><l>end</l><block s="reportVariadicSum"><list><block var="start"/><block var="degrees"/></list></block></block><block s="doSetVar"><l>path</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><l></l></block><block s="reportMonadic"><l><option>cos</option></l><l></l></block></list></block><block var="r"/></list></block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block s="reportNumbers"><block var="start"/><block var="end"/></block><block s="reportNewList"><list><block var="end"/></list></block></list></block></block></block><block s="doSetVar"><l>center</l><block s="reportDifference"><block s="getPosition"></block><block s="reportListItem"><l>1</l><block var="path"/></block></block></block><block s="doWarp"><script><block s="doForEach"><l>coord</l><block var="path"/><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block var="coord"/><block var="center"/></list></block></block></script></block></script></block><block s="setHeading"><block s="reportVariadicSum"><list><block var="end"/><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sign</option></l><block var="degrees"/></block><l>90</l></list></block></list></block></block></script></block-definition><block-definition s="resample %&apos;path&apos; to %&apos;points&apos; points" type="reporter" category="looks"><header></header><code></code><translations>de:resample _ auf _ Punkte&#xD;</translations><inputs><input type="%l"></input><input type="%n">64</input></inputs><script><block s="doDeclareVariables"><list><l>samples</l><l>step</l><l>last</l><l>dist</l><l>rest</l></list></block><block s="doSetVar"><l>last</l><block s="reportListItem"><l>1</l><block var="path"/></block></block><block s="doSetVar"><l>samples</l><block s="reportNewList"><list><block var="last"/></list></block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><custom-block s="length of path %l"><block var="path"/></custom-block><block s="reportDifference"><block var="points"/><l>1</l></block></block></block><block s="doWarp"><script><block s="doForEach"><l>point</l><block var="path"/><script><block s="doSetVar"><l>dist</l><custom-block s="distance from %l to %l"><block var="point"/><block var="last"/></custom-block></block><block s="doChangeVar"><l>rest</l><block var="dist"/></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block var="rest"/><block var="step"/></list></block><script><block s="doChangeVar"><l>rest</l><block s="reportMonadic"><l><option>neg</option></l><block var="step"/></block></block><block s="doAddToList"><block s="reportDifference"><block var="point"/><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="rest"/><block var="dist"/></block><block s="reportDifference"><block var="point"/><block var="last"/></block></list></block></block><block var="samples"/></block></script></block><block s="doSetVar"><l>last</l><block var="point"/></block></script></block></script></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="samples"/></block><block var="points"/></list></block><script><block s="doAddToList"><block s="reportListItem"><l><option>last</option></l><block var="path"/></block><block var="samples"/></block></script><script><block s="doReplaceInList"><l><option>last</option></l><block var="samples"/><block s="reportListItem"><l><option>last</option></l><block var="path"/></block></block></script></block><block s="doReport"><block var="samples"/></block></script></block-definition><block-definition s="length of path %&apos;path&apos;" type="reporter" category="sensing"><header></header><code></code><translations>de:Länge von Pfad _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>len</l><l>last</l></list></block><block s="doSetVar"><l>last</l><block s="reportListItem"><l>1</l><block var="path"/></block></block><block s="doWarp"><script><block s="doForEach"><l>point</l><block var="path"/><script><block s="doChangeVar"><l>len</l><custom-block s="distance from %l to %l"><block var="point"/><block var="last"/></custom-block></block><block s="doSetVar"><l>last</l><block var="point"/></block></script></block></script></block><block s="doReport"><block var="len"/></block></script></block-definition><block-definition s="distance from %&apos;p1&apos; to %&apos;p2&apos;" type="reporter" category="sensing"><header></header><code></code><translations>de:Entfernung von _ nach _&#xD;</translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><block s="reportPower"><block s="reportDifference"><block var="p2"/><block var="p1"/></block><l>2</l></block></block></block></block></script></block-definition><block-definition s="angle from %&apos;p1&apos; to %&apos;p2&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportAtan2"><l></l><l></l></block></autolambda><list></list></block><block s="reportDifference"><block var="p2"/><block var="p1"/></block></block></block></script></block-definition><block-definition s="step %&apos;steps&apos; in direction %&apos;heading&apos; from %&apos;point&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input><input type="%n" initial="1"><options>§_directionDialMenu</options></input><input type="%l" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block var="point"/><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><block var="heading"/></block><block s="reportMonadic"><l><option>cos</option></l><block var="heading"/></block></list></block><block var="steps"/></list></block></list></block></block></script></block-definition><block-definition s="zigzag from %&apos;start&apos; to %&apos;end&apos; in steps of %&apos;step size&apos; width %&apos;width&apos; turn %&apos;turn&apos;" type="reporter" category="Embroidery"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%n" initial="1">5</input><input type="%n" initial="1">8</input><input type="%b" initial="1">true</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportRound"><block var="start"/></block><block s="reportRound"><block var="end"/></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="end"/></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>heading</l><l>step</l><l>next</l></list></block><block s="doSetVar"><l>heading</l><custom-block s="angle from %l to %l"><block var="start"/><block var="end"/></custom-block></block><block s="doSetVar"><l>step</l><block s="reportVariadicMin"><list><block s="reportQuotient"><block var="step size"/><l>2</l></block><custom-block s="distance from %l to %l"><block var="start"/><block var="end"/></custom-block></list></block></block><block s="doSetVar"><l>next</l><custom-block s="step %n in direction %n from %l"><block var="step"/><block var="heading"/><block var="start"/></custom-block></block><block s="doReport"><block s="reportCONS"><custom-block s="step %n in direction %n from %l"><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportVariadicSum"><list><block var="heading"/><block s="reportIfElse"><block var="turn"/><l>90</l><l>-90</l></block></list></block><custom-block s="step %n in direction %n from %l"><block s="reportQuotient"><block var="step"/><l>2</l></block><block var="heading"/><block var="start"/></custom-block></custom-block><custom-block s="zigzag from %l to %l in steps of %n width %n turn %b"><block var="next"/><block var="end"/><block var="step size"/><block var="width"/><block s="reportNot"><block var="turn"/></block></custom-block></block></block></script></block-definition><block-definition s="z-stitch from %&apos;start&apos; to %&apos;end&apos; in steps of %&apos;step size&apos; width %&apos;width&apos; turn %&apos;turn&apos;" type="reporter" category="Embroidery"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%n" initial="1">5</input><input type="%n" initial="1">8</input><input type="%b" initial="1">true</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportRound"><block var="start"/></block><block s="reportRound"><block var="end"/></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="end"/></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>heading</l><l>next</l></list></block><block s="doSetVar"><l>heading</l><custom-block s="angle from %l to %l"><block var="start"/><block var="end"/></custom-block></block><block s="doSetVar"><l>next</l><custom-block s="step %n in direction %n from %l"><block s="reportVariadicMin"><list><block s="reportQuotient"><block var="step size"/><l>2</l></block><custom-block s="distance from %l to %l"><block var="start"/><block var="end"/></custom-block></list></block><block var="heading"/><block var="start"/></custom-block></block><block s="doReport"><block s="reportCONS"><custom-block s="step %n in direction %n from %l"><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportVariadicSum"><list><block var="heading"/><block s="reportIfElse"><block var="turn"/><l>90</l><l>-90</l></block></list></block><block s="reportIfElse"><block var="turn"/><block var="start"/><block var="next"/></block></custom-block><custom-block s="z-stitch from %l to %l in steps of %n width %n turn %b"><block var="next"/><block var="end"/><block var="step size"/><block var="width"/><block s="reportNot"><block var="turn"/></block></custom-block></block></block></script></block-definition><block-definition s="cross-stitch from %&apos;start&apos; to %&apos;end&apos; in steps of %&apos;step size&apos; width %&apos;width&apos;" type="reporter" category="Embroidery"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%n" initial="1">5</input><input type="%n" initial="1">8</input></inputs><script><block s="doDeclareVariables"><list><l>heading</l><l>vertex</l><l>next</l></list></block><block s="doSetVar"><l>heading</l><custom-block s="angle from %l to %l"><block var="start"/><block var="end"/></custom-block></block><block s="doSetVar"><l>vertex</l><custom-block s="step %n in direction %n from %l"><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportVariadicSum"><list><block var="heading"/><l>90</l></list></block><block var="start"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportRound"><block var="start"/></block><block s="reportRound"><block var="end"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block var="vertex"/><block s="reportNewList"><list><block var="end"/></list></block></block></block></script><list></list></block><block s="doSetVar"><l>next</l><custom-block s="step %n in direction %n from %l"><block s="reportVariadicMin"><list><block var="step size"/><custom-block s="distance from %l to %l"><block var="start"/><block var="end"/></custom-block></list></block><block var="heading"/><block var="start"/></custom-block></block><block s="doReport"><block s="reportCONS"><block var="vertex"/><block s="reportCONS"><custom-block s="step %n in direction %n from %l"><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportDifference"><block var="heading"/><l>90</l></block><block var="next"/></custom-block><block s="reportCONS"><custom-block s="step %n in direction %n from %l"><block s="reportQuotient"><block var="width"/><l>2</l></block><block s="reportDifference"><block var="heading"/><l>90</l></block><block var="start"/></custom-block><custom-block s="cross-stitch from %l to %l in steps of %n width %n"><block var="next"/><block var="end"/><block var="step size"/><block var="width"/></custom-block></block></block></block></block></script></block-definition><block-definition s="running stitch from %&apos;start&apos; to %&apos;end&apos; in steps of %&apos;step size&apos;" type="reporter" category="Embroidery"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%n" initial="1">5</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportRound"><block var="start"/></block><block s="reportRound"><block var="end"/></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block var="end"/></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>next</l></list></block><block s="doSetVar"><l>next</l><custom-block s="step %n in direction %n from %l"><block s="reportVariadicMin"><list><block var="step size"/><custom-block s="distance from %l to %l"><block var="start"/><block var="end"/></custom-block></list></block><custom-block s="angle from %l to %l"><block var="start"/><block var="end"/></custom-block><block var="start"/></custom-block></block><block s="doReport"><block s="reportCONS"><block var="next"/><custom-block s="running stitch from %l to %l in steps of %n"><block var="next"/><block var="end"/><block var="step size"/></custom-block></block></block></script></block-definition><block-definition s="triple-run stitch from %&apos;start&apos; to %&apos;end&apos; in steps of %&apos;step size&apos;" type="reporter" category="Embroidery"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%n" initial="1">5</input></inputs><script><block s="doDeclareVariables"><list><l>distance</l><l>next</l><l>after</l></list></block><block s="doSetVar"><l>distance</l><custom-block s="distance from %l to %l"><block var="start"/><block var="end"/></custom-block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="distance"/><block var="step size"/></list></block><script><block s="doReport"><block var="end"/></block></script><list></list></block><block s="doSetVar"><l>next</l><custom-block s="step %n in direction %n from %l"><block var="step size"/><custom-block s="angle from %l to %l"><block var="start"/><block var="end"/></custom-block><block var="start"/></custom-block></block><block s="doSetVar"><l>after</l><custom-block s="step %n in direction %n from %l"><block s="reportVariadicMin"><list><block s="reportVariadicProduct"><list><l>2</l><block var="step size"/></list></block><block var="distance"/></list></block><custom-block s="angle from %l to %l"><block var="start"/><block var="end"/></custom-block><block var="start"/></custom-block></block><block s="doReport"><block s="reportCONS"><block var="after"/><block s="reportCONS"><block var="next"/><custom-block s="triple-run stitch from %l to %l in steps of %n"><block var="next"/><block var="end"/><block var="step size"/></custom-block></block></block></block></script></block-definition><block-definition s="arc $turnLeft radius: %&apos;r&apos; degrees: %&apos;degrees&apos;" type="command" category="motion"><header></header><code></code><translations>de:Bogen $turnLeft Radius: _ Grad: _&#xD;pl:łuk $turnLeft promień: _ stopnie: _&#xD;</translations><inputs><input type="%n" initial="1">50</input><input type="%n" initial="1">30</input></inputs><script><custom-block s="arc $turnRight radius: %n degrees: %n"><block var="r"/><block s="reportMonadic"><l><option>neg</option></l><block var="degrees"/></block></custom-block></script></block-definition><block-definition s="%&apos;selector&apos; of stitch" type="reporter" category="Embroidery" space="true"><header></header><code></code><translations>de:_ von Stich&#xD;</translations><inputs><input type="%s" readonly="true" initial="1">$_name<options>name=$_name&#xD;step=$_step&#xD;width=$_width&#xD;centered=$_centered</options></input></inputs><script><block s="doDeclareVariables"><list><l>stitch</l><l>idx</l><l>value</l></list></block><block s="doSetVar"><l>stitch</l><block s="reportListItem"><block s="reportGet"><l><option>name</option></l></block><block var="_embroider"/></block></block><block s="doIf"><block s="reportIsA"><block var="stitch"/><l><option>list</option></l></block><script><block s="doSetVar"><l>idx</l><block s="reportListIndex"><custom-block s="unselect %s"><block var="selector"/></custom-block><block s="reportNewList"><list><l>name</l><l>step</l><l>width</l><l>centered</l></list></block></block></block><block s="doSetVar"><l>value</l><block s="reportListItem"><block var="idx"/><block var="stitch"/></block></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="idx"/><l>1</l></list></block><custom-block s="select %s"><block var="value"/></custom-block><block var="value"/></block></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="select %&apos;text&apos;" type="reporter" category="other"><comment x="0" y="0" w="105" collapsed="false">convert a text into a translatable selector, an internal transient data structure that can be displayed but not processed by Snap!</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">text</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>select</l><block var="text"/></list></block></block></script></block-definition><block-definition s="unselect %&apos;selector&apos;" type="reporter" category="other"><comment x="0" y="0" w="105" collapsed="false">convert a translatable selector (back) into its internal (English) text</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">$_selector</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_transform(name, txt)</l><list><l>unselect</l><block var="selector"/></list></block></block></script></block-definition><block-definition s="$globe show current location" type="command" category="other"><header></header><code></code><translations>de:$globe zeige aktuellen Standort&#xD;pt:mostra a localização corrente do dispositivo no $globe&#xD;ca:$globe centra a la meva ubicació&#xD;</translations><inputs></inputs><script><custom-block s="set $globe to lon: %n lat: %n"><custom-block s="$globe current longitude"></custom-block><custom-block s="$globe current latitude"></custom-block></custom-block></script></block-definition><block-definition s="$globe zoom" type="reporter" category="other"><header></header><code></code><translations>de:$globe Zoom&#xD;pt:o zoom do $globe&#xD;ca:$globe zoom&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_zoom</l><list></list></block></block></script></block-definition><block-definition s="set $globe zoom to %&apos;n&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe Zoom auf _&#xD;pt:altera o zoom do $globe para _&#xD;ca:$globe fixa el zoom a _&#xD;</translations><inputs><input type="%n">10</input></inputs><script><block s="doApplyExtension"><l>map_zoom(n)</l><list><block var="n"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="$globe longitude of x %&apos;x&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Längengrad von x _&#xD;pt:a longitude no $globe da coordenada x _&#xD;ca:$globe longitud per a x _&#xD;</translations><inputs><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_lon(x)</l><list><block var="x"/></list></block></block></script></block-definition><block-definition s="$globe latitude of y %&apos;y&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Breitengrad von y _&#xD;pt:a latitude no $globe da coordenada y _&#xD;ca:$globe latitud per a y _&#xD;</translations><inputs><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_lat(y)</l><list><block var="y"/></list></block></block></script></block-definition><block-definition s="set $globe to lon: %&apos;lon&apos; lat: %&apos;lat&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe auf Länge: _ Breite: _&#xD;pt:altera a posição no $globe para (longitude: _ , latitude: _ )&#xD;ca:$globe centra a longitud: _ latitud: _&#xD;</translations><inputs><input type="%n">-122.257852</input><input type="%n">37.872099</input></inputs><script><block s="doApplyExtension"><l>map_view(lon, lat)</l><list><block var="lon"/><block var="lat"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="y of $globe latitude %&apos;lat&apos;" type="reporter" category="other"><header></header><code></code><translations>de:y von $globe Breitengrad _&#xD;pt:a coordenada y da latitude _ no $globe&#xD;ca:$globe y per a latitud _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_y(lat)</l><list><block var="lat"/></list></block></block></script></block-definition><block-definition s="x of $globe longitude %&apos;lon&apos;" type="reporter" category="other"><header></header><code></code><translations>de:x von $globe Längengrad _&#xD;pt:a coordenada x da longidude _ no $globe&#xD;ca:$globe x per a longitud _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_x(lon)</l><list><block var="lon"/></list></block></block></script></block-definition><block-definition s="change $globe by x: %&apos;x&apos; y: %&apos;y&apos; pixels" type="command" category="other"><header></header><code></code><translations>de:ändere $globe um x: _ y: _ Pixel&#xD;pt:desloca a posição do mapa de (x: _ , y: _ )&#xD;ca:$globe canvia la ubicació en x: _ y: _ píxels&#xD;</translations><inputs><input type="%n">10</input><input type="%n">10</input></inputs><script><block s="doApplyExtension"><l>map_pan(x, y)</l><list><block var="x"/><block var="y"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="$globe distance in km to %&apos;target&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Entfernung in km zu _&#xD;pt:a tua distância em km a _ no $globo&#xD;ca:$globe distància en km fins a _&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>trg</l></list></block><block s="doSetVar"><l>trg</l><block s="reportObject"><block var="target"/></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportGet"><l><option>self</option></l></block><l><option>sprite</option></l></block><block s="reportIsA"><block var="trg"/><l><option>sprite</option></l></block></list></block></block><script><block s="doReport"><l>-1</l></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>map_dist(lat1, lon1, lat2, lon2)</l><list><custom-block s="$globe latitude of y %n"><block s="yPosition"></block></custom-block><custom-block s="$globe longitude of x %n"><block s="xPosition"></block></custom-block><custom-block s="$globe latitude of y %n"><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></custom-block><custom-block s="$globe longitude of x %n"><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></custom-block></list></block></block></script></block-definition><block-definition s="$globe current location" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktuelle Position&#xD;pt:a localização corrente do dispositivo no $globe&#xD;ca:$globe ubicació actual&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>geo_location(acc?)</l><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block><block s="doWaitUntil"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block var="callback"/><list></list></block></block><l>2</l></list></block></block><block s="doReport"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition><block-definition s="$globe current latitude" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktueller Breitengrad&#xD;pt:a latitude corrente do dispositivo no $globe&#xD;ca:$globe latitud actual&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="$globe current location"></custom-block></block></block></script></block-definition><block-definition s="$globe current longitude" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktueller Längengrad&#xD;pt:a longitude corrente do dispositivo no $globe&#xD;ca:$globe longitud actual&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><custom-block s="$globe current location"></custom-block></block></block></script></block-definition><block-definition s="update $globe" type="command" category="other"><header></header><code></code><translations>de:aktualisiere $globe&#xD;pt:actualiza o $globe&#xD;ca:$globe força refresc&#xD;</translations><inputs></inputs><script><block s="doApplyExtension"><l>map_update</l><list></list></block><block s="doTellTo"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="$globe as costume"></custom-block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="$globe as costume" type="reporter" category="other"><header></header><code></code><translations>de:$globe als Kostüm&#xD;pt:a parte visível do $globe na forma de traje&#xD;ca:$globe vestit del mapa actual&#xD;</translations><inputs></inputs><script><block s="doWaitUntil"><block s="reportApplyExtension"><l>map_loaded</l><list></list></block></block><block s="doReport"><block s="reportApplyExtension"><l>map_costume</l><list></list></block></block></script></block-definition><block-definition s="set $globe style to %&apos;name&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe Stil auf _&#xD;pt:altera o estilo do $globe para _&#xD;ca:$globe fixa l&apos;estil de mapa a _&#xD;</translations><inputs><input type="%s" readonly="true">OpenStreetMap<options>OpenStreetMap&#xD;Wikimedia&#xD;Watercolor&#xD;Toner&#xD;Terrain&#xD;Topographic&#xD;Satellite&#xD;Streets&#xD;Shading&#xD;Mapbox (experimental)</options></input></inputs><script><block s="doApplyExtension"><l>map_style(name)</l><list><block var="name"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="ask %&apos;question&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doAsk"><block var="question"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="notify %&apos;message&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">Alert!</input></inputs><script><block s="doTellTo"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyScript"><script><block s="doAsk"><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="message"/></list></block><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><l>Ok</l></list></block></list></block></list></block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="prompt %&apos;title&apos; options %&apos;options&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">choose!</input><input type="%mult%s"></input></inputs><script><block s="doReport"><custom-block s="ask %s"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="title"/><l></l></list></block><block var="options"/><block s="reportNewList"><list><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block><block var="options"/></list></block></block></custom-block></block></script></block-definition><block-definition s="submenu %&apos;title&apos; items %&apos;items&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">title</input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="title"/><l></l></list></block><l>menu</l><block s="reportApplyExtension"><l>ide_translate(text)</l><list><block var="title"/></list></block></block><block var="items"/></list></block></block></script></block-definition><block-definition s="divider" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="menu item icon %&apos;icon&apos; label %&apos;text&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s">option</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="icon"/><l></l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="text"/><l></l></list></block><block var="value"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block><block var="text"/><block s="reportNewList"><list><block var="text"/><block var="value"/></list></block></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="text"/><l></l></list></block><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportIsA"><block var="icon"/><l><option>text</option></l></block><block s="reportObject"><block var="icon"/></block><block var="icon"/></block><block var="text"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu item speech ballon %&apos;orientation&apos; message %&apos;message&apos; value %&apos;value&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">left<options>left&#xD;right</options></input><input type="%s">hey!</input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="orientation"/><l>right</l></list></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block s="reportNewList"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="orientation"/><l>right</l></list></block><block s="reportNewList"><list><l></l><block var="message"/></list></block><block s="reportNewList"><list><block var="message"/></list></block></block><block var="value"/></list></block></block></block></script></block-definition><block-definition s="menu examples" type="command" category="sensing"><comment x="0" y="0" w="212" collapsed="false">open my definition to look at examples how to use the menu blocks</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="10" y="79.00000000000001"><block s="doAsk"><l>what&apos;s your name?</l></block></script><script x="10" y="118.00000000000001"><custom-block s="ask %s"><l>what&apos;s your name?</l></custom-block></script><script x="10" y="151"><custom-block s="notify %s"><l>Alert!</l></custom-block></script><script x="10" y="190"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><l>baz</l></list></custom-block></script><script x="10" y="223"><custom-block s="prompt %s options %mult%s"><l>choose!</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></script><script x="10" y="261"><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><l>quux</l><l>garply</l></list></custom-block></script><script x="10" y="294"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><l>foo</l><l>bar</l><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><l>frob</l><custom-block s="submenu %s items %mult%s"><l></l><list><l>fred</l><l>test</l></list></custom-block><custom-block s="divider"></custom-block><l>quux</l><l>garply</l></list></custom-block><l>baz</l></list></custom-block></script><script x="10" y="377.8333333333334"><custom-block s="menu item icon %s label %s value %s"><l></l><l>option</l><l></l></custom-block></script><script x="10" y="411.8333333333334"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item icon %s label %s value %s"><l>monkey</l><l>monkey</l><block s="reportObject"><l>monkey</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l>Octo</l><l></l><l>42</l></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>choice</l><l>yay!</l></custom-block><custom-block s="divider"></custom-block><custom-block s="submenu %s items %mult%s"><l>more</l><list><custom-block s="menu item icon %s label %s value %s"><l>Alonzo</l><l>Alonzo</l><block s="reportObject"><l>Alonzo</l></block></custom-block><custom-block s="menu item icon %s label %s value %s"><l></l><l>foo</l><l>bar</l></custom-block></list></custom-block></list></custom-block></script><script x="10" y="565.8333333333335"><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block></script><script x="10" y="599.8333333333335"><custom-block s="prompt %s options %mult%s"><l>choose!</l><list><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><l>hey!</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>wassup?</l><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>left</l><block s="reportObject"><l>Alonzo</l></block><l></l></custom-block><custom-block s="menu item speech ballon %s message %s value %s"><l>right</l><l>so?</l><block s="reportGet"><l><option>costumes</option></l></block></custom-block></list></custom-block></script></scripts></block-definition><block-definition s="recognize speech" type="reporter" category="sensing"><header></header><code></code><translations>de:erkenne Gesprochenes&#xD;ar:التعرف على الكلام&#xD;bg:Разпознаване на изговорени думи&#xD;hr:Prepoznavanje izgovorenih riječi&#xD;hy:ճանաչել ասված բառերը&#xD;ca:reconèixer les paraules pronunciades&#xD;cs:Rozpoznávání mluvených slov&#xD;dk:At genkende talte ord&#xD;eu:ahozko hitzak ezagutu&#xD;el:Αναγνώριση προφορικών λέξεων&#xD;es:Reconocer palabras habladas&#xD;fi:Puhuttujen sanojen tunnistaminen&#xD;fr:Reconnaître les mots parlés&#xD;he:זיהוי מילים מדוברות&#xD;hi:बोले गए शब्दों को पहचानना&#xD;hu:A kimondott szavak felismerése&#xD;it:Riconoscere le parole pronunciate&#xD;ja:話し言葉を認識する&#xD;ko:말한 단어 인식&#xD;no:Gjenkjenne talte ord&#xD;po:Rozpoznawanie wypowiedzianych słów&#xD;pt_BR:Reconhecendo palavras faladas&#xD;pt:Reconhecendo palavras faladas&#xD;ro:Recunoașterea cuvintelor rostite&#xD;ru:Распознавание произнесенных слов&#xD;sk:Rozpoznávanie hovorených slov&#xD;si:Prepoznavanje govorjenih besed&#xD;sv:Att känna igen talade ord&#xD;ti:ዝተዛረቡ ቃላት ምልላይ&#xD;tr:Konuşulan kelimeleri tanıma&#xD;ua:Розпізнавання вимовлених слів&#xD;zh_CN:识别口语单词&#xD;zh_TW:辨識口語單字&#xD;nl:gesproken woorden herkennen&#xD;et:ära tunda öeldud sõnu&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>tts_recognize</l><list></list></block></block></script></block-definition><block-definition s="-- %&apos;n&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>-1</l></block></script><list></list></block><list><block var="n"/></list></block><block s="doReport"><block s="evaluate"><block var="n"/><list></list></block></block></script><scripts><script x="255.49999936421716" y="94.83333333333331"><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list></list></block></script></scripts></block-definition><block-definition s="animate setter %&apos;setter&apos; getter %&apos;getter&apos; delta %&apos;delta&apos; over %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="control"><header></header><code></code><translations>de:animiere Setter _ Getter _ Delta _ über _ Sek. beschleunigt _&#xD;ca:modifica setter _ i getter _ amb delta _ en _ segons de forma _&#xD;pt:anima com modificador _ e inspector _ de _ em _ s de forma _&#xD;</translations><inputs><input type="%cmdRing"></input><input type="%repRing"></input><input type="%n">50</input><input type="%n">1</input><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>end time</l><l>destination</l></list></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>destination</l><block s="reportVariadicSum"><list><block s="evaluate"><block var="getter"/><list></list></block><block var="delta"/></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></list></block><script><block s="doRun"><block var="setter"/><list><block s="reportDifference"><block var="destination"/><block s="reportVariadicProduct"><list><block var="delta"/><block s="evaluate"><block var="easing"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></list></block></script></block><block s="doRun"><block var="setter"/><list><block var="destination"/></list></block></script></block-definition><block-definition s="PI" type="reporter" category="operators"><header></header><code></code><translations>pt:π&#xD;</translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="degrees %&apos;radians&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:_ radianos em graus&#xD;</translations><inputs><input type="%n">0.5</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="radians"/><l>180</l></list></block><custom-block s="PI"></custom-block></block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>de:Fehler _&#xD;pt:assinala o erro _&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg)</l></block><list><block var="msg"/></list></block></script></block-definition><block-definition s="glide %&apos;steps&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:gleite _ in _ Sek. beschleunigt: _&#xD;ca:llisca _ en _ segons de forma _&#xD;fr:glisser _ en _ sec. accélérer _&#xD;pt:desliza _ em _ s de forma _&#xD;</translations><inputs><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>destX</l><l>destY</l><l>end time</l><l>deltaX</l><l>deltaY</l><l>func</l></list></block><block s="forward"><block var="steps"/></block><block s="doSetVar"><l>destX</l><block s="xPosition"></block></block><block s="doSetVar"><l>destY</l><block s="yPosition"></block></block><block s="forward"><block s="reportVariadicProduct"><list><block var="steps"/><l>-1</l></list></block></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>deltaX</l><block s="reportDifference"><block var="destX"/><block s="xPosition"></block></block></block><block s="doSetVar"><l>deltaY</l><block s="reportDifference"><block var="destY"/><block s="yPosition"></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><l></l></block></script></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></list></block><script><block s="setXPosition"><block s="reportDifference"><block var="destX"/><block s="reportVariadicProduct"><list><block var="deltaX"/><block s="evaluate"><block var="func"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></block><block s="setYPosition"><block s="reportDifference"><block var="destY"/><block s="reportVariadicProduct"><list><block var="deltaY"/><block s="evaluate"><block var="func"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></block></script></block><block s="gotoXY"><block var="destX"/><block var="destY"/></block></script></block-definition><block-definition s="animate %&apos;attribute&apos; by %&apos;delta&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:animiere _ um _ in _ Sek. beschleunigt: _&#xD;ca:modifica _ amb _ en _ segons de forma _&#xD;pt:anima _ de _ em _ s de forma _&#xD;</translations><inputs><input type="%s" readonly="true">x position<options>x position&#xD;y position&#xD;direction&#xD;size&#xD;ghost effect&#xD;color effect&#xD;saturation effect&#xD;brightness effect&#xD;fisheye effect&#xD;whirl effect&#xD;pixelate effect&#xD;mosaic effect&#xD;negative effect&#xD;tempo&#xD;volume&#xD;balance</options></input><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>accessors</l><l>func</l></list></block><block s="doSetVar"><l>accessors</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>x position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>y position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>direction</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setHeading"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>size</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>tempo</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetTempo"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>volume</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setVolume"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>balance</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPan"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block></block></autolambda><list></list></block></list></block></block></block></block></block></block></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><l></l></block></script></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reportListItem"><l>1</l><block var="accessors"/></block><block s="reportListItem"><l>2</l><block var="accessors"/></block><block var="delta"/><block var="duration"/><block var="func"/></custom-block></script></block-definition><block-definition s="easing %&apos;choice&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Beschleunigung _&#xD;ca:de forma _&#xD;pt:a forma _&#xD;pl:przyspieszenie _&#xD;</translations><inputs><input type="%txt" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;sigmoid&#xD;elastic</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>linear</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>id</option></l><l></l></block></autolambda><list></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportDifference"><l>2</l><l></l></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>4</l><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block></block><l></l></list></block><l>1</l></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block var="t"/></list></block><block var="t"/></list></block><l>1</l></list></block></autolambda><list><l>t</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>4</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><l>1</l></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><l>1</l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block><list><l></l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicSum"><list><l>90</l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></list></block></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block s="reportVariadicProduct"><list><l></l><l>180</l></list></block></block></block><l>2</l></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>sigmoid</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l>1</l><block s="reportVariadicSum"><list><l>1</l><block s="reportMonadic"><l><option>e^</option></l><block s="reportMonadic"><l><option>neg</option></l><block s="reportDifference"><block s="reportVariadicProduct"><list><l></l><l>20</l></list></block><l>10</l></block></block></block></list></block></block></autolambda><list></list></block></block></script><block s="reportVariadicEquals"><list><block var="choice"/><l>elastic</l></list></block><script><block s="doReport"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>p</l></list></block><block s="doSetVar"><l>p</l><l>0.3</l></block><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportPower"><l>2</l><block s="reportVariadicProduct"><list><l>-10</l><l></l></list></block></block><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><block s="reportQuotient"><block var="p"/><l>4</l></block></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><l>2</l><custom-block s="PI"></custom-block></list></block><block var="p"/></block></list></block></custom-block></block></list></block><l>1</l></list></block></block></script><list></list></block></block></script></list></block><custom-block s="error %s"><block s="reportJoinWords"><list><l>unknown easing function "</l><block var="choice"/><l>"</l></list></block></custom-block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; $nl in %&apos;time&apos; secs easing %&apos;easing&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:für _ = _ bis _ _ in _ Sek. beschleunigt: _ _&#xD;ca:per _ = _ fins _ _ en _ segons de forma _ _&#xD;pt:para _ de _ a _ _ em _ s de forma _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">0</input><input type="%n">100</input><input type="%n">1</input><input type="%txt" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>i</l><block var="start"/></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reifyScript"><script><block s="doSetVar"><l>i</l><l></l></block><block s="doRun"><block var="action"/><list></list></block></script><list></list></block><block s="reifyReporter"><autolambda><block var="i"/></autolambda><list></list></block><block s="reportDifference"><block var="end"/><block var="start"/></block><block var="time"/><block s="reportIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><block var="easing"/><l></l></block></custom-block></script></block-definition><block-definition s="export costume %&apos;costume&apos;" type="command" category="looks"><header></header><code></code><translations>pl:eksportuj kostium _&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><block var="costume"/><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block></block><block s="doIf"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><script><block s="doApplyExtension"><l>cst_export(cst, name)</l><list><block var="costume"/><l></l></list></block></script><list></list></block></script></block-definition><block-definition s="set name of costume %&apos;costume&apos; to %&apos;name&apos;" type="command" category="looks"><header></header><code></code><translations>pl:ustaw nazwę kostiumu _ na _&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%s">thing</input></inputs><script><block s="doSetVar"><l>costume</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><block var="costume"/><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block></block><block s="doIf"><block s="reportIsA"><block var="costume"/><l><option>costume</option></l></block><script><block s="doApplyExtension"><l>obj_name(obj, name)</l><list><block var="costume"/><block var="name"/></list></block></script><list></list></block></script></block-definition><block-definition s="export costume list %&apos;costumes&apos; base name %&apos;name&apos;" type="command" category="looks"><header></header><code></code><translations>pl:eksportuj listę kostiumu _ nazwa _&#xD;</translations><inputs><input type="%l"></input><input type="%s">frame</input></inputs><script><block s="doDeclareVariables"><list><l>count</l></list></block><block s="doSetVar"><l>count</l><block s="reportListAttribute"><l><option>length</option></l><block var="costumes"/></block></block><block s="doForEach"><l>item</l><block s="reportListAttribute"><l><option>reverse</option></l><block var="costumes"/></block><script><block s="doApplyExtension"><l>cst_export(cst, name)</l><list><block var="item"/><block s="reportJoinWords"><list><block var="name"/><l> (</l><block var="count"/><l>)</l></list></block></list></block><block s="doChangeVar"><l>count</l><l>-1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="count"/><l>10</l></block><l>0</l></list></block><script><block s="doWait"><l>1</l></block></script><list></list></block></script></block></script></block-definition><block-definition s="grayscales of %&apos;costume&apos;" type="reporter" category="looks"><header></header><code></code><translations>pl:_ w skali szarości&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doReport"><block s="reportReshape"><block s="reportVariadicSum"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportVariadicProduct"><list><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block><block s="reportNewList"><list><l>.3</l><l>.6</l><l>.1</l></list></block></list></block></block></block><list><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block></list></block></block></script></block-definition><block-definition s="%&apos;filter&apos; filter on %&apos;costume&apos; alpha %&apos;alpha&apos;" type="reporter" category="looks"><header></header><code></code><translations>pl:filtr _ na _ kanał alfa _&#xD;</translations><inputs><input type="%s" readonly="true">blur<options>blur&#xD;sharpen&#xD;outline&#xD;emboss&#xD;edge={&#xD;left&#xD;right&#xD;top&#xD;bottom&#xD;}&#xD;Gauss</options></input><input type="%s" readonly="true">current<options>§_costumesMenu</options></input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>kernel</l><l>pixels</l><l>channels</l></list></block><block s="doSetVar"><l>kernel</l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>rank</option></l><block var="filter"/></block><l>1</l></list></block><block var="filter"/><custom-block s="filter %s"><block var="filter"/></custom-block></block></block><block s="doSetVar"><l>pixels</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block></block><block s="doIf"><block var="alpha"/><script><block s="doSetVar"><l>channels</l><l>4</l></block></script><list><l><bool>true</bool></l><script><block s="doSetVar"><l>channels</l><l>3</l></block><block s="doSetVar"><l>pixels</l><block s="reportVariadicProduct"><list><block var="pixels"/><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l></list></block></list></block><comment w="137" collapsed="true">remove alpha channel</comment></block></script></list></block><block s="doReport"><block s="reportNewCostume"><custom-block s="convolve matrix %l * kernel %l"><block s="reportReshape"><block var="pixels"/><list><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block><block var="channels"/></list></block><block var="kernel"/></custom-block><l></l><l></l></block></block></script></block-definition><block-definition s="filter %&apos;name&apos;" type="reporter" category="looks"><header></header><code></code><translations>pl:filtr _&#xD;</translations><inputs><input type="%s" readonly="true">blur<options>blur&#xD;sharpen&#xD;outline&#xD;emboss&#xD;edge={&#xD;left&#xD;right&#xD;top&#xD;bottom&#xD;}&#xD;Gauss</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="name"/><l>sharpen</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>0</l><l>-1</l><l>0</l><l>-1</l><l>5</l><l>-1</l><l>0</l><l>-1</l><l>0</l></custom-block></block></script><list><block s="reportVariadicEquals"><list><block var="name"/><l>outline</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-1</l><l>-1</l><l>-1</l><l>-1</l><l>8</l><l>-1</l><l>-1</l><l>-1</l><l>-1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>emboss</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-2</l><l>-1</l><l>0</l><l>-1</l><l>1</l><l>1</l><l>0</l><l>1</l><l>2</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>left</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-1</l><l>0</l><l>1</l><l>-2</l><l>0</l><l>2</l><l>-1</l><l>0</l><l>1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>right</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>1</l><l>0</l><l>-1</l><l>2</l><l>0</l><l>-2</l><l>1</l><l>0</l><l>-1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>top</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>-1</l><l>-2</l><l>-1</l><l>0</l><l>0</l><l>0</l><l>1</l><l>2</l><l>1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>bottom</l></list></block><script><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>1</l><l>2</l><l>1</l><l>0</l><l>0</l><l>0</l><l>-1</l><l>-2</l><l>-1</l></custom-block></block></script><block s="reportVariadicEquals"><list><block var="name"/><l>gauss</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l><l>4</l><l>1</l></list></block><block s="reportNewList"><list><l>4</l><l>16</l><l>26</l><l>16</l><l>4</l></list></block><block s="reportNewList"><list><l>7</l><l>26</l><l>41</l><l>26</l><l>7</l></list></block><block s="reportNewList"><list><l>4</l><l>16</l><l>26</l><l>16</l><l>4</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l><l>4</l><l>1</l></list></block></list></block><l>273</l></block></block></script></list></block><block s="doReport"><custom-block s="kernel %br %n %n %n %br %n %n %n %br %n %n %n"><l>0.0625</l><l>0.125</l><l>0.0625</l><l>0.125</l><l>0.25</l><l>0.125</l><l>0.0625</l><l>0.125</l><l>0.0625</l><comment w="80" collapsed="false">blur</comment></custom-block></block></script></block-definition><block-definition s="rectangle costume %&apos;color&apos; width: %&apos;w&apos; height: %&apos;h&apos;" type="reporter" category="looks"><comment x="0" y="0" w="204.00000000000023" collapsed="false">make a rectangle costume with the given color, width and height. The color can be either specified by the color picker from the input slot, or it can be a list of r-g-b-a values.</comment><header></header><code></code><translations>pl:prostokątny kostium _ szerokość: _ wysokość: _&#xD;</translations><inputs><input type="%clr"></input><input type="%n">20</input><input type="%n">60</input></inputs><script><block s="doIf"><block s="reportIsA"><block var="color"/><l><option>list</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportApplyExtension"><l>clr_rgba(r, g, b, a)</l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="color"/></block><l>4</l></list></block><block s="reportConcatenatedLists"><list><block s="reportReshape"><block var="color"/><list><l>3</l></list></block><block s="reportNewList"><list><l>255</l></list></block></list></block><block s="reportReshape"><block var="color"/><list><l>4</l></list></block></block></block></block></script><list></list></block><block s="doReport"><block s="reportNewCostume"><block s="reportReshape"><block s="reportVariadicProduct"><list><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block var="color"/><l></l></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>r</l><l>g</l><l>b</l><l>a</l></list></block></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l><l>255</l></list></block></list></block><list><block s="reportVariadicProduct"><list><block s="reportVariadicMax"><list><block s="reportMonadic"><l><option>abs</option></l><block var="h"/></block><l>1</l></list></block><block s="reportVariadicMax"><list><block s="reportMonadic"><l><option>abs</option></l><block var="w"/></block><l>1</l></list></block></list></block><l>4</l></list></block><block s="reportVariadicMax"><list><block s="reportMonadic"><l><option>abs</option></l><block var="w"/></block><l>1</l></list></block><block s="reportVariadicMax"><list><block s="reportMonadic"><l><option>abs</option></l><block var="h"/></block><l>1</l></list></block></block></block></script></block-definition><block-definition s="kernel $nl %&apos;a1&apos; %&apos;b1&apos; %&apos;c1&apos; $nl %&apos;a2&apos; %&apos;b2&apos; %&apos;c2&apos; $nl %&apos;a3&apos; %&apos;b3&apos; %&apos;c3&apos;" type="reporter" category="lists"><header></header><code></code><translations>pl:jądro _ _ _ _ _ _ _ _ _ _ _ _&#xD;</translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportReshape"><block s="reportEnvironment"><l><option>inputs</option></l></block><list><l>3</l><l>3</l></list></block></block></script></block-definition><block-definition s="convolve matrix %&apos;matrix&apos; * kernel %&apos;kernel&apos;" type="reporter" category="operators"><header></header><code></code><translations>pl:przemnóż macierz _ * jądro _&#xD;</translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>padding</l><l>channels</l><l>every coordinate</l><l>channel indices</l></list></block><block s="doSetVar"><l>padding</l><block s="reportQuotient"><block s="reportDifference"><block s="reportListItem"><block s="reportNewList"><list><l>1</l><l>2</l></list></block><block s="reportListAttribute"><l><option>dimensions</option></l><block var="kernel"/></block></block><l>1</l></block><l>2</l></block><comment w="119" collapsed="false">assume odd dimensions, typically 3x3 or 5x5</comment></block><block s="doSetVar"><l>channels</l><block s="reportListItem"><l>3</l><block s="reportListAttribute"><l><option>dimensions</option></l><block var="matrix"/></block></block></block><block s="doSetVar"><l>every coordinate</l><block s="reportCrossproduct"><block s="reportNumbers"><l>1</l><block s="reportListItem"><block s="reportNewList"><list><l>1</l><l>2</l></list></block><block s="reportListAttribute"><l><option>dimensions</option></l><block var="matrix"/></block></block></block></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="channels"/><l>0</l></list></block><script><block s="doSetVar"><l>channel indices</l><block s="reportNewList"><list><block s="reportReshape"><block s="reportNumbers"><l>1</l><block var="channels"/></block><list><block s="reportListAttribute"><l><option>length</option></l><block var="every coordinate"/></block><block var="channels"/></list></block></list></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="reportListAttribute"><l><option>dimensions</option></l><block var="kernel"/></block><l>3</l></list></block><script><block s="doSetVar"><l>kernel</l><block s="reportReshape"><custom-block s="stretch %l by %n"><block s="reportListAttribute"><l><option>flatten</option></l><block var="kernel"/></block><block var="channels"/></custom-block><block s="reportConcatenatedLists"><list><block s="reportListAttribute"><l><option>dimensions</option></l><block var="kernel"/></block><block s="reportNewList"><list><block var="channels"/></list></block></list></block></block></block></script><list></list><comment w="90" collapsed="false">reshape the kernel to match the input matrix&apos;s channels, if any</comment></block></script><script><block s="doSetVar"><l>channel indices</l><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportReshape"><block s="reportVariadicSum"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportVariadicSum"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportConcatenatedLists"><list><block s="reportListAttribute"><l><option>columns</option></l><block s="reportNumbers"><block s="reportDifference"><block var="every coordinate"/><block var="padding"/></block><block s="reportVariadicSum"><list><block var="every coordinate"/><block var="padding"/></list></block></block></block><block var="channel indices"/></list></block></block><block var="matrix"/></block><block var="kernel"/></list></block></block></block></block></block><block s="reportListAttribute"><l><option>dimensions</option></l><block var="matrix"/></block><comment w="80" collapsed="false">for every padded pixel create a partial copy of the input, item-multiply it with the kernel and take its overall sum (∑)</comment></block></block></script></block-definition><block-definition s="stretch %&apos;data&apos; by %&apos;factor&apos;" type="reporter" category="lists"><header></header><code></code><translations>pl:rozciągnij _ o _&#xD;de:strecke _ um _&#xD;</translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportNumbers"><l>1</l><block s="reportVariadicProduct"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><block var="factor"/></list></block></block><block var="factor"/></block></block><block var="data"/></block></block></script></block-definition><block-definition s="compress %&apos;data&apos; by %&apos;factor&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:stauche _ um _&#xD;</translations><inputs><input type="%l" initial="1"></input><input type="%n" initial="1"></input></inputs><script><block s="doReport"><custom-block s="stretch %l by %n"><block var="data"/><block s="reportQuotient"><l>1</l><block var="factor"/></block></custom-block></block></script></block-definition><block-definition s="outline color: %&apos;clr&apos; width: %&apos;w&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1">5</input><input type="%n" initial="1">5</input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>padding</l><l>color</l><l>halo</l><l>empty</l></list></block><block s="doSetVar"><l>padding</l><block var="w"/></block><block s="doSetVar"><l>empty</l><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l><l>0</l></list></block></block><block s="doSetVar"><l>color</l><block s="reportVariadicProduct"><list><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block var="clr"/><l></l></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>r</l><l>g</l><l>b</l><l>a</l></list></block></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l><l>255</l></list></block></list></block></block><block s="doSetVar"><l>costume</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="clear"></block><block s="doSwitchToCostume"><block s="reportNewCostume"><block s="reportReshape"><l>0</l><block s="reportVariadicSum"><list><block s="reportNewList"><list><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block></list></block><block s="reportVariadicProduct"><list><block var="padding"/><l>2</l></list></block></list></block></block><l></l><l></l></block></block><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block s="reifyScript"><script><block s="doSwitchToCostume"><block var="costume"/></block><block s="doSetVar"><l><option>my rotation style</option></l><l>0</l></block><block s="doWarp"><script><block s="doRepeat"><l>36</l><script><block s="forward"><block var="padding"/></block><block s="doPasteOn"><l></l></block><block s="forward"><block s="reportMonadic"><l><option>neg</option></l><block var="padding"/></block></block><block s="turn"><l>10</l></block></script></block></script></block><block s="doCutFrom"><l></l></block><block s="removeClone"></block></script><list></list></block><list><block s="reportGet"><l><option>self</option></l></block></list></block><block s="doSwitchToCostume"><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></block></block><l>1</l></list></block><block var="empty"/><block var="color"/></block></block><block s="doSetVar"><l>halo</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSwitchToCostume"><block var="costume"/></block><block s="doReport"><block var="halo"/></block></script></block-definition><block-definition s="halo color: %&apos;clr&apos; width: %&apos;w&apos; while %&apos;test&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1">2</input><input type="%n" initial="1">5</input><input type="%boolUE" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>halo</l></list></block><block s="doSetVar"><l>costume</l><custom-block s="outline color: %clr width: %n"><block var="clr"/><block var="w"/></custom-block></block><block s="doSetVar"><l>halo</l><block s="newClone"><l><option>Turtle sprite</option></l></block></block><block s="doTellTo"><block var="halo"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block var="costume"/></block><block s="doSetVar"><l><option>my anchor</option></l><l></l></block></script><list></list></block><list><block s="reportGet"><l><option>self</option></l></block></list></block><block s="doWaitUntil"><block s="reportNot"><block s="evaluate"><block var="test"/><list></list></block></block></block><block s="doTellTo"><block var="halo"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="halo color: %&apos;clr&apos; width: %&apos;w&apos; for %&apos;time&apos; secs" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1">2</input><input type="%n" initial="1">5</input><input type="%n" initial="1">2</input></inputs><script><block s="doDeclareVariables"><list><l>end</l></list></block><block s="doSetVar"><l>end</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="time"/><l>1000</l></list></block></list></block></block><custom-block s="halo color: %clr width: %n while %boolUE"><block var="clr"/><block var="w"/><block s="reportVariadicLessThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end"/></list></block></custom-block></script></block-definition><block-definition s="fade in %&apos;samples&apos; for %&apos;count&apos;" type="reporter" category="sound"><header></header><code></code><translations>pl:zanikanie _ przez _&#xD;</translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="samples"/><block s="reportConcatenatedLists"><list><block s="reportQuotient"><block s="reportNumbers"><l>0</l><block var="count"/></block><block var="count"/></block><block s="reportReshape"><block s="reportMonadic"><l><option>id</option></l><l>1</l></block><list><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="samples"/></block><block var="count"/></block></list></block></list></block></list></block></block></script></block-definition><block-definition s="$flash analyze %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="149" collapsed="false">returns a frequency analysis of the argument list, represented as a two-column table, where the first column contains the unique values and the second column their occurrences</comment><header></header><code></code><translations>pt:$flash as frequências dos itens de _&#xD;ca:$flash analitza _&#xD;pl:$flash analizuj _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>dta_analyze(list)</l><list><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash group %&apos;data&apos; by %&apos;fn&apos;" type="reporter" category="lists"><header></header><code></code><translations>pt:o agrupamento dos itens de _ de acordo com _&#xD;ca:$flash agrupa _ per _&#xD;pl:$flash grupuj _ według _&#xD;</translations><inputs><input type="%l"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>dta_group(list, fn)</l><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; by %&apos;fn&apos;" type="reporter" category="lists"><header></header><code></code><translations>pt:uma ordenação de _ com critério _&#xD;ca:$flash ordena _ per _&#xD;pl:$flash sortuj _ według _&#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="fn"/></list></block></block></script></block-definition><block-definition s="histogram of %&apos;data&apos; from: %&apos;floor&apos; to: %&apos;ceiling&apos; interval: %&apos;interval&apos;" type="reporter" category="lists"><header></header><code></code><translations>pt:o histograma de _ entre _ e _ com intervalo _&#xD;ca:histograma de _ des de: _ fins: _ interval: _&#xD;pl:wykres _ od: _ do: _ odstęp: _&#xD;</translations><inputs><input type="%l"></input><input type="%n"></input><input type="%n"></input><input type="%n">1</input></inputs><script><block s="doReport"><custom-block s="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><custom-block s="$flash sort %l by %predRing"><custom-block s="$flash analyze %l"><block var="data"/></custom-block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></custom-block><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="floor"/><block var="ceiling"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><block var="interval"/></list></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l>0</l></list></block></autolambda><list></list></block></custom-block></block></script></block-definition><block-definition s="histogram of %&apos;data&apos; grouped by: %&apos;key&apos; from: %&apos;floor&apos; to: %&apos;ceiling&apos; interval: %&apos;interval&apos;" type="reporter" category="lists"><header></header><code></code><translations>pt:o histograma de _ agrupado de acordo com _ entre _ e _ com passo _&#xD;ca:histograma de _ agrupat per: _ des de: _ fins: _ interval: _&#xD;pl:wykres _ pogrupowany według: _ od: _ do: _ odstęp: _&#xD;</translations><inputs><input type="%l"></input><input type="%repRing"></input><input type="%n"></input><input type="%n"></input><input type="%repRing"></input></inputs><script><block s="doReport"><custom-block s="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><custom-block s="$flash sort %l by %predRing"><custom-block s="$flash group %l by %repRing"><block var="data"/><block var="key"/></custom-block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></custom-block><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="floor"/><block var="ceiling"/><block var="interval"/><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l>0</l><block s="reportNewList"><list></list></block></list></block></autolambda><list></list></block></custom-block></block></script></block-definition><block-definition s="fill %&apos;data&apos; key: %&apos;key&apos; from: %&apos;floor&apos; to: %&apos;ceiling&apos; interval: %&apos;interval&apos; with: %&apos;generator&apos;" type="reporter" category="lists"><comment x="0" y="0" w="103" collapsed="false">add missing entries to a sorted list. Used for histograms</comment><header></header><code></code><translations>pt:os itens de _ com a chave _ entre _ e _ com passo _ completados por _&#xD;ca:omple _ clau: _ des de: _ fins: _ interval: _ amplada: _&#xD;pl:wypełnij _ klucz: _ od: _ do: _ odstęp: _ z: _&#xD;</translations><inputs><input type="%l"></input><input type="%repRing"></input><input type="%n"></input><input type="%n"></input><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="floor"/><block var="ceiling"/></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="generator"/><list><block var="floor"/></list></block><custom-block s="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block var="data"/><block var="key"/><block s="evaluate"><block var="interval"/><list><block var="floor"/></list></block><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="evaluate"><block var="key"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block var="floor"/></list></block><script><block s="doReport"><custom-block s="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block s="reportCDR"><block var="data"/></block><block var="key"/><block var="floor"/><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="evaluate"><block var="key"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block var="floor"/></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block s="reportCDR"><block var="data"/></block><block var="key"/><block s="evaluate"><block var="interval"/><list><block var="floor"/></list></block><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="generator"/><list><block var="floor"/></list></block><custom-block s="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block var="data"/><block var="key"/><block s="evaluate"><block var="interval"/><list><block var="floor"/></list></block><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></block></script></block-definition><block-definition s="%&apos;text&apos; $arrowRight lower case" type="reporter" category="operators"><header></header><code></code><translations>pt:_ em minúsculas&#xD;ca:_ $arrowRight minúscules&#xD;pl:_ $arrowRight małe litery&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_lowercase(txt)</l><list><block var="text"/></list></block></block></script></block-definition><block-definition s="plot %&apos;data&apos; %&apos;style&apos; at x: %&apos;left&apos; y: %&apos;bottom&apos; width: %&apos;width&apos; height: %&apos;height&apos;" type="command" category="pen"><header></header><code></code><translations>pt:desenha gráfico de barras de _ em (x: _ , y: _ ) com largura _ e altura _&#xD;ca:dibuixa _ _ a x: _ y: _ i ample: _ alçada: _&#xD;pl:wykres _ _ x: _ y: _ szerokość: _ wysokość: _&#xD;</translations><inputs><input type="%l"></input><input type="%s" readonly="true">bars<options>bars&#xD;lines&#xD;pie chart</options></input><input type="%n">-200</input><input type="%n">-100</input><input type="%n">400</input><input type="%n">200</input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="style"/><l>pie chart</l></list></block><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>r</l><l>total</l><l>start</l><l>end</l><l>state</l><l>pen size</l><l>heading</l></list></block><block s="doSetVar"><l>r</l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="height"/><block var="width"/></list></block><block s="reportQuotient"><block var="height"/><l>2</l></block><block s="reportQuotient"><block var="width"/><l>2</l></block></block></block><block s="doSetVar"><l>x</l><block s="reportVariadicSum"><list><block var="left"/><block var="r"/></list></block></block><block s="doSetVar"><l>y</l><block s="reportVariadicSum"><list><block var="bottom"/><block var="r"/></list></block></block><block s="doSetVar"><l>total</l><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><block s="doSetVar"><l>state</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><block s="getPenAttribute"><l></l></block></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>hue</l><l>saturation</l><l>brightness</l></list></block></block></block><block s="doSetVar"><l>pen size</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="doSetVar"><l>heading</l><block s="direction"></block></block><block s="setPenColorDimension"><l><option>hue</option></l><l>0</l></block><block s="setPenColorDimension"><l><option>brightness</option></l><l>80</l></block><block s="setPenColorDimension"><l><option>saturation</option></l><l>80</l></block><block s="setSize"><l>1</l></block><block s="doWarp"><script><block s="doForEach"><l>slice</l><block var="data"/><script><block s="doChangeVar"><l>end</l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="slice"/><block var="total"/></block><l>360</l></list></block></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="down"></block><block s="doFor"><l>i</l><block var="start"/><block var="end"/><script><block s="gotoXY"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicProduct"><list><block var="r"/><block s="reportMonadic"><l><option>sin</option></l><block var="i"/></block></list></block></list></block><block s="reportVariadicSum"><list><block var="y"/><block s="reportVariadicProduct"><list><block var="r"/><block s="reportMonadic"><l><option>cos</option></l><block var="i"/></block></list></block></list></block></block></script></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="up"></block><block s="setHeading"><block var="start"/></block><block s="turn"><block s="reportQuotient"><block s="reportDifference"><block var="end"/><block var="start"/></block><l>2</l></block></block><block s="forward"><block s="reportQuotient"><block var="r"/><l>2</l></block></block><block s="floodFill"></block><block s="changePenColorDimension"><l><option>hue</option></l><block s="reportQuotient"><l>100</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><block s="doSetVar"><l>start</l><block var="end"/></block></script></block><block s="doForEach"><l>setting</l><block var="state"/><script><block s="setPenColorDimension"><block s="reportListItem"><l>1</l><block var="setting"/></block><block s="reportListItem"><l>2</l><block var="setting"/></block></block></script></block></script></block><block s="setSize"><block var="pen size"/></block><block s="setHeading"><block var="heading"/></block></script><script><block s="doDeclareVariables"><list><l>ratio</l><l>step</l><l>flat line ends</l><l>col</l><l>sorted</l><l>min</l></list></block><block s="doSetVar"><l>sorted</l><custom-block s="$flash sort %l by %predRing"><block var="data"/><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l><option>last</option></l><block var="sorted"/></block><l>0</l></list></block><script><block s="doSetVar"><l>min</l><block s="reportListItem"><l><option>last</option></l><block var="sorted"/></block></block></script><script><block s="doSetVar"><l>min</l><l>0</l></block></script></block><block s="doSetVar"><l>ratio</l><block s="reportQuotient"><block var="height"/><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="sorted"/></block><block var="min"/></block></block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><block var="width"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="step"/><l>2</l></list></block><script><block s="doSetVar"><l>col</l><block s="reportDifference"><block var="step"/><l>1</l></block></block></script><script><block s="doSetVar"><l>col</l><block s="reportVariadicProduct"><list><block var="step"/><l>0.8</l></list></block></block></script></block><block s="gotoXY"><block var="left"/><block var="bottom"/></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="style"/><l>lines</l></list></block><script><block s="changeXPosition"><block s="reportQuotient"><block var="step"/><l>-2</l></block></block><block s="doWarp"><script><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="gotoXY"><block s="reportVariadicSum"><list><block s="xPosition"></block><block var="step"/></list></block><block s="reportVariadicSum"><list><block var="bottom"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="data"/></block><block var="min"/></block><block var="ratio"/></list></block></list></block></block><block s="down"></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block></script><script><block s="doSetVar"><l>flat line ends</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><l><bool>true</bool></l></block><block s="setSize"><l>0.5</l></block><block s="down"></block><block s="changeXPosition"><block s="reportQuotient"><block var="step"/><l>2</l></block></block><block s="doWarp"><script><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="setSize"><block var="col"/></block><block s="changeYPosition"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="data"/></block><block var="min"/></block><block var="ratio"/></list></block></block><block s="setYPosition"><block var="bottom"/></block><block s="setSize"><l>0.5</l></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="changeXPosition"><block var="step"/></block></script><script><block s="changeXPosition"><block s="reportQuotient"><block var="step"/><l>2</l></block></block></script></block></script></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends"/></block></script></block><block s="up"></block></script></block></script></block-definition><block-definition s="store key: %&apos;key&apos; value: %&apos;value&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:desa clau: _ amb valor: _ al navegador&#xD;pl:przechowaj klucz: _ wartość: _ w przeglądarce&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_store(key, val)</l><list><block var="key"/><block var="value"/></list></block></script></block-definition><block-definition s="stored data in browser" type="reporter" category="other"><header></header><code></code><translations>ca:dades desades al navegador&#xD;pl:dane w przeglądarce&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_getall</l><list></list></block></block></script></block-definition><block-definition s="remove key: %&apos;key&apos; in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra clau: _ del navegador&#xD;pl:usuń klucz: _ w przeglądarce&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>db_remove(key)</l><list><block var="key"/></list></block></script></block-definition><block-definition s="clear data in browser" type="command" category="other"><header></header><code></code><translations>ca:esborra dades del navegador&#xD;pl:wyczyść dane w przeglądarce&#xD;</translations><inputs></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><custom-block s="stored data in browser"></custom-block><script><custom-block s="remove key: %s in browser"><block s="reportListItem"><l>1</l><block var="item"/></block></custom-block></script></block></script></block></script></block-definition><block-definition s="get value from key: %&apos;key&apos; in browser" type="reporter" category="other"><comment x="0" y="0" w="199.33333333333334" collapsed="false">Reports the value previously stored under&#xD;the input key in the browser&apos;s local storage.&#xD;Reports False if the key is not found.</comment><header></header><code></code><translations>ca:obté valor de clau: _ al navegador&#xD;pl:pobierz wartość z klucza: _ w przeglądarce&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>db_get(key)</l><list><block var="key"/></list></block></block></script></block-definition><block-definition s="for each tile sized %&apos;side&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="144.00000000000023" collapsed="false">Divide the stage into a grid of square regions with the given side length and perform an action at the center of each.</comment><header></header><code></code><translations>de:für jede Kachel der Größe _ _&#xD;pl:dla każdego kafelka rozmiar _ _&#xD;</translations><inputs><input type="%n">20</input><input type="%ca"></input></inputs><script><block s="doDeclareVariables"><list><l>ext</l><l>dim</l><l>origin</l></list></block><block s="doSetVar"><l>ext</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="doSetVar"><l>dim</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="ext"/><block var="side"/></block></block></block><block s="doSetVar"><l>origin</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="ext"/><l>-2</l></block><block s="reportQuotient"><block s="reportDifference"><block var="ext"/><block s="reportVariadicProduct"><list><block var="dim"/><block var="side"/></list></block></block><l>2</l></block><block s="reportQuotient"><block var="side"/><l>2</l></block></list></block></block><block s="doWarp"><script><block s="doForEach"><l>coord</l><block s="reportCrossproduct"><block s="reportNumbers"><l>1</l><block var="dim"/></block></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block var="origin"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="coord"/><l>1</l></block><block var="side"/></list></block></list></block></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="for each %&apos;tile&apos; in %&apos;cols&apos; %&apos;col&apos; by %&apos;rows&apos; %&apos;row&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="181" collapsed="false">Divide the stage into a grid of same-sized rectangles specified by the number of columns and rows and perform an action at the center of each.</comment><header></header><code></code><translations>de:für jede _ im Raster _ _ zu _ _ _&#xD;pl:dla każdego _ w _ _ po _ _ _&#xD;</translations><inputs><input type="%upvar">$_tile</input><input type="%n">20</input><input type="%upvar">$_column</input><input type="%n">15</input><input type="%upvar">$_row</input><input type="%ca"></input></inputs><script><block s="doDeclareVariables"><list><l>ext</l><l>dim</l><l>origin</l></list></block><block s="doSetVar"><l>ext</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><block s="doSetVar"><l>dim</l><block s="reportNewList"><list><block var="cols"/><block var="rows"/></list></block></block><block s="doSetVar"><l>tile</l><block s="reportQuotient"><block var="ext"/><block var="dim"/></block></block><block s="doSetVar"><l>origin</l><block s="reportVariadicSum"><list><block s="reportQuotient"><block var="ext"/><l>-2</l></block><block s="reportQuotient"><block var="tile"/><l>2</l></block></list></block></block><block s="doWarp"><script><block s="doForEach"><l>coord</l><block s="reportCrossproduct"><block s="reportNumbers"><l>1</l><block var="dim"/></block></block><script><block s="doGotoObject"><block s="reportVariadicSum"><list><block var="origin"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="coord"/><l>1</l></block><block var="tile"/></list></block></list></block></block><block s="doSetVar"><l>col</l><block s="reportListItem"><l>1</l><block var="coord"/></block></block><block s="doSetVar"><l>row</l><block s="reportListItem"><l>2</l><block var="coord"/></block></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="render each %&apos;cell&apos; in table %&apos;table&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="144.00000000000023" collapsed="false">Divide the stage into a grid of square regions matching the dimensions of the given table and perform an action at the center of each.</comment><header></header><code></code><translations>de:für jede _ in Tabelle _ _&#xD;pl:dla każdej _ w tabeli _ _&#xD;</translations><inputs><input type="%upvar" initial="1">$_cell</input><input type="%l" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doSetVar"><l>table</l><block s="reportListAttribute"><l><option>reverse</option></l><block var="table"/></block></block><custom-block s="for each %upvar in %n %upvar by %n %upvar %ca"><l>tile</l><block s="reportListAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block var="table"/></block></block><l>col</l><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block><l>row</l><script><block s="doSetVar"><l>cell</l><block s="reportListItem"><block var="col"/><block s="reportListItem"><block var="row"/><block var="table"/></block></block></block><block s="doRun"><block var="action"/><list></list></block></script></custom-block></script></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>All but first of empty word.</l></custom-block></script><list></list></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.000001" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a primeira palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bf</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bf</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportCDR"><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><script><block s="doSetVar"><l>bf</l><block s="reportJoinWords"><list><block var="bf"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block var="bf"/></block></script></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doWarp"><script><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicEquals"><list><block var="i"/><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></list></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script><scripts><script x="145.9951171875" y="332.6666666666667"><block s="evaluate"><block s="reportJSFunction"><list><l>str</l></list><l>return str.slice(0,-1);</l></block><list><block s="errorObsolete"></block></list></block></script></scripts></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.99999999999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a última palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bl</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bl</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></block><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block var="index"/><l>1</l></list></block><script><block s="doSetVar"><l>bl</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="bl"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doReport"><block var="bl"/></block></script></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>first</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>first</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>First of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>First of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block></script><list></list></block><block s="doReport"><block var="first"/></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations>pt:o último caractere de _&#xD;ca:primera lletra de _&#xD;es:última letra de _&#xD;pl:ostatnia litera _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>Last of empty word.</l></custom-block></script><list></list></block><block s="doReport"><block s="reportLetter"><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a última palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>last</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>last</l><l></l></block><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doSetVar"><l>index</l><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block></script><list></list></block><block s="doReport"><block var="last"/></block></script></block></script></block-definition><block-definition s="first word of %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:erstes Wort von _&#xD;pl:pierwsze słowo _&#xD;</translations><inputs><input type="%s">this is fine</input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="text"/><l><option>word</option></l></block></block></block></script></block-definition><block-definition s="all but first word of %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:alles außer dem ersten Wort von _&#xD;pl:_ bez pierwszego słowa&#xD;</translations><inputs><input type="%s">this is fine</input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>text</option></l><block s="reportCDR"><block s="reportTextSplit"><block var="text"/><l><option>word</option></l></block></block></block></block></script></block-definition><block-definition s="sentence with %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz aus _&#xD;pl:zdanie z _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>text</option></l><block var="words"/></block></block></script></block-definition><block-definition s="is %&apos;text&apos; empty?" type="predicate" category="operators"><header></header><code></code><translations>de:ist _ leer?&#xD;</translations><inputs><input type="%s">word</input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="text"/><l></l></list></block></block></script></block-definition><block-definition s="replace every %&apos;pattern&apos; with %&apos;other&apos; in %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">substitute all occurrences of a letter or a sequence of letters in a text with another or none.</comment><header></header><code></code><translations>de:ersetze jedes _ durch _ in _&#xD;pl:zamień każde _ na _ w _&#xD;</translations><inputs><input type="%s">t</input><input type="%s">sh</input><input type="%s">tower top</input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportTextSplit"><block var="text"/><block var="pattern"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block var="other"/><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="max %&apos;a&apos; $⌈-1-255-255-0 %&apos;b&apos;" type="reporter" category="operators"><comment x="0" y="0" w="150.66666666666666" collapsed="false">Reports the greater of its two inputs. Works on strings too.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block var="a"/><block var="b"/></list></block><block var="a"/><block var="b"/></block></autolambda><list><l>a</l><l>b</l></list></block></custom-block><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="min %&apos;a&apos; $⌊-1.2-255-255-0 %&apos;b&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.33333333333334" collapsed="true">Reports the smaller of its two inputs.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="scalar -&gt; hyper %repRing"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="a"/><block var="b"/></list></block><block var="a"/><block var="b"/></block></autolambda><list><l>a</l><l>b</l></list></block></custom-block><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="signum $×-1-255-255-0 %&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 $×-1-255-255-0 %n"><l></l></custom-block></autolambda><list></list></block><block var="num"/></block></block></script><list></list></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><list></list></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="reciprocal $÷-1-255-255-0 %&apos;num&apos;" type="reporter" category="operators"><comment x="0" y="0" w="102.66666666666667" collapsed="false">reports 1 divided&#xD;by its input.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><l>1</l><block var="num"/></block></block></script></block-definition><block-definition s="roll $?-1-255-255-0 %&apos;num&apos;" type="reporter" category="operators"><comment x="0" y="0" w="180.66666666666666" collapsed="false">This block reports a random integer between 1 and its input.  To roll more than one die, use (for three dice)&#xD;roll (reshape as 3 items of 6)&#xD;APL:  ?3⍴6&#xD;Don&apos;t use reshape as 3 items of roll 6, because that would roll one die and report 3 copies of the same random roll. </comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportRandom"><l>1</l><block var="num"/></block></block></script></block-definition><block-definition s="NAND %&apos;a&apos; $⍲-1.4-255-255-0 %&apos;b&apos;" type="predicate" category="operators"><comment x="0" y="0" w="198.66666666666666" collapsed="false">Reports the not-and of its inputs, in the form&#xD;0 for false, 1 for true.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="NOT $&#126;-1-255-255-0 %s"><custom-block s="LCM (and) %n $∧-1.2-255-255-0 %n"><block var="a"/><block var="b"/></custom-block></custom-block></block></script></block-definition><block-definition s="NOR %&apos;a&apos; $⍱-1.4-255-255-0 %&apos;b&apos;" type="predicate" category="operators"><comment x="0" y="0" w="198.66666666666666" collapsed="false">Reports the not-and of its inputs, in the form&#xD;0 for false, 1 for true.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="NOT $&#126;-1-255-255-0 %s"><custom-block s="GCD (or) %n $∨-1.2-255-255-0 %n"><block var="a"/><block var="b"/></custom-block></custom-block></block></script></block-definition><block-definition s="log base %&apos;b&apos; $⍟-1.5-255-255-0 %&apos;x&apos;" type="reporter" category="operators"><comment x="0" y="0" w="212" collapsed="false">Computes logarithms in any base.&#xD;&#xD;The base is the left input.  It&apos;s usual in APL that if there&apos;s a main data input and some sort of control input, the latter comes on the left.  This is because APL syntax, unless you use parentheses, groups computations from right to left.&#xD;&#xD;APL has a monadic version of this function that computes natural logs (log to the base e).</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><block s="reportQuotient"><block s="reportMonadic"><l><option>ln</option></l><block var="x"/></block><block s="reportMonadic"><l><option>ln</option></l><block var="b"/></block></block></autolambda><list><l>b</l><l>x</l></list></block></custom-block><list><block var="b"/><block var="x"/></list></block></block></script></block-definition><block-definition s="NOT $&#126;-1-255-255-0 %&apos;p&apos;" type="reporter" category="operators"><comment x="0" y="0" w="167.33333333333334" collapsed="false">Reports 1 if the input is False or 0;&#xD;otherwise reports 0.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportDifference"><l>1</l><custom-block s="signum $×-1-255-255-0 %n"><block var="p"/></custom-block></block></block></script></block-definition><block-definition s="identity $+-1-255-255-0 %&apos;x&apos;" type="reporter" category="operators"><comment x="0" y="0" w="210.00000000000003" collapsed="false">Reports its input.&#xD;This is useful to fit a value into a different-type input slot, e.g., number into list slot.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="head of stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of ITEM 1 OF.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:o primeiro item do canal _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="stream"/></block></block></script></block-definition><block-definition s="tail of stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of ALL BUT FIRST OF.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:um canal com todos os itens de _ menos o primeiro&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListItem"><l>3</l><block var="stream"/></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="stream"/></block></block></script><list></list></block><block s="doReplaceInList"><l>4</l><block var="stream"/><block s="evaluate"><block s="reportListItem"><l>2</l><block var="stream"/></block><list></list></block></block><block s="doReplaceInList"><l>3</l><block var="stream"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReport"><block s="reportListItem"><l>4</l><block var="stream"/></block></block></script></block></script></block-definition><block-definition s="%&apos;head&apos; in front of stream %&apos;tail&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of IN FRONT OF.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is here in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:a prefixação de _ ao canal _&#xD;</translations><inputs><input type="%s"></input><input type="%anyUE"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="head"/><block var="tail"/><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></script></block-definition><block-definition s="comment %&apos;text&apos;" type="command" category="other"><comment x="0" y="0" w="122.00000000000001" collapsed="false">A multiline text block, that doesn’t *do* anything.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">no comment!</input></inputs></block-definition><block-definition s="the empty stream" type="reporter" category="Streams"><comment x="0" y="0" w="312.8" collapsed="false">A stream without elements.&#xD;&#xD;This block is one of five lower-level stream blocks, directly interacting with the data structure, hiding it for the higher-level stream blocks.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="THE EMPTY STREAM"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>THE EMPTY STREAM</l><block s="reportNewList"><list><l>*the empty stream*</l></list></block></block></script><list></list></block><block s="doReport"><block var="THE EMPTY STREAM"/></block></script><scripts><script x="7.142857142857143" y="152.71666666666675"><custom-block s="comment %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script></scripts></block-definition><block-definition s="$speechBubble %&apos;text&apos;" type="command" category="other"><comment x="0" y="0" w="122.00000000000001" collapsed="false">A multiline text block, that doesn’t *do* anything.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">no comment!</input></inputs></block-definition><block-definition s="is stream %&apos;stream&apos; empty?" type="predicate" category="Streams"><comment x="0" y="0" w="406.2" collapsed="false">Report if a stream has no elements. &#xD;The stream version of IS EMPTY?.&#xD;The equivalent of SICP function STREAM-NULL?&#xD;&#xD;A stream is considered empty only if it has been computed and is equal to THE EMPTY STREAM.  A stream that has not yet been computed (because it was made with IN FRONT OF STREAM, for example, or with a KEEP whose predicate is never satisfied, isn&apos;t empty even though it may not have any elements.&#xD;&#xD;This block is one of five lower-level stream blocks, directly interacting with the data structure, hiding it for the higher-level stream blocks.&#xD;&#xD;General Info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportVariadicIsIdentical"><list><block var="stream"/><custom-block s="the empty stream"></custom-block></list></block></block></script><scripts><script x="7.142857142857143" y="203.8571428571429"><custom-block s="comment %mlt"><l>Demo</l></custom-block><block s="doReport"><block s="reportNewList"><list><custom-block s="is stream %l empty?"><custom-block s="the empty stream"></custom-block></custom-block><custom-block s="is stream %l empty?"><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block><custom-block s="is stream %l empty?"><custom-block s="stream %mult%s"><list><l></l></list></custom-block></custom-block><custom-block s="is stream %l empty?"><custom-block s="stream %mult%s"><list></list></custom-block></custom-block></list></block></block></script><script x="7.142857142857143" y="322.7619047619048"><custom-block s="comment %mlt"><l>Demo: pathologiocal case (will not terminate)</l></custom-block><block s="doReport"><custom-block s="is stream %l empty?"><custom-block s="keep items %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l>1</l></list></block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="stream %&apos;items&apos;" type="reporter" category="lists"><comment x="0" y="0" w="343.3333333333333" collapsed="false">Make a stream from a finite collection of items, like the LIST primitive.&#xD;Since this block is typically used for small amounts of data, it does not&#xD;delay computation of its inputs.</comment><header></header><code></code><translations>pt:um canal com _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="items"/></block><script><block s="doReport"><block var="items"/></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="reportListItem"><l>1</l><block var="items"/></block><custom-block s="stream %mult%s"><block s="reportCDR"><block var="items"/></block></custom-block></custom-block></block></script></block-definition><block-definition s="stream with numbers from %&apos;start&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of NUMBERS FROM 1 TO, with no&#xD;ending number because it reports the infinite stream of all&#xD;the integers greater than or equal to its input.&#xD;&#xD;Read the code!  It&apos;s deceptively simple.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:um canal com os números a partir de _&#xD;</translations><inputs><input type="%n">1</input></inputs><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="start"/><custom-block s="stream with numbers from %n"><block s="reportVariadicSum"><list><block var="start"/><l>1</l></list></block></custom-block></custom-block></block></script></block-definition><block-definition s="stream repeating %&apos;items&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="332.66666666666674" collapsed="false">Create an infinite stream repeating a finite collection of items.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations>pt:um canal com _&#xD;</translations><inputs><input type="%mult%s" initial="1"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="items"/></block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="reportListItem"><l>1</l><block var="items"/></block><custom-block s="$gears HELPER stream repeating %l"><custom-block s="%l followed by %s"><block s="reportCDR"><block var="items"/></block><block s="reportListItem"><l>1</l><block var="items"/></block></custom-block></custom-block></custom-block></block></script><scripts><script x="7.142857142857143" y="193.72619047619045"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="stream repeating %mult%s"><list><l>A</l><l>b</l><l>3</l></list></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="generate stream %&apos;function&apos; %&apos;#&apos; w/seeds: %&apos;seeds&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="410.44640066964325" collapsed="false">A highly user-configurable stream generator.&#xD;&#xD;INPUT&#xD;1. Function generating new stream items;&#xD;2. Index (#) of the current item within the stream (may be used by the embedded function);&#xD;3. Seeds, i.e. first items of the stream.&#xD;&#xD;HOW IT WORKS&#xD;E.g. with 2 seeds: when generating item 3, items 1 and 2 are inserted into the 1st and 2nd empty slot, repectively, of the embedded function. When item 4 is generated, items 2 and 3 are inserted … (etc.)&#xD;&#xD;RESULT&#xD;An infinite stream. Open the block editor for an example.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAMS.</comment><header></header><code></code><translations>pt:um canal com os números a partir de _&#xD;</translations><inputs><input type="%repRing">1</input><input type="%upvar"></input><input type="%mult%s"></input></inputs><script><custom-block s="let %upvar $arrowLeft %s"><l>function*</l><custom-block s="substitute vars %s"><block var="function"/></custom-block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>seeds*</l><block s="reportMonadic"><l><option>id</option></l><block var="seeds"/></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>generate</l><block s="reifyScript"><script><custom-block s="let %upvar $arrowLeft %s"><l>head</l><block s="evaluate"><block s="reportAttributeOf"><block var="function*"/><block s="reportEnvironment"><l><option>script</option></l></block></block><block var="seeds*"/></block></custom-block><block s="doSetVar"><l>seeds*</l><block s="reportCDR"><custom-block s="%l followed by %s"><block var="seeds*"/><block var="head"/></custom-block></block></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="head"/><block s="evaluate"><block var="generate"/><list></list></block></custom-block></block></script><list></list></block></custom-block><block s="doSetVar"><l>#</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="seeds"/></block><l>1</l></list></block></block><block s="doReport"><custom-block s="append streams %mult%anyUE"><list><custom-block s="stream %mult%s"><block var="seeds"/></custom-block><block s="evaluate"><block var="generate"/><list></list></block></list></custom-block></block></script><scripts><script x="7.142857142857143" y="317.57142857142867"><custom-block s="$speechBubble %mlt"><l>Demo: the Fibonacci sequence</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><l>#</l><list><l>1</l><l>1</l></list></custom-block></custom-block></block></script><script x="7.142857142857143" y="404.7142857142855"><custom-block s="$speechBubble %mlt"><l>Demo: squares</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><block var="#"/></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="map %&apos;function&apos; over stream(s) %&apos;streams&apos;" type="reporter" category="Streams" space="true"><comment x="0" y="0" w="290.2106770833335" collapsed="false">The stream version of variadic MAP (any number of input streams, like MULTMAP in the List utilities library).&#xD;&#xD;All input streams must be either infinite or of the same length.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations>pt:a aplicação de _ aos itens dos canais _&#xD;</translations><inputs><input type="%repRing"></input><input type="%mult%l" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block s="reportListItem"><l>1</l><block var="streams"/></block></custom-block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="evaluate"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="head of stream %l"><l/></custom-block></autolambda><list></list></block><block var="streams"/></block></block><custom-block s="map %repRing over stream(s) %mult%l"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="tail of stream %l"><l/></custom-block></autolambda><list></list></block><block var="streams"/></block></custom-block></custom-block></block></script><scripts><script x="10" y="231.91666666666666"><custom-block s="$speechBubble %mlt"><l>Demo, 1 input stream</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block><list><custom-block s="stream with numbers from %n"><l>1</l></custom-block></list></custom-block></custom-block></block></script><script x="10" y="334.75000000000006"><custom-block s="$speechBubble %mlt"><l>Demo, 2 input streams</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block><list><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="stream with numbers from %n"><l>11</l></custom-block></list></custom-block></custom-block></block></script><script x="10" y="455.5833333333335"><custom-block s="$speechBubble %mlt"><l> Demo of an integrated version of MAP and KEEP.</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="square %n"><l></l></custom-block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script><script x="10" y="612.4166666666667"><custom-block s="$speechBubble %mlt"><l>As of v2 of the Streams library, the block below is obsolete.&#xD;It is kept as a hidden block for upward compatibility with v1.</l></custom-block><custom-block s="$speechBubble %mlt"><custom-block s="map %repRing over stream %mult%l"><block s="reifyReporter"><script></script><list></list></block><list><l/></list></custom-block></custom-block></script></scripts></block-definition><block-definition s="%&apos;variable&apos; $arrowLeft %&apos;value&apos;" type="reporter" category="variables"><comment x="0" y="0" w="94.80000000000001" collapsed="false">Create, and at once initialize, and report, a local variable.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>variable</l><block var="value"/></block><block s="doReport"><block var="variable"/></block></script></block-definition><block-definition s="flatmap %&apos;function&apos; over stream(s) %&apos;streams&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="344.43169642857157" collapsed="false">Like MAP OVER STREAM(S), but it flattens the result (one level). That is, it requires its first input to be a function that reports a stream, so that MAP would report a stream of streams.  FLATMAP reports a stream whose items are *the items of* the streams reported by that function.&#xD;&#xD;FLATMAP for lists is typically defined using APPEND to join the items of the sublists.  Since streams can be infinite, the substreams can&apos;t be appended.  Instead, FLATMAP uses INTERLEAVE STREAMS to combine the items of the substreams.  Therefore, the order of items in the result is not guaranteed.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l" initial="1"></input></inputs><script><block s="doReport"><custom-block s="$gears flatten stream %l"><custom-block s="map %repRing over stream(s) %mult%l"><block var="function"/><block var="streams"/></custom-block></custom-block></block></script><scripts><script x="7.142857142857143" y="179.8571428571429"><custom-block s="$speechBubble %mlt"><l>Demo: all positive rationals</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="flatmap %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>/</l><block var="denominator"/></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="GCD (or) %n $∨-1.2-255-255-0 %n"><l></l><block var="denominator"/></custom-block><l>1</l></list></block></autolambda><list></list></block><block s="reifyReporter"><script></script><list></list></block><custom-block s="stream with numbers from %n"><block var="denominator"/></custom-block></custom-block></autolambda><list><l>denominator</l></list></block><list><custom-block s="stream with numbers from %n"><l>1</l></custom-block></list></custom-block></custom-block></block></script><script x="7.142857142857143" y="380.8571428571426"><custom-block s="$speechBubble %mlt"><l>Advanced version, more balanced output</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="$crosshairs flatmap %repRing over stream %l"><block s="reifyReporter"><autolambda><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>/</l><block var="denominator"/></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="GCD (or) %n $∨-1.2-255-255-0 %n"><l></l><block var="denominator"/></custom-block><l>1</l></list></block></autolambda><list></list></block><block s="reifyReporter"><script></script><list></list></block><custom-block s="stream with numbers from %n"><block var="denominator"/></custom-block></custom-block></autolambda><list><l>denominator</l></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script><script x="7.142857142857143" y="583.9761904761895"><custom-block s="$speechBubble %mlt"><l>A variety of flatmap working for finite substreams only</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="flatmap finite %repRing over stream %l"><block s="reifyReporter"><autolambda><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block var="#1"/><block var="#2"/></list></block></autolambda><list><l>#1</l></list></block><list><custom-block s="stream with numbers from %n to %n step %n"><l>1</l><block var="#2"/><l>1</l></custom-block></list></custom-block></autolambda><list><l>#2</l></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="map %&apos;function A&apos; over keep %&apos;pred&apos; from map %&apos;function B&apos; over stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="297.8271484375" collapsed="false">A stream version of Python’s list comprehension, with an extra twist. It runs faster than KEEP from MAP, and MAP over KEEP (and MAP over KEEP from MAP, of course).&#xD;&#xD;- For MAP over KEEP from MAP, use all slots;&#xD;- If all you need is MAP over KEEP, leave the third slot empty. &#xD;- For KEEP from MAP, leave the first slot empty. &#xD;- For MAP over MAP (really?), make the second slot TRUE. &#xD;- For KEEP from MAP over KEEP, use an extra KEEP block.&#xD;- (etc.)&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%predRing"></input><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="function A"/><block s="reifyReporter"><script></script><list></list></block></list></block><script><block s="doReport"><custom-block s="keep %predRing from map %repRing over stream %l"><block var="pred"/><block var="function B"/><block var="stream"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="function B"/><block s="reifyReporter"><script></script><list></list></block></list></block><script><block s="doReport"><custom-block s="map %repRing over keep %predRing from stream %l"><block var="function A"/><block var="pred"/><block var="stream"/></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="$gears HELPER map %repRing over keep %predRing from map %repRing over stream %l"><block var="function A"/><block var="pred"/><block var="function B"/><block var="stream"/></custom-block></block></script><scripts><script x="10" y="267.3809523809524"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="square %n"><l></l></custom-block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script><script x="10" y="418.5476190476185"><custom-block s="$speechBubble %mlt"><l>Demo: MAP OVER KEEP</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reifyReporter"><script></script><list></list></block><custom-block s="stream with numbers from %n"><l>15</l></custom-block></custom-block></custom-block></block></script><script x="10" y="569.7142857142843"><custom-block s="$speechBubble %mlt"><l>Demo: KEEP OVER MAP</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><script></script><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="square %n"><l></l></custom-block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="keep items %&apos;pred&apos; from stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="292.4223958333333" collapsed="false">The stream version of KEEP.&#xD;&#xD;WARNING: If the predicate is such that, beyond a certain point, no other item will ever pass the test, a search with KEEP will not terminate. In such cases, use SEGMENT OF STREAM.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations>pt:os itens tais que _ do canal _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block><script><block s="doSetVar"><l>stream</l><custom-block s="tail of stream %l"><block var="stream"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block></script></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="keep items %predRing from stream %l"><block var="pred"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></block></script><scripts><script x="10" y="314.00000000000006"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><l></l><l>2</l></block><l>0</l></list></block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script><script x="10" y="427.99999999999983"><custom-block s="$speechBubble %mlt"><l> Demo of an integrated version of MAP and KEEP</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="square %n"><l></l></custom-block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="keep %&apos;pred&apos; from map %&apos;function&apos; over stream %&apos;stream&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><custom-block s="%upvar $arrowLeft %s"><l>map result</l><block s="evaluate"><block var="function"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block></custom-block></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="map result"/><custom-block s="keep %predRing from map %repRing over stream %l"><block var="pred"/><block var="function"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></block></script><script><block s="doReport"><custom-block s="keep %predRing from map %repRing over stream %l"><block var="pred"/><block var="function"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></block></script></block></script><scripts><script x="7.142857142857143" y="334.7738095238096"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><l></l></block></script></scripts></block-definition><block-definition s="delay %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%anyUE" initial="1"></input></inputs><script><block s="doReport"><block var="expression"/></block></script></block-definition><block-definition s="%&apos;data&apos; followed by %&apos;value&apos;" type="reporter" category="lists"><comment x="0" y="0" w="187.00000000000003" collapsed="false">The counterpart of IN FRONT OF: returns the first input attached at the back end of the list that is the second input</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="data"/><block s="reportNewList"><list><block var="value"/></list></block></list></block></block></script></block-definition><block-definition s="let %&apos;variable&apos; $arrowLeft %&apos;value&apos;" type="command" category="variables"><comment x="0" y="0" w="256.9999999999998" collapsed="true">Declare and at once intialize a local variable</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>variable</l><block var="value"/></block></script></block-definition><block-definition s="map %&apos;function&apos; over keep %&apos;pred&apos; from stream %&apos;stream&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="evaluate"><block var="function"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block><custom-block s="map %repRing over keep %predRing from stream %l"><block var="function"/><block var="pred"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></block></script><script><block s="doReport"><custom-block s="map %repRing over keep %predRing from stream %l"><block var="function"/><block var="pred"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></block></script></block></script><scripts><script x="7.14285714285711" y="286.98809523809535"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><l></l></block></script></scripts></block-definition><block-definition s="· %&apos;x&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input></inputs></block-definition><block-definition s="first item+index %&apos;pred&apos; from stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="313.7142857142858" collapsed="false">A combination of FIND FIRST ITEM and INDEX OF, for streams.&#xD;&#xD;INPUTS:  1. condition to be satisfied by item; 2. stream to be searched.&#xD;RESULT: a list of two values: 1. item’s value; 2. index of item within the stream.&#xD;&#xD;If no item within a finite stream satisfies the condition, &quot;&quot; is reported.&#xD;If no item within an *infinite* stream satisfies the condition, the search will not terminate (to prevent this, limit the size of the input stream using SEGMENT OF STREAM).&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAMS.</comment><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><custom-block s="let %upvar $arrowLeft %s"><l>index</l><l>1</l></custom-block><block s="doUntil"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doIf"><block s="evaluate"><block var="pred"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block><script><block s="doReport"><block s="reportNewList"><list><custom-block s="head of stream %l"><block var="stream"/></custom-block><block var="index"/></list></block></block></script><list></list></block><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doSetVar"><l>stream</l><custom-block s="tail of stream %l"><block var="stream"/></custom-block></block></script></block><block s="doReport"><l></l></block></script><scripts><script x="7.142857142857143" y="264.7499999999999"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="first item+index %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l>20</l></list></block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>10</l></custom-block></custom-block></block></script><script x="7.142857142857143" y="351.89285714285694"><custom-block s="$speechBubble %mlt"><l>Demo: not terminating (press the red stop button)</l></custom-block><block s="doReport"><custom-block s="first item+index %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l>0</l></list></block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>10</l></custom-block></custom-block></block></script><script x="7.142857142857143" y="439.0357142857137"><custom-block s="$speechBubble %mlt"><l>Demo: terminating because of search limit</l></custom-block><block s="doReport"><custom-block s="first item+index %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l>0</l></list></block></autolambda><list></list></block><custom-block s="segment of stream %l %br starting with first item that %predRing %br ending with next item that %predRing inclusive? %b"><custom-block s="stream with numbers from %n"><l>10</l></custom-block><block s="reifyPredicate"><script></script><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block var="idx"/><l>100</l></list></block></autolambda><list><l>val</l><l>idx</l></list></block><l><bool>false</bool></l></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="$gears HELPER map %&apos;function A&apos; over keep %&apos;pred&apos; from map %&apos;function B&apos; over stream %&apos;stream&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%predRing"></input><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><custom-block s="%upvar $arrowLeft %s"><l>intermediate</l><block s="evaluate"><block var="function B"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block></custom-block></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="evaluate"><block var="function A"/><list><block var="intermediate"/></list></block><custom-block s="$gears HELPER map %repRing over keep %predRing from map %repRing over stream %l"><block var="function A"/><block var="pred"/><block var="function B"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></block></script><script><block s="doReport"><custom-block s="$gears HELPER map %repRing over keep %predRing from map %repRing over stream %l"><block var="function A"/><block var="pred"/><block var="function B"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="list %&apos;requested&apos; items with %&apos;downstream&apos; of stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="467.05111607142857" collapsed="false">Report a specified number of items from a stream as a list. The “delayed continuation”, starting immediately after the last of the reported items, is made available as an upvar (see inside for demo of continuation; be careful not to use the same identifier for input and upvar continuations).&#xD;&#xD;Replaces SHOW STREAM from version 1 of this library.&#xD;&#xD;The inputs are an integer and a stream. With a positive integer, LIST ... STREAM reports a regular finite list of length less than (for short finite streams) or equal to the integer. It&apos;s useful because an infinite stream can&apos;t be displayed in a finite amount of time.&#xD;&#xD;Alternatively, ”all” (or “Infinity”) may be used as first input, for the showing to continue until the end of the stream will have been reached. Better not try this with infinite streams: the process may never terminate!&#xD;&#xD;Another cause of not terminating:&#xD;1. the input stream is part of a chain of streams AND&#xD;2. the number of elements of the input stream is less than the number of items specified to be reported AND&#xD;3. the first stream of the input chain is infinite.&#xD;For example: LIST ( 10 ) ITEMS OF STREAM ( KEEP ITEMS SUCH THAT ( _ &lt; 5 ) FROM STREAM ( STREAM WITH NUMBERS FROM ( 1 ) ) ).&#xD;Explanation: after the first 4 items, LIST ( 10 ) ITEMS OF STREAM will keep on asking for more input, and STREAM WITH NUMBERS FROM ( 1 ) will keep generating new items forever, each of which will be discarded by KEEP ITEMS SUCH THAT ( _ &lt; 5 ) FROM STREAM, which is the middle part of the chain.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10<options>all=Infinity</options></input><input type="%upvar" initial="1"></input><input type="%l" initial="1"></input></inputs><script><custom-block s="let %upvar $arrowLeft %s"><l>items</l><block s="reportNewList"><list></list></block></custom-block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="requested"/><l>1.5</l></list></block><custom-block s="is stream %l empty?"><block var="stream"/></custom-block></list></block><script><block s="doAddToList"><custom-block s="head of stream %l"><block var="stream"/></custom-block><block var="items"/></block><block s="doChangeVar"><l>requested</l><l>-1</l></block><block s="doSetVar"><l>stream</l><custom-block s="tail of stream %l"><block var="stream"/></custom-block></block></script></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doSetVar"><l>downstream</l><custom-block s="delay %anyUE"><custom-block s="the empty stream"></custom-block></custom-block></block><block s="doReport"><block var="items"/></block></script><list></list></block><block s="doSetVar"><l>downstream</l><custom-block s="delay %anyUE"><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></block><block s="doReport"><custom-block s="%l followed by %s"><block var="items"/><custom-block s="head of stream %l"><block var="stream"/></custom-block></custom-block></block></script><scripts><script x="10" y="364.15476190476176"><custom-block s="comment %mlt"><l>Demo of primary output</l></custom-block><block s="doReport"><custom-block s="list %n items with %upvar of stream %l"><l>10</l><l>downstream</l><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></block></script><script x="10" y="445.8928571428566"><custom-block s="comment %mlt"><l>Demo of downstream, be careful to use CALL.</l></custom-block><custom-block s="ignore %s"><custom-block s="list %n items with %upvar of stream %l"><l>10</l><l>downstream</l><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block><custom-block s="ignore %s"><custom-block s="list %n items with %upvar of stream %l"><l>10</l><l>downstream</l><block s="evaluate"><block var="downstream"/><list></list></block></custom-block></custom-block><block s="doReport"><custom-block s="list %n items with %upvar of stream %l"><l>5</l><l>downstream</l><block s="evaluate"><block var="downstream"/><list></list></block></custom-block></block></script></scripts></block-definition><block-definition s="incrementally combine stream %&apos;stream&apos; $nl using %&apos;combiner&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="409.68571428571425" collapsed="false">This is the stream version of the COMBINE block for lists.&#xD;&#xD;Since lists are finite, it&apos;s always possible to combine *all* items of a list.  For example, given a list of numbers, it&apos;s possible to add all the numbers and report a single number, the sum.&#xD;&#xD;Since a stream can be infinite, it&apos;s not, in general, possible to combine all its items.  Instead, this block reports a stream.  The first item of the result stream is the first item of the input stream; the second item of the result stream is the result of combining the first two items of the input; the third item is the result of combining the first three items; and so on.&#xD;&#xD;INPUTS:&#xD;1. input stream&#xD;2. combiner (function)&#xD;&#xD;RESULT&#xD;A stream. The first element is the head of the input stream. Each following element is calculated by applying the combiner on the preceding *result* item and the value of the current /input/ item:&#xD;&#xD;result (i) = combiner (result (i-1), input (i)).&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%repRing"></input></inputs><script><custom-block s="let %upvar $arrowLeft %s"><l>combined</l><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="map %repRing over stream(s) %mult%l"><block var="combiner"/><list><block var="combined"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></list></custom-block></custom-block></custom-block><block s="doReport"><block var="combined"/></block></script><scripts><script x="7.142857142857143" y="311.8571428571429"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>5</l><custom-block s="incrementally combine stream %l %br using %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></custom-block></block></script><script x="7.142857142857143" y="416.9999999999997"><custom-block s="$speechBubble %mlt"><l>Demo: advanced, and somewhat faster, version</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>5</l><custom-block s="$flash integrate %repRing with precursor %s over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block><l></l><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="stream with numbers from %&apos;start&apos; to %&apos;end&apos; step %&apos;step&apos;" type="reporter" category="Streams"><header></header><code></code><translations>pt:um canal com os números a partir de _&#xD;</translations><inputs><input type="%n">1</input><input type="%n" initial="1">Infinity<options>Infinity</options></input><input type="%n" initial="1">1</input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="start"/><block var="end"/></block><block var="step"/></list></block><l>0</l></list></block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="start"/><custom-block s="stream with numbers from %n to %n step %n"><block s="reportVariadicSum"><list><block var="start"/><block var="step"/></list></block><block var="end"/><block var="step"/></custom-block></custom-block></block></script><scripts><script x="10" y="219.58333333333337"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items with %upvar of stream %l"><l>10</l><l>downstream</l><custom-block s="stream with numbers from %n to %n step %n"><l>1</l><l>5</l><l>0.5</l></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="uniques of stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="297.604743303572" collapsed="false">The stream version of UNIQUES OF (list).&#xD;&#xD;This implementation though elegant is unsuitable for large data. Edit the block to find a faster but less elegant version.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="uniques of stream %l"><custom-block s="keep items %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block></autolambda><list></list></block><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></custom-block></block></script><scripts><script x="7.142857142857143" y="230.22619047619048"><custom-block s="$speechBubble %mlt"><l>Demo: from a stream of random integers, UNIQUES OF STREAM picks just the “new” ones.</l></custom-block><block s="doReport"><block s="reportListAttribute"><l><option>sorted</option></l><custom-block s="list %n items of stream %l"><l>30</l><custom-block s="uniques of stream %l"><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportRandom"><l>1</l><l>30</l></block></autolambda><list></list></block><l>#</l><list></list></custom-block></custom-block></custom-block></block></block></script><script x="7.142857142857143" y="361.2738095238094"><custom-block s="$speechBubble %mlt"><l>Demo of a somewhat less elegant, yet faster implementation of UNIQUES OF STREAM&#xD;(edit to see how it works). Also, the defintion of uniqueness may be specified.</l></custom-block><block s="doReport"><block s="reportListAttribute"><l><option>sorted</option></l><custom-block s="list %n items of stream %l"><l>30</l><custom-block s="$flash uniques by %predRing latest 1st? %b of stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><l><bool>false</bool></l><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportRandom"><l>1</l><l>30</l></block></autolambda><list></list></block><l>#</l><list></list></custom-block></custom-block></custom-block></block></block></script></scripts></block-definition><block-definition s="map %&apos;function&apos; over stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of variadic MAP (any number of input lists, like&#xD;MULTIMAP in the list utilities library).&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:a aplicação de _ aos itens dos canais _&#xD;</translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="stream"/></block><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="evaluate"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="head of stream %l"><l/></custom-block></autolambda><list></list></block><block var="stream"/></block></block><custom-block s="map %repRing over stream %mult%l"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="tail of stream %l"><l/></custom-block></autolambda><list></list></block><block var="stream"/></block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="substitute vars %&apos;lambda&apos;" type="reporter" category="variables"><comment x="0" y="0" w="292.8571428571426" collapsed="true">Replace any variable from the caller scope with its value</comment><header></header><code></code><translations></translations><inputs><input type="%s">lambda</input></inputs><script><block s="doReport"><block s="reportJoinWords"><custom-block s="$gears substitute vars %s %s %s"><block s="reportTextSplit"><block var="lambda"/><l><option>blocks</option></l></block><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><block s="reportEnvironment"><l><option>caller</option></l></block></autolambda><list></list></block><block s="reportEnvironment"><l><option>caller</option></l></block></block></custom-block></block></block></script></block-definition><block-definition s="$gears substitute vars %&apos;blocks&apos; %&apos;internal scope&apos; %&apos;external scope&apos;" type="reporter" category="variables"><comment x="0" y="0" w="152.0238095238095" collapsed="false">Replace any variable from the second scope, whose name is not used for a variable within the first scope, with its value.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="blocks"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="blocks"/></block></script><list></list></block><custom-block s="let %upvar $arrowLeft %s"><l>var name</l><block s="reportListItem"><l>2</l><block var="blocks"/></block></custom-block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="blocks"/></block><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block></list></block><block s="reportListContainsItem"><block s="reportAttributeOf"><l><option>variables</option></l><block var="external scope"/></block><block var="var name"/></block><block s="reportNot"><block s="reportListContainsItem"><block s="reportAttributeOf"><l><option>variables</option></l><block var="internal scope"/></block><block var="var name"/></block></block></list></block><script><block s="doReport"><custom-block s="blockify %l"><custom-block s="get var %s %s"><block var="var name"/><block var="external scope"/></custom-block></custom-block></block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="$gears substitute vars %s %s %s"><l></l><block var="internal scope"/><block var="external scope"/></custom-block></autolambda><list></list></block><block var="blocks"/></block></block></script></block-definition><block-definition s="get var %&apos;name&apos; %&apos;ctx&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s">name</input><input type="%s">ctx</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block s="reportJoinWords"><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block var=" "/></autolambda><list></list></block><block var="name"/></list></block></block><block var="ctx"/></block><list></list></block></block></script></block-definition><block-definition s="blockify %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportNewList"><list></list></block></autolambda><list></list></block><block s="reportCONS"><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><block s="reportMap"><block s="reportEnvironment"><l><option>script</option></l></block><block var="data"/></block></block></list></block><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>Boolean</option></l></block><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>true</bool></l></block></autolambda><list></list></block><block var="data"/></list></block><block s="reportIfElse"><block s="reportIsA"><block var="data"/><l><option>script</option></l></block><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reifyReporter"><script></script><list></list></block></autolambda><list></list></block><block var="data"/></list></block><block var="data"/></block></block></block></block></script></block-definition><block-definition s="$gears segment of stream %&apos;stream&apos; once %&apos;start condition&apos; until %&apos;end condition&apos; inclusive? %&apos;include&apos; index %&apos;index&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing" initial="1"></input><input type="%predRing"></input><input type="%b" initial="1">false</input><input type="%s" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doIf"><block s="evaluate"><block var="start condition"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block><block var="index"/></list></block><script><block s="doReport"><custom-block s="$gears copy stream %l until %predRing inclusive? %b index %s"><block var="stream"/><block var="end condition"/><block var="include"/><l>1</l></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="$gears segment of stream %l once %predRing until %predRing inclusive? %b index %s"><custom-block s="tail of stream %l"><block var="stream"/></custom-block><block var="start condition"/><block var="end condition"/><block var="include"/><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block></custom-block></block></script><scripts><script x="10" y="719.1666666666666"><custom-block s="$speechBubble %mlt"><l>By contrast, a version of the above with KEEP&#xD;will not terminate (use red button to stop manually).</l></custom-block><block s="doReport"><l></l></block></script><script x="10" y="791.1666666666666"><custom-block s="$speechBubble %mlt"><l>Demo using the index of each item in the halt condition,&#xD;and not including the final item: (3, 4, 5, 6)</l></custom-block><block s="doReport"><l></l></block></script></scripts></block-definition><block-definition s="$gears copy stream %&apos;stream&apos; until %&apos;end condition&apos; inclusive? %&apos;include&apos; index %&apos;index&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input><input type="%b" initial="1">false</input><input type="%s" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="evaluate"><block var="end condition"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block><block var="index"/></list></block></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="$gears copy stream %l until %predRing inclusive? %b index %s"><custom-block s="tail of stream %l"><block var="stream"/></custom-block><block var="end condition"/><block var="include"/><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block></custom-block></custom-block></block></script><list></list></block><block s="doIf"><block var="include"/><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="the empty stream"></custom-block></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><scripts><script x="10" y="719.1666666666666"><custom-block s="$speechBubble %mlt"><l>By contrast, a version of the above with KEEP&#xD;will not terminate (use red button to stop manually).</l></custom-block><block s="doReport"><l></l></block></script><script x="10" y="791.1666666666666"><custom-block s="$speechBubble %mlt"><l>Demo using the index of each item in the halt condition,&#xD;and not including the final item: (3, 4, 5, 6)</l></custom-block><block s="doReport"><l></l></block></script></scripts></block-definition><block-definition s="$flash uniques by %&apos;comparator&apos; latest 1st? %&apos;latest 1st&apos; of stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="363.8571428571429" collapsed="false">Reports &quot;unique&quot; items from a stream. An item&apos;s unicity is defined as it satisfying the specified condition (&quot;comparator&quot;) against any of the earlier reported items.&#xD;&#xD;Within the comparator, the first empty slot denotes the current item, the second empty slot denotes any of the earlier reported items.&#xD;&#xD;With the comparator ring left empty, the default comparator is _ ≠ _.&#xD;&#xD;If the switch “latest 1st” is true, each input item is compared with the latest of all earlier results, then with the second latest, and so on. If the switch is false, the first cimparison will be with the oldest of all earlier results. Though this will not influence nthe outcome, one of the approaches is probably faster.</comment><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%b" initial="1">true</input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="$gears HELPER $flash uniques by %predRing of stream %l %l %repRing"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="comparator"/><block s="reifyPredicate"><script></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><l></l><l></l></list></block></autolambda><list></list></block><block var="comparator"/></block><block var="stream"/><block s="reportNewList"><list></list></block><block s="reportIfElse"><block var="latest 1st"/><block s="reifyReporter"><autolambda><block s="reportCONS"><l></l><l/></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="%s following %l"><l></l><l/></custom-block></autolambda><list></list></block></block></custom-block></block></script><scripts><script x="7.142857142857143" y="191.8571428571429"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><block s="reportListAttribute"><l><option>sorted</option></l><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="$flash uniques by %predRing latest 1st? %b of stream %l"><block s="reifyPredicate"><script></script><list></list></block><l><bool>true</bool></l><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportRandom"><l>1</l><l>10</l></block></autolambda><list></list></block><l>#</l><list></list></custom-block></custom-block></custom-block></block></block></script><script x="7.142857142857143" y="328.3095238095242"><custom-block s="$speechBubble %mlt"><l>Demo: only new record highs - note the comparator!</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="$flash uniques by %predRing latest 1st? %b of stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l></l></list></block></autolambda><list></list></block><l><bool>true</bool></l><custom-block s="stream %mult%s"><list><l>3</l><l>1</l><l>5</l><l>6</l><l>7</l><l>6</l><l>7</l><l>9</l><l>8</l></list></custom-block></custom-block></custom-block></block></script><script x="7.142857142857143" y="433.4523809523809"><custom-block s="$speechBubble %mlt"><l>Demo: alternative implementation of SIEVE.&#xD;For efficiency, each input item is compared with the oldest of earlier results (= 2) first.</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>100</l><custom-block s="$flash uniques by %predRing latest 1st? %b of stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><block s="reportModulus"><l></l><l></l></block><l>0</l></list></block></autolambda><list></list></block><l><bool>false</bool></l><custom-block s="stream with numbers from %n"><l>2</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="$gears HELPER $flash uniques by %&apos;comparator&apos; of stream %&apos;stream&apos; %&apos;history&apos; %&apos;appender&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%predRing" initial="1"></input><input type="%l"></input><input type="%l"></input><input type="%repRing" initial="1">true</input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="evaluate"><block var="comparator"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block><l></l></list></block></block></autolambda><list></list></block><block var="history"/></block><l></l></list></block><script><block s="doSetVar"><l>stream</l><custom-block s="tail of stream %l"><block var="stream"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block></script></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="$gears HELPER $flash uniques by %predRing of stream %l %l %repRing"><block var="comparator"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block><block s="evaluate"><block var="appender"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block><block var="history"/></list></block><block var="appender"/></custom-block></custom-block></block></script></block-definition><block-definition s="$flash integrate %&apos;combiner&apos; with precursor %&apos;precursor&apos; over stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="113.57142857142865" collapsed="false">An advanced version of INCREMENTALLY COMBINE. The functional difference isi the “precursor”, the would-be item (0) of the result stream.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing" initial="1"></input><input type="%s" initial="1"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="%upvar $arrowLeft %s"><l>head</l><block s="evaluate"><block var="combiner"/><list><block var="precursor"/><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block></custom-block><custom-block s="$flash integrate %repRing with precursor %s over stream %l"><block var="combiner"/><block var="head"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></block></script><scripts><script x="7.142857142857143" y="246.24999999999997"><custom-block s="$speechBubble %mlt"><l>Demo: advanced, and somewhat faster, version</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>5</l><custom-block s="$flash integrate %repRing with precursor %s over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block><l>A.</l><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="append streams %&apos;streams&apos;" type="reporter" category="Streams" space="true"><comment x="0" y="0" w="179.46770833333343" collapsed="false">Append any number of streams.&#xD;&#xD;To be used only if all streams but the last are finite; otherwise use INTERLEAVE STREAMS.&#xD;&#xD;General info in streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%anyUE" initial="2"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="streams"/></block></block><script><block s="doReport"><block s="reportIfElse"><block s="reportListIsEmpty"><block var="streams"/></block><custom-block s="the empty stream"></custom-block><block s="evaluate"><block s="reportListItem"><l>1</l><block var="streams"/></block><list></list></block></block></block></script><list><custom-block s="is stream %l empty?"><custom-block s="%upvar $arrowLeft %s"><l>first</l><block s="evaluate"><block s="reportListItem"><l>1</l><block var="streams"/></block><list></list></block></custom-block></custom-block><script><block s="doReport"><custom-block s="append streams %mult%anyUE"><block s="reportCDR"><block var="streams"/></block></custom-block></block></script></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="first"/></custom-block><custom-block s="append streams %mult%anyUE"><block s="reportCONS"><custom-block s="delay %anyUE"><custom-block s="tail of stream %l"><block var="first"/></custom-block></custom-block><block s="reportCDR"><block var="streams"/></block></block></custom-block></custom-block></block></script><scripts><script x="13.333333333333307" y="437.25000000000017"><custom-block s="$speechBubble %mlt"><l>An example with several input streams</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="append streams %mult%anyUE"><list><custom-block s="the empty stream"></custom-block><custom-block s="stream %mult%s"><list><l>1</l><l>2</l><l>3</l></list></custom-block><custom-block s="stream %mult%s"><list><l>11</l></list></custom-block><custom-block s="stream with numbers from %n"><l>21</l></custom-block></list></custom-block></custom-block></block></script><script x="12.666666666666679" y="321.0833333333333"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="append streams %mult%anyUE"><list><custom-block s="stream %mult%s"><list><l>1</l><l>2</l><l>3</l></list></custom-block><custom-block s="stream with numbers from %n"><l>11</l></custom-block></list></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="$crosshairs flatmap %&apos;function&apos; over stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="293.003125" collapsed="false">A variation of FLATMAP delivering a more even distribution of output items over mapped substreams.&#xD;Applicable only if function (input 1) will create streams.&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="$crosshairs flatten stream %l"><custom-block s="map %repRing over stream(s) %mult%l"><block var="function"/><list><block var="stream"/></list></custom-block></custom-block></block></script><scripts><script x="10" y="103"><custom-block s="$speechBubble %mlt"><l>Demo: all positive rationals</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="$crosshairs flatmap %repRing over stream %l"><block s="reifyReporter"><autolambda><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>/</l><block var="denominator"/></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><custom-block s="GCD (or) %n $∨-1.2-255-255-0 %n"><l></l><block var="denominator"/></custom-block><l>1</l></list></block></autolambda><list></list></block><block s="reifyReporter"><script></script><list></list></block><custom-block s="stream with numbers from %n"><block var="denominator"/></custom-block></custom-block></autolambda><list><l>denominator</l></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="$crosshairs flatten stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="118.24374999999998" collapsed="false">A variation of FLATTEN STREAM delivering a more balanced distribution of output items among substreams.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>stream*</l><l>substreams</l><l>insert counter</l></list></block><block s="doSetVar"><l>substreams</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>stream*</l><block var="stream"/></block><custom-block s="let %upvar $arrowLeft %s"><l>add substream if applicable</l><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="insert counter"/><l>0</l></list></block><block s="reportNot"><custom-block s="is stream %l empty?"><block var="stream*"/></custom-block></block></list></block><script><block s="doSetVar"><l>substreams</l><block s="reportCONS"><custom-block s="head of stream %l"><block var="stream*"/></custom-block><block var="substreams"/></block></block><block s="doSetVar"><l>stream*</l><custom-block s="tail of stream %l"><block var="stream*"/></custom-block></block><block s="doSetVar"><l>insert counter</l><block s="reportListAttribute"><l><option>length</option></l><block var="substreams"/></block></block></script><list></list></block><block s="doChangeVar"><l>insert counter</l><l>-1</l></block></script><list></list></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>remove empty substreams</l><block s="reifyScript"><script><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportListIsEmpty"><block var="substreams"/></block><block s="reportNot"><custom-block s="is stream %l empty?"><block s="reportListItem"><l>1</l><block var="substreams"/></block></custom-block></block></list></block><script><block s="doSetVar"><l>substreams</l><block s="reportCDR"><block var="substreams"/></block></block></script></block></script><list></list></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>flatten*</l><block s="reifyScript"><script><block s="doRun"><block var="add substream if applicable"/><list></list></block><block s="doRun"><block var="remove empty substreams"/><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="substreams"/></block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block><block s="doSetVar"><l>substreams</l><custom-block s="round robin %l"><block var="substreams"/></custom-block></block><custom-block s="let %upvar $arrowLeft %s"><l>result</l><custom-block s="head of stream %l"><block s="reportListItem"><l>1</l><block var="substreams"/></block></custom-block></custom-block><block s="doReplaceInList"><l>1</l><block var="substreams"/><custom-block s="tail of stream %l"><block s="reportListItem"><l>1</l><block var="substreams"/></block></custom-block></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="result"/><block s="evaluate"><block var="flatten*"/><list></list></block></custom-block></block></script><list></list></block></custom-block><block s="doReport"><block s="evaluate"><block var="flatten*"/><list></list></block></block></script></block-definition><block-definition s="flatmap finite %&apos;function&apos; over stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="293.003125" collapsed="false">Create a stream that is the result of appending (rather tah interleaving) streams mapped over the input stream.&#xD;Will only be applicable if function (input 1) will create *finite* streams.&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="append substreams of %l"><custom-block s="map %repRing over stream(s) %mult%l"><block var="function"/><list><block var="stream"/></list></custom-block></custom-block></block></script><scripts><script x="10" y="115.00000000000001"><custom-block s="$speechBubble %mlt"><l>non-descending integer pairs</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="flatmap finite %repRing over stream %l"><block s="reifyReporter"><autolambda><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block var="#1"/><block var="#2"/></list></block></autolambda><list><l>#1</l></list></block><list><custom-block s="stream with numbers from %n to %n step %n"><l>1</l><block var="#2"/><l>1</l></custom-block></list></custom-block></autolambda><list><l>#2</l></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="round robin %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doReport"><custom-block s="%l followed by %s"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></custom-block></block></script></block-definition><block-definition s="interleave streams %&apos;streams&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="293.70580357142853" collapsed="false">Alternately report items from each stream.&#xD;A generalization of SICP function INTERLEAVE-DELAYED.&#xD;&#xD;For finite lists, the way to make one list combining the items from several input lists is to APPEND them.  But that doesn&apos;t work for possibly infinite streams; if the first stream is infinite, no items from the second or additional input streams would be included.  Instead, you have to INTERLEAVE the streams, take an item from the first one, an item from the second one, and so on.  This ensures that every item of every stream will turn up eventually in the result stream.&#xD;&#xD;This block makes no guarantees regarding the precise order in which items appear in the result stream.&#xD;&#xD;General info in streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%anyUE" initial="2"></input></inputs><script><block s="doReport"><custom-block s="$gears HELPER interleave streams %l"><block var="streams"/></custom-block></block></script><scripts><script x="7.142857142857143" y="239.8571428571429"><custom-block s="$speechBubble %mlt"><l>Simple code for INTERLEAVE STREAMS (a ⋮) (b λ)</l></custom-block><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><block s="evaluate"><block var="b"/><list></list></block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="interleave streams %mult%anyUE"><list><block s="evaluate"><block var="b"/><list></list></block><custom-block s="tail of stream %l"><block var="a"/></custom-block></list></custom-block></custom-block></block></script><script x="7.142857142857143" y="393.7023809523809"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="interleave streams %mult%anyUE"><list><custom-block s="stream %mult%s"><list><l>1</l><l>2</l><l>3</l></list></custom-block><custom-block s="stream with numbers from %n"><l>11</l></custom-block></list></custom-block></custom-block></block></script><script x="7.142857142857143" y="486.01190476190453"><custom-block s="$speechBubble %mlt"><l>An example with several input streams</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="interleave streams %mult%anyUE"><list><custom-block s="the empty stream"></custom-block><custom-block s="stream %mult%s"><list><l>1</l><l>2</l><l>3</l></list></custom-block><custom-block s="stream %mult%s"><list><l>11</l></list></custom-block><custom-block s="stream with numbers from %n"><l>21</l></custom-block></list></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="append substreams of %&apos;stream&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doReport"><custom-block s="append streams %mult%anyUE"><list><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="append substreams of %l"><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></list></custom-block></block></script></block-definition><block-definition s="merge streams %&apos;streams&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="160.80000000000024" collapsed="false">Merge 2 streams, in ascending order (as established by “_ &lt; _”).&#xD;&#xD;For the result stream to be in ascending (or non-descending) order, both of the input streams must be.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAMS.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l" initial="2"></input></inputs><script><block s="doSetVar"><l>streams</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><custom-block s="is stream %l empty?"><l/></custom-block></block></autolambda><list></list></block><block var="streams"/></block></block><block s="doIf"><block s="reportListIsEmpty"><block var="streams"/></block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list><block s="reportListIsEmpty"><block s="reportCDR"><block var="streams"/></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="streams"/></block></block></script></list></block><custom-block s="let %upvar $arrowLeft %s"><l>keys</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="head of stream %l"><l/></custom-block></autolambda><list></list></block><block var="streams"/></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>kv-pairs</l><custom-block s="$flash sort %l ordering with %predRing"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportNewList"><list><block var="keys"/><block var="streams"/></list></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></custom-block></custom-block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block><custom-block s="merge streams %mult%l"><block s="reportCONS"><custom-block s="tail of stream %l"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></custom-block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block s="reportCDR"><block var="kv-pairs"/></block></block></block></custom-block></custom-block></block></script><scripts><script x="20" y="578.8888888888887"><custom-block s="$speechBubble %mlt"><l>Simple code for MERGE STREAMS (a) (b)</l></custom-block><block s="doIf"><block s="reportVariadicOr"><list><custom-block s="is stream %l empty?"><block var="a"/></custom-block><custom-block s="is stream %l empty?"><block var="b"/></custom-block></list></block><script><block s="doReport"><custom-block s="append streams %mult%anyUE"><list><block var="a"/><block var="b"/></list></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="head of stream %l"><block var="b"/></custom-block></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="merge streams %mult%l"><list><block var="b"/><custom-block s="tail of stream %l"><block var="a"/></custom-block></list></custom-block></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="b"/></custom-block><custom-block s="merge streams %mult%l"><list><block var="a"/><custom-block s="tail of stream %l"><block var="b"/></custom-block></list></custom-block></custom-block></block></script><script x="20" y="833.2777777777782"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="merge streams %mult%l"><list><custom-block s="stream with numbers from %n"><l>5</l></custom-block><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><custom-block s="stream with numbers from %n"><l>1</l></custom-block></list></custom-block></list></custom-block></custom-block></block></script><script x="20" y="974.7222222222226"><custom-block s="$speechBubble %mlt"><l>Advanced version</l></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>original case sensitivity</l><block s="reportGlobalFlag"><l><option>case sensitivity</option></l></block></custom-block><block s="doSetGlobalFlag"><l><option>case sensitivity</option></l><l><bool>true</bool></l></block><custom-block s="let %upvar $arrowLeft %s"><l>result</l><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="merge streams %mult%l %br ordered by %repRing uniques? %b by %predRing"><list><custom-block s="stream %mult%s"><list><l>a</l><l>a</l><l>A</l></list></custom-block><custom-block s="stream %mult%s"><list><l>1</l><l>B</l><l>C</l><l>c</l></list></custom-block><custom-block s="stream %mult%s"><list><l>1</l><l>2</l><l>3</l></list></custom-block></list><block s="reifyReporter"><autolambda><block s="reportTextAttribute"><l><option>lower case</option></l><l></l></block></autolambda><list></list></block><l><bool>true</bool></l><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></custom-block></custom-block><block s="doSetGlobalFlag"><l><option>case sensitivity</option></l><block var="original case sensitivity"/></block><block s="doReport"><block var="result"/></block></script></scripts></block-definition><block-definition s="$gears flatten stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="293.003125" collapsed="false">Interleave streams that are themselves elements of a stream, such that they become one stream.&#xD;Does not work on streams whose 1st level items are not (all) streams.&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="stream"/></block></script><list></list></block><block s="doReport"><custom-block s="interleave streams %mult%anyUE"><list><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="$gears flatten stream %l"><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></list></custom-block></block></script></block-definition><block-definition s="list %&apos;requested&apos; items of stream %&apos;stream&apos;" type="reporter" category="Streams" space="true"><comment x="0" y="0" w="471.3368303571429" collapsed="false">Reports a list containing a specified number of items from a stream.&#xD;&#xD;Replaces SHOW STREAM from version 1 of this library.&#xD;&#xD;The inputs are an integer and a stream. With a positive integer, LIST ... STREAM reports a regular finite list of length less than (for shorter finite streams) or equal to the integer. It&apos;s useful because an infinite stream can&apos;t be displayed in a finite amount of time.&#xD;&#xD;Alternatively, ”all” (or “Infinity”) may be used as first input, for the showing to continue until the end of the stream will have been reached. Better not try this with infinite streams: the process will never terminate.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10<options>all=Infinity</options></input><input type="%l" initial="1"></input></inputs><script><custom-block s="let %upvar $arrowLeft %s"><l>items</l><block s="reportNewList"><list></list></block></custom-block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="requested"/><l>1.5</l></list></block><custom-block s="is stream %l empty?"><block var="stream"/></custom-block></list></block><script><block s="doAddToList"><custom-block s="head of stream %l"><block var="stream"/></custom-block><block var="items"/></block><block s="doChangeVar"><l>requested</l><l>-1</l></block><block s="doSetVar"><l>stream</l><custom-block s="tail of stream %l"><block var="stream"/></custom-block></block></script></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doReport"><block var="items"/></block></script><list></list></block><block s="doReport"><custom-block s="%l followed by %s"><block var="items"/><custom-block s="head of stream %l"><block var="stream"/></custom-block></custom-block></block></script><scripts><script x="20" y="353"><custom-block s="comment %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></block></script><script x="20" y="421"><custom-block s="comment %mlt"><l>Demo: the number of items requested is exactly the length of the stream</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="stream %mult%s"><block s="reportNumbers"><l>1</l><l>10</l></block></custom-block></custom-block></block></script><script x="20" y="503.8333333333332"><custom-block s="comment %mlt"><l>Demo: the length of a *finite* stream is less than &#xD;the number of items requested.</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="stream %mult%s"><block s="reportNumbers"><l>1</l><l>5</l></block></custom-block></custom-block></block></script><script x="20" y="598.6666666666669"><custom-block s="comment %mlt"><l>Demo: the length of an *infinite* stream is less than &#xD;the number of items requested. The process will not terminate.</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><l></l><l>6</l></list></block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block></block></script><script x="20" y="713.5"><custom-block s="comment %mlt"><l>Advanced version, enabling continuation.</l></custom-block><custom-block s="ignore %s"><custom-block s="list %n items with %upvar of stream %l"><l>10</l><l>continuation</l><custom-block s="stream with numbers from %n"><l>1</l></custom-block></custom-block></custom-block><custom-block s="ignore %s"><custom-block s="list %n items with %upvar of stream %l"><l>10</l><l>continuation*</l><block s="evaluate"><block var="continuation"/><list></list></block></custom-block></custom-block><block s="doReport"><custom-block s="list %n items with %upvar of stream %l"><l>5</l><l>continuation</l><block s="evaluate"><block var="continuation*"/><list></list></block></custom-block></block></script></scripts></block-definition><block-definition s="merge streams %&apos;streams&apos; $nl ordered by %&apos;key function&apos; uniques? %&apos;uniques&apos; by %&apos;distinguisher&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="406.8000000000002" collapsed="false">Merge any nunber of streams, ordered by key (ascending)&#xD;&#xD;INPUT&#xD;1. streams to be merged. For the algorithm to work, each of the streams must be pre-ordered by the same key function.&#xD;2. a reporter (“key function”) assigning a key to be sorted by, to each input stream item&#xD;3. switch indicating whether output items should be unique, as compared to previous items.&#xD;4. ”distinguisher”, a two-iitem predicate indicating whether one item is considered unique as compared to another item (default: “_ = _”).&#xD;RESULT&#xD;A stream of items from the input streams, ordered by the same key function, and possibly filtered for uniqueness.&#xD;REMARK &#xD;Keys are sorted in ascending order as established by “_ &lt; _”.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAMS.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l" initial="2"></input><input type="%repRing" initial="1"></input><input type="%b" initial="1">true</input><input type="%predRing" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>head</l><l>key</l><l>pre-key</l><l>local history</l></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportListIsEmpty"><block var="streams"/></block><block s="reportNot"><custom-block s="is stream %l empty?"><block s="reportListItem"><l>1</l><block var="streams"/></block></custom-block></block></list></block><script><block s="doSetVar"><l>streams</l><block s="reportCDR"><block var="streams"/></block></block></script></block><block s="doIf"><block s="reportListIsEmpty"><block var="streams"/></block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list><block s="reportVariadicAnd"><list><block s="reportListIsEmpty"><block s="reportCDR"><block var="streams"/></block></block><block s="reportNot"><block var="uniques"/></block></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="streams"/></block></block></script></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="distinguisher"/><l></l></list></block><script><block s="doSetVar"><l>distinguisher</l><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><custom-block s="let %upvar $arrowLeft %s"><l>keys</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><l/></custom-block></list></block></autolambda><list></list></block><block var="streams"/></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>kv-pairs</l><custom-block s="$flash sort %l ordering with %predRing"><block s="reportListAttribute"><l><option>columns</option></l><block s="reportNewList"><list><block var="keys"/><block var="streams"/></list></block></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></custom-block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>merge*</l><block s="reifyScript"><script><block s="doSetVar"><l>pre-key</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></block><block s="doIf"><custom-block s="is stream %l empty?"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></custom-block><script><block s="doSetVar"><l>kv-pairs</l><block s="reportCDR"><block var="kv-pairs"/></block></block><block s="doIf"><block s="reportListIsEmpty"><block var="kv-pairs"/></block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list><block s="reportVariadicAnd"><list><block s="reportListIsEmpty"><block s="reportCDR"><block var="kv-pairs"/></block></block><block s="reportNot"><block var="uniques"/></block></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></block></script></list></block></script><list></list></block><block s="doReplaceInList"><l>1</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></custom-block></list></block></block><block s="doSetVar"><l>kv-pairs</l><custom-block s="$flash sort %l ordering with %predRing"><block var="kv-pairs"/><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block></custom-block></block><block s="doSetVar"><l>head</l><custom-block s="head of stream %l"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></custom-block></block><block s="doSetVar"><l>key</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block><custom-block s="tail of stream %l"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></custom-block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="uniques"/><block s="reportVariadicEquals"><list><block var="key"/><block var="pre-key"/></list></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="distinguisher"/><list><block var="head"/><l></l></list></block></autolambda><list></list></block><block var="local history"/></block><l></l></list></block><script><block s="doAddToList"><block var="head"/><block var="local history"/></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="head"/><block s="evaluate"><block var="merge*"/><list></list></block></custom-block></block></script><list></list></block><block s="doReport"><block s="evaluate"><block var="merge*"/><list></list></block></block></script><list></list></block><block s="doSetVar"><l>local history</l><block s="reportNewList"><list><block var="head"/></list></block></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="head"/><block s="evaluate"><block var="merge*"/><list></list></block></custom-block></block></script><list></list></block></custom-block><block s="doSetVar"><l>head</l><custom-block s="head of stream %l"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></custom-block></block><block s="doSetVar"><l>local history</l><block s="reportNewList"><list><block var="head"/></list></block></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block><custom-block s="tail of stream %l"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="kv-pairs"/></block></block></custom-block></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="head"/><block s="evaluate"><block var="merge*"/><list></list></block></custom-block></block></script><scripts><script x="7.142857142857143" y="1443.5000000000002"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>original case sensitivity</l><block s="reportGlobalFlag"><l><option>case sensitivity</option></l></block></custom-block><block s="doSetGlobalFlag"><l><option>case sensitivity</option></l><l><bool>true</bool></l></block><custom-block s="let %upvar $arrowLeft %s"><l>result</l><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="merge streams %mult%l %br ordered by %repRing uniques? %b by %predRing"><list><custom-block s="stream %mult%s"><list><l>a</l><l>a</l><l>A</l></list></custom-block><custom-block s="stream %mult%s"><list><l>1</l><l>B</l><l>C</l><l>c</l></list></custom-block><custom-block s="stream %mult%s"><list><l>1</l><l>2</l><l>3</l></list></custom-block></list><block s="reifyReporter"><autolambda><block s="reportTextAttribute"><l><option>lower case</option></l><l></l></block></autolambda><list></list></block><l><bool>true</bool></l><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l></l></list></block></autolambda><list></list></block></custom-block></custom-block></custom-block><block s="doSetGlobalFlag"><l><option>case sensitivity</option></l><block var="original case sensitivity"/></block><block s="doReport"><block var="result"/></block></script><script x="7.142857142857143" y="1668.7142857142883"><custom-block s="head of stream %l"><l/></custom-block></script><script x="7.142857142857143" y="1694.1428571428594"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="merge streams %mult%l %br ordered by %repRing uniques? %b by %predRing"><list><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l>10</l></list></block></autolambda><list></list></block><l>#</l><list><l>1</l></list></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l>10</l></list></block></autolambda><list></list></block><l>#</l><list><l>3</l></list></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l>10</l></list></block></autolambda><list></list></block><l>#</l><list><l>2</l></list></custom-block></list><block s="reifyReporter"><script></script><list></list></block><l/><block s="reifyPredicate"><script></script><list></list></block></custom-block></custom-block></block></script><script x="7.142857142857143" y="1866.7380952381016"><custom-block s="$speechBubble %mlt"><l>Demo of a related (hidden) block, that will keep any items from the 1st stream&#xD;that also appear in the 2nd (AND relation)</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br AND stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script><script x="7.142857142857143" y="2015.071428571436"><custom-block s="$speechBubble %mlt"><l>Demo of a related (hidden) block, that will keep any items from either of 2 streams (OR relation).&#xD;Items apprearing in both streams will appear in the output only once.</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br OR stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script><script x="7.142857142857143" y="2165.5238095238187"><custom-block s="$speechBubble %mlt"><l>Demo of a related block, that will keep any iems appearing in either of 2 streams,&#xD;but not in both (eXclusive OR relation)</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br XOR stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script><script x="7.142857142857143" y="2313.8571428571536"><custom-block s="$speechBubble %mlt"><l>Demo of a related (hidden) block, keeping any items from the first stream&#xD;that do NOT appear in the second.</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br but NOT stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="keep items from stream %&apos;a&apos; $nl AND stream %&apos;b&apos; $nl ordered by key %&apos;key function&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%repRing" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><custom-block s="is stream %l empty?"><block var="a"/></custom-block><custom-block s="is stream %l empty?"><block var="b"/></custom-block></list></block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block><block s="doUntil"><block s="reportVariadicEquals"><list><custom-block s="%upvar $arrowLeft %s"><l>key a</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="a"/></custom-block></list></block></custom-block><custom-block s="%upvar $arrowLeft %s"><l>key b</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="b"/></custom-block></list></block></custom-block></list></block><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="key a"/><block var="key b"/></list></block><script><block s="doSetVar"><l>a</l><custom-block s="tail of stream %l"><block var="a"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block></script><script><block s="doSetVar"><l>b</l><custom-block s="tail of stream %l"><block var="b"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="b"/></custom-block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block></script></block></script></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="keep items from stream %l %br AND stream %l %br ordered by key %repRing"><custom-block s="tail of stream %l"><block var="a"/></custom-block><custom-block s="tail of stream %l"><block var="b"/></custom-block><block var="key function"/></custom-block></custom-block></block></script><scripts><script x="10" y="557.0833333333333"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br AND stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="keep items from stream %&apos;a&apos; $nl OR stream %&apos;b&apos; $nl ordered by key %&apos;key function&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%repRing" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><block var="b"/></block></script><list><custom-block s="is stream %l empty?"><block var="b"/></custom-block><script><block s="doReport"><block var="a"/></block></script></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="%upvar $arrowLeft %s"><l>key a</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="a"/></custom-block></list></block></custom-block><custom-block s="%upvar $arrowLeft %s"><l>key b</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="b"/></custom-block></list></block></custom-block></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="keep items from stream %l %br OR stream %l %br ordered by key %repRing"><custom-block s="tail of stream %l"><block var="a"/></custom-block><custom-block s="tail of stream %l"><block var="b"/></custom-block><block var="key function"/></custom-block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="key a"/><block var="key b"/></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="keep items from stream %l %br OR stream %l %br ordered by key %repRing"><custom-block s="tail of stream %l"><block var="a"/></custom-block><block var="b"/><block var="key function"/></custom-block></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="b"/></custom-block><custom-block s="keep items from stream %l %br OR stream %l %br ordered by key %repRing"><block var="a"/><custom-block s="tail of stream %l"><block var="b"/></custom-block><block var="key function"/></custom-block></custom-block></block></script><scripts><script x="10" y="581.8333333333335"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br OR stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="item %&apos;index&apos; of stream %&apos;stream&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="300.8" collapsed="false">Report a specific item from a stream. (i.e. stream in, item out)&#xD;The inputs are a positive integer (item number), and the stream.&#xD;&#xD;The equivalent of SICP function STREAM-REF.&#xD;&#xD;Note that looking for something in a stream by index isn&apos;t a very &quot;streamly&quot; style of work.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="index"/><l>0.5</l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="index"/><l>1.5</l></list></block><custom-block s="is stream %l empty?"><block var="stream"/></custom-block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block><block s="doSetVar"><l>stream</l><custom-block s="tail of stream %l"><block var="stream"/></custom-block></block></script></block><block s="doReport"><custom-block s="head of stream %l"><block var="stream"/></custom-block></block></script><scripts><script x="7.14285714285711" y="235.72619047619074"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="item %n of stream %l"><l>5</l><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block><list><custom-block s="stream with numbers from %n"><l>11</l></custom-block></list></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="keep items from stream %&apos;a&apos; $nl XOR stream %&apos;b&apos; $nl ordered by key %&apos;key function&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%repRing" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><block var="b"/></block></script><list><custom-block s="is stream %l empty?"><block var="b"/></custom-block><script><block s="doReport"><block var="a"/></block></script></list></block><block s="doUntil"><block s="reportVariadicNotEquals"><list><custom-block s="%upvar $arrowLeft %s"><l>key a</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="a"/></custom-block></list></block></custom-block><custom-block s="%upvar $arrowLeft %s"><l>key b</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="b"/></custom-block></list></block></custom-block></list></block><script><block s="doSetVar"><l>a</l><custom-block s="tail of stream %l"><block var="a"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><block var="b"/></block></script><list></list></block><block s="doSetVar"><l>b</l><custom-block s="tail of stream %l"><block var="b"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="b"/></custom-block><script><block s="doReport"><block var="a"/></block></script><list></list></block></script></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="key a"/><block var="key b"/></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="keep items from stream %l %br XOR stream %l %br ordered by key %repRing"><custom-block s="tail of stream %l"><block var="a"/></custom-block><block var="b"/><block var="key function"/></custom-block></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="b"/></custom-block><custom-block s="keep items from stream %l %br XOR stream %l %br ordered by key %repRing"><block var="a"/><custom-block s="tail of stream %l"><block var="b"/></custom-block><block var="key function"/></custom-block></custom-block></block></script><scripts><script x="10" y="667.2500000000002"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br XOR stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="keep items from stream %&apos;a&apos; $nl but NOT stream %&apos;b&apos; $nl ordered by key %&apos;key function&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%l" initial="1"></input><input type="%repRing" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list><custom-block s="is stream %l empty?"><block var="b"/></custom-block><script><block s="doReport"><block var="a"/></block></script></list></block><block s="doUntil"><block s="reportVariadicLessThan"><list><custom-block s="%upvar $arrowLeft %s"><l>key a</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="a"/></custom-block></list></block></custom-block><custom-block s="%upvar $arrowLeft %s"><l>key b</l><block s="evaluate"><block var="key function"/><list><custom-block s="head of stream %l"><block var="b"/></custom-block></list></block></custom-block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="key a"/><block var="key b"/></list></block><script><block s="doSetVar"><l>a</l><custom-block s="tail of stream %l"><block var="a"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><custom-block s="the empty stream"></custom-block></block></script><list></list></block><block s="doSetVar"><l>b</l><custom-block s="tail of stream %l"><block var="b"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="b"/></custom-block><script><block s="doReport"><block var="a"/></block></script><list></list></block></script><script><block s="doSetVar"><l>b</l><custom-block s="tail of stream %l"><block var="b"/></custom-block></block><block s="doIf"><custom-block s="is stream %l empty?"><block var="b"/></custom-block><script><block s="doReport"><block var="a"/></block></script><list></list></block></script></block></script></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="keep items from stream %l %br but NOT stream %l %br ordered by key %repRing"><custom-block s="tail of stream %l"><block var="a"/></custom-block><block var="b"/><block var="key function"/></custom-block></custom-block></block></script><scripts><script x="7.142857142857143" y="670.2499999999997"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br but NOT stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="log stream %&apos;stream&apos; $nl to list %&apos;report&apos; labeled %&apos;label&apos; indexed? %&apos;indexed&apos;" type="reporter" category="Streams" space="true"><comment x="0" y="0" w="364.4000000000001" collapsed="false">Eavesdrop on a stream in action.&#xD;&#xD;For debugging purposes only! The log will consume a lot of memory.&#xD;&#xD;INPUTS:&#xD;1. the stream to be inspected&#xD;2. the list to be used as log (put it in a variable watcher to see changes happen)&#xD;3. a label for these log entries (optional: not used if this slot is left empty)&#xD;4. whether each entry into the log will be indexed (default: FALSE)&#xD;&#xD;Reports the input stream, so that it can be inserted in a composition of functions.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%txt"></input><input type="%b">false</input></inputs><script><custom-block s="let %upvar $arrowLeft %s"><l>index</l><l>0</l></custom-block><block s="doIf"><custom-block s="is %s empty?"><block var="label"/></custom-block><script><block s="doIf"><block var="indexed"/><script><block s="doReport"><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doAddToList"><block s="reportNewList"><list><block var="index"/><l></l></list></block><block var="report"/></block><block s="doReport"><l></l></block></script><list></list></block><list><block var="stream"/></list></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><script><block s="doAddToList"><l></l><block var="report"/></block><block s="doReport"><l></l></block></script><list></list></block><list><block var="stream"/></list></custom-block></block></script><list></list></block><block s="doIf"><block var="indexed"/><script><block s="doReport"><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doAddToList"><block s="reportNewList"><list><block var="label"/><block var="index"/><l></l></list></block><block var="report"/></block><block s="doReport"><l></l></block></script><list></list></block><list><block var="stream"/></list></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><script><block s="doAddToList"><block s="reportNewList"><list><block var="label"/><l></l></list></block><block var="report"/></block><block s="doReport"><l></l></block></script><list></list></block><list><block var="stream"/></list></custom-block></block></script><scripts><script x="10" y="573.9166666666665"><custom-block s="$speechBubble %mlt"><l>Demo: streams before and after KEEP</l></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>log</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>selection</l><custom-block s="list %n items of stream %l"><l>5</l><custom-block s="keep items %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><l></l><l>2</l></block><l>0</l></list></block></autolambda><list></list></block><custom-block s="log stream %l %br to list %l labeled %txt indexed? %b"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><block var="log"/><l></l><l><bool>false</bool></l></custom-block></custom-block></custom-block></custom-block><block s="doReport"><block s="reportNewList"><list><block s="reportCONS"><l>BEFORE:</l><block var="log"/></block><block s="reportCONS"><l>AFTER</l><block var="selection"/></block></list></block></block></script><script x="10" y="762.4166666666665"><custom-block s="$speechBubble %mlt"><l>Demo, with label and index</l></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>log</l><block s="reportNewList"><list></list></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>selection</l><custom-block s="list %n items of stream %l"><l>5</l><custom-block s="keep items %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><l></l><l>2</l></block><l>0</l></list></block></autolambda><list></list></block><custom-block s="log stream %l %br to list %l labeled %txt indexed? %b"><custom-block s="map %repRing over stream(s) %mult%l"><block s="reifyReporter"><autolambda><custom-block s="square %n"><l></l></custom-block></autolambda><list></list></block><list><custom-block s="stream with numbers from %n"><l>1</l></custom-block></list></custom-block><block var="log"/><l>squares</l><l><bool>true</bool></l></custom-block></custom-block></custom-block></custom-block><block s="doReport"><block s="reportCONS"><block s="reportNewList"><list><l>LABEL:</l><l>INDEX:</l><l>VALUE:</l></list></block><block var="log"/></block></block></script></scripts></block-definition><block-definition s="segment of stream %&apos;stream&apos; $nl starting with first item that %&apos;start condition&apos; $nl ending with next item that %&apos;end condition&apos; inclusive? %&apos;include&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="415.8857142857144" collapsed="false">Reports a segment (a contiguous subset) of the input stream, based on given starting and ending conditions.  One use of this block is to select a finite subset of a potentially infinite stream, which might be necessary to avoid an infinite recursion.&#xD;&#xD;INPUTS:&#xD;1. input stream;&#xD;2. start condition;&#xD;3. end condition;&#xD;4. whether to include the first item satisfying the end condition (default = FALSE)&#xD;&#xD;SPECIFYING THE START AND END CONDITIONS&#xD;The two conditions are predicate functions of two inputs, namely, an item from the stream and that item&apos;s index (position in the stream).  In the start condition, the index is with respect to the input stream; in the end condition, though, the index is taken with respect to the /result/ stream.  If the start condition is empty, the resulting segment starts at the beginning of the input stream.  If the end condition is empty, the resulting segment will reach to the end of the input stream, or will be infinite if the input is infinite.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAM.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing" initial="1"></input><input type="%predRing"></input><input type="%b" initial="1">false</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="end condition"/><block s="reifyPredicate"><script></script><list></list></block></list></block><script><block s="doSetVar"><l>end condition</l><block s="reifyPredicate"><autolambda><block s="reportBoolean"><l><bool>false</bool></l></block></autolambda><list></list></block></block></script><list></list></block><block s="doReport"><custom-block s="$gears segment of stream %l once %predRing until %predRing inclusive? %b index %s"><block var="stream"/><block var="start condition"/><block var="end condition"/><block var="include"/><l>1</l></custom-block></block></script><scripts><script x="7.142857142857143" y="275.8571428571429"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>Infinity</l><custom-block s="segment of stream %l %br starting with first item that %predRing %br ending with next item that %predRing inclusive? %b"><custom-block s="stream with numbers from %n"><l>12</l></custom-block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l>15</l></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block var="index"/><l>10</l></list></block></autolambda><list><l>value</l><l>index</l></list></block><l><bool>false</bool></l></custom-block></custom-block></block></script><script x="7.142857142857143" y="426.21428571428527"><custom-block s="$speechBubble %mlt"><l>Demo: (3, 4, 5)</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="segment of stream %l %br starting with first item that %predRing %br ending with next item that %predRing inclusive? %b"><custom-block s="stream with numbers from %n"><l>3</l></custom-block><block s="reifyPredicate"><script></script><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l>5</l></list></block></autolambda><list></list></block><l><bool>false</bool></l></custom-block></custom-block></block></script><script x="7.142857142857143" y="547.3571428571421"><custom-block s="$speechBubble %mlt"><l>By contrast, a version of the above with KEEP&#xD;will not terminate (use red button to stop manually).</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThanOrEquals"><list><l></l><l>5</l></list></block></autolambda><list></list></block><custom-block s="stream with numbers from %n"><l>3</l></custom-block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="stream demo" type="command" category="lists"><comment x="0" y="0" w="174.66666666666666" collapsed="true">Read the code while running it, </comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>ones</l><l>ints</l><l>primes</l></list></block><block s="doSetVar"><l>ones</l><custom-block s="%s in front of stream %anyUE"><l>1</l><block var="ones"/></custom-block></block><block s="doSetVar"><l>ints</l><custom-block s="%s in front of stream %anyUE"><l>1</l><custom-block s="map %repRing over stream %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><block var="ones"/><block var="ints"/></list></custom-block></custom-block></block><block s="doSetVar"><l>primes</l><custom-block s="sieve %l"><custom-block s="stream with numbers from %n"><l>2</l></custom-block></custom-block></block><block s="doSayFor"><custom-block s="show stream %l %n"><block var="ones"/><l>10</l></custom-block><l>2</l></block><block s="doSayFor"><custom-block s="show stream %l %n"><block var="ints"/><l>10</l></custom-block><l>2</l></block><block s="doSayFor"><custom-block s="show stream %l %n"><block var="primes"/><l>10</l></custom-block><l>2</l></block></script></block-definition><block-definition s="sieve %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="478" collapsed="false">Call this block with STREAM WITH NUMBERS FROM 2&#xD;as its input to get the infinite stream of all the prime numbers.&#xD;&#xD;It&apos;s called SIEVE because the algorithm it uses is the Sieve of&#xD;Eratosthenes (clickable link):&#xD;https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes&#xD;&#xD;Look inside; it&apos;s a beautifully elegant algorithm.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:a crivagem do canal _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="sieve %l"><custom-block s="keep items such that %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportModulus"><l></l><custom-block s="head of stream %l"><block var="stream"/></custom-block></block><l>0</l></list></block></autolambda><list></list></block><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="$gears show demo %&apos;description&apos; %&apos;demo&apos; %&apos;howmany&apos;" type="command" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s"></input><input type="%n"></input></inputs><script><block s="doSayFor"><block var="description"/><l>2</l></block><block s="doSayFor"><l></l><l>0.5</l></block><block s="bubble"><custom-block s="show stream %l %n"><block var="demo"/><block var="howmany"/></custom-block></block><block s="doPauseAll"></block><block s="bubble"><l></l></block></script></block-definition><block-definition s="show stream %&apos;stream&apos; %&apos;number&apos;" type="reporter" category="lists"><comment x="0" y="0" w="364" collapsed="false">The inputs are a stream and a positive integer.  SHOW STREAM reports a&#xD;regular finite list of length less than (for short finite streams) or equal to the&#xD;second input.  It&apos;s useful because an infinite stream can&apos;t be displayed in a&#xD;finite amount of time.</comment><header></header><code></code><translations>pt:uma lista com os itens do canal _ até ao _ º&#xD;</translations><inputs><input type="%l"></input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="stream"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="number"/><l>0</l></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="show stream %l %n"><custom-block s="tail of stream %l"><block var="stream"/></custom-block><block s="reportDifference"><block var="number"/><l>1</l></block></custom-block></block></block></script></block-definition><block-definition s="MORE stream blocks …" type="reporter" category="Streams"><comment x="0" y="0" w="62" collapsed="true">Edit me.</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="$speechBubble %mlt %cs"><l>for upward compatibility with library v1!</l><script><custom-block s="· %anyUE"><custom-block s="map %repRing over stream %mult%l"><block s="reifyReporter"><script></script><list></list></block><list><l/></list></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="keep items such that %predRing from stream %l"><block s="reifyPredicate"><script></script><list></list></block><l/></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="show stream %l %n"><l/><l>10</l></custom-block></custom-block></script></custom-block><custom-block s="$speechBubble %mlt %cs"><l>create streams</l><script><custom-block s="· %anyUE"><custom-block s="stream with numbers from %n to %n step %n"><l>1</l><l>Infinity</l><l>1</l></custom-block></custom-block></script></custom-block><custom-block s="$speechBubble %mlt %cs"><l>higher order functions and UNIQUES</l><script><custom-block s="· %anyUE"><custom-block s="map %repRing over keep %predRing from map %repRing over stream %l"><block s="reifyReporter"><script></script><list></list></block><block s="reifyPredicate"><script></script><list></list></block><block s="reifyReporter"><script></script><list></list></block><l/></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="$crosshairs flatmap %repRing over stream %l"><block s="reifyReporter"><script></script><list></list></block><l/></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="flatmap finite %repRing over stream %l"><block s="reifyReporter"><script></script><list></list></block><l/></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="$flash uniques by %predRing latest 1st? %b of stream %l"><block s="reifyPredicate"><script></script><list></list></block><l/><l/></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="$flash integrate %repRing with precursor %s over stream %l"><block s="reifyReporter"><script></script><list></list></block><l></l><l/></custom-block></custom-block></script></custom-block><custom-block s="$speechBubble %mlt %cs"><l>mix streams</l><script><custom-block s="· %anyUE"><custom-block s="merge streams %mult%l %br ordered by %repRing uniques? %b by %predRing"><list><l/><l/></list><block s="reifyReporter"><script></script><list></list></block><l/><block s="reifyPredicate"><script></script><list></list></block></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="keep items from stream %l %br %s stream %l %br ordered by key %repRing"><l/><l>AND</l><l/><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></script></custom-block><custom-block s="$speechBubble %mlt %cs"><l>selectors</l><script><custom-block s="· %anyUE"><custom-block s="list %n items with %upvar of stream %l"><l>10</l><l>downstream</l><l/></custom-block></custom-block><custom-block s="· %anyUE"><block s="reifyScript"><script><custom-block s="%upvar for each %upvar in stream %l %cs"><l>#</l><l>item</l><l/><script></script></custom-block></script><list></list></block></custom-block></script></custom-block><custom-block s="$speechBubble %mlt %cs"><l>demos</l><script><custom-block s="· %anyUE"><custom-block s="sorted stream from unsorted list %l"><l/></custom-block></custom-block><custom-block s="· %anyUE"><custom-block s="sieve %l"><l/></custom-block></custom-block></script></custom-block><block s="doReport"><l>Edit me!</l></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of KEEP.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:os itens tais que _ do canal _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="stream"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="keep items such that %predRing from stream %l"><block var="pred"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from stream %l"><block var="pred"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="$gears HELPER stream repeating %&apos;items&apos;" type="reporter" category="Streams"><header></header><code></code><translations>pt:um canal com _&#xD;</translations><inputs><input type="%l">help</input></inputs><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="reportListItem"><l>1</l><block var="items"/></block><custom-block s="$gears HELPER stream repeating %l"><custom-block s="%l followed by %s"><block s="reportCDR"><block var="items"/></block><block s="reportListItem"><l>1</l><block var="items"/></block></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; in stream %&apos;stream&apos; %&apos;action&apos;" type="command" category="Streams"><comment x="0" y="0" w="238" collapsed="false">The stream equivalant of FOR EACH (item) OF (list).&#xD;&#xD;CAUTION&#xD;If the embedded action uses a variable that is external to this block, the variable can not be changed inside the action.&#xD;&#xD;General info on streams: see the help text of TAIL OF STREAMS.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><custom-block s="let %upvar $arrowLeft %s"><l>action*</l><custom-block s="substitute vars %s"><block var="action"/></custom-block></custom-block><block s="doSetVar"><l>#</l><l>1</l></block><block s="doUntil"><custom-block s="is stream %l empty?"><block var="stream"/></custom-block><script><block s="doSetVar"><l>item</l><custom-block s="head of stream %l"><block var="stream"/></custom-block></block><block s="doRun"><block s="reportAttributeOf"><block var="action*"/><block s="reportEnvironment"><l><option>script</option></l></block></block><list></list></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>stream</l><custom-block s="tail of stream %l"><block var="stream"/></custom-block></block></script></block></script><scripts><script x="10" y="262.1666666666666"><custom-block s="%upvar for each %upvar in stream %l %cs"><l>#</l><l>item</l><custom-block s="stream %mult%s"><block s="reportNumbers"><l>11</l><l>20</l></block></custom-block><script><block s="doSayFor"><block s="reportNewList"><list><block var="#"/><block var="item"/></list></block><l>0.5</l></block></script></custom-block></script></scripts></block-definition><block-definition s="sorted stream from unsorted list %&apos;data&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="285.4601562500002" collapsed="false">A stream of sorted items (in ascending order) from an unsorted list. So item 1 of the stream is the list’s smallest item. If you are only looking for a few of a list’s smallest items, but don’t know how many in advance, this approach makes sense.&#xD;&#xD;For practical purposes, [SORTED] OF is usually faster, though. This is because the latter block’s JavaScript code was very much optimized for runtime efficiency - it ain’t fair, really.</comment><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"><custom-block s="the empty stream"></custom-block></block></script><list></list></block><custom-block s="let %upvar $arrowLeft %s"><l>lowest</l><block s="reportVariadicMin"><block var="data"/></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>low index</l><block s="reportListIndex"><block var="lowest"/><block var="data"/></block></custom-block><custom-block s="let %upvar $arrowLeft %s"><l>length</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></custom-block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="lowest"/><custom-block s="sorted stream from unsorted list %l"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportNumbers"><block var="low index"/><block s="reportDifference"><block s="reportVariadicSum"><list><block var="low index"/><block var="length"/></list></block><l>2</l></block></block><block var="length"/></block><l>1</l></list></block><block var="data"/></block></custom-block></custom-block></block></script><scripts><script x="10" y="355.74999999999994"><custom-block s="$speechBubble %mlt"><l>Demo: only the top-3 of lowest numbers from a large list is calculated</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>3</l><custom-block s="sorted stream from unsorted list %l"><block s="reportListAttribute"><l><option>shuffled</option></l><block s="reportNumbers"><l>1</l><l>123456</l></block></block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="$speechBubble %&apos;text&apos; %&apos;action&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%mlt">no comment!</input><input type="%cs" initial="1"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block></script></block-definition><block-definition s="$gears HELPER interleave streams %&apos;delayed streams&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l" initial="2"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="delayed streams"/></block></block><script><block s="doReport"><block s="reportIfElse"><block s="reportListIsEmpty"><block var="delayed streams"/></block><custom-block s="the empty stream"></custom-block><block s="evaluate"><block s="reportListItem"><l>1</l><block var="delayed streams"/></block><list></list></block></block></block></script><list></list></block><block s="doIf"><custom-block s="is stream %l empty?"><custom-block s="%upvar $arrowLeft %s"><l>first</l><block s="evaluate"><block s="reportListItem"><l>1</l><block var="delayed streams"/></block><list></list></block></custom-block></custom-block><script><block s="doReport"><custom-block s="$gears HELPER interleave streams %l"><block s="reportCDR"><block var="delayed streams"/></block></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="first"/></custom-block><custom-block s="$gears HELPER interleave streams %l"><custom-block s="%l followed by %s"><block s="reportCDR"><block var="delayed streams"/></block><custom-block s="delay %anyUE"><custom-block s="tail of stream %l"><block var="first"/></custom-block></custom-block></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="interleave streams %&apos;a&apos; %&apos;b&apos;" type="reporter" category="Streams"><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%anyUE" initial="1"></input></inputs><script><block s="doIf"><custom-block s="is stream %l empty?"><block var="a"/></custom-block><script><block s="doReport"><block s="evaluate"><block var="b"/><list></list></block></block></script><list></list></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="a"/></custom-block><custom-block s="interleave streams %l %anyUE"><block s="evaluate"><block var="b"/><list></list></block><custom-block s="tail of stream %l"><block var="a"/></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="keep items from stream %&apos;a&apos; $nl %&apos;logical operator&apos; stream %&apos;b&apos; $nl ordered by key %&apos;key function&apos;" type="reporter" category="Streams"><comment x="0" y="0" w="227.85714285714286" collapsed="false">Merge two streams, keeping only items satisfying a logical condition with respect to the items of a second stream.&#xD;&#xD;INPUT&#xD;1. primary stream;&#xD;2. logical operator (AND, OR, XOR, NOT);&#xD;3. secondary stream;&#xD;4. key function, by which both streams are supposed to have been pre-sorted (ascending).&#xD;&#xD;WHAT IT DOES (with each logical operator)&#xD;AND: items from the primary stream that are also in the secondary stream will be kept (in case of multiple copies in either stream: the output stream will contain as many copies as the minimum number of copies of both input streams);&#xD;OR: items that are either in the primary or secondary stream, or both, will be kept. &#xD;In case of multiple copies of an item: like AND.&#xD;XOR: like OR, but items that are in both streams will be excluded.&#xD;NOT: items are kept that are in the primary stream and not in the secondary stream.</comment><header></header><code></code><translations></translations><inputs><input type="%l" initial="1"></input><input type="%s" readonly="true" initial="1">AND<options>AND&#xD;OR&#xD;XOR&#xD;but NOT</options></input><input type="%l" initial="1"></input><input type="%repRing" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="logical operator"/><l>AND</l></list></block><script><block s="doReport"><custom-block s="keep items from stream %l %br AND stream %l %br ordered by key %repRing"><block var="a"/><block var="b"/><block var="key function"/></custom-block></block></script><list><block s="reportVariadicEquals"><list><block var="logical operator"/><l>OR</l></list></block><script><block s="doReport"><custom-block s="keep items from stream %l %br OR stream %l %br ordered by key %repRing"><block var="a"/><block var="b"/><block var="key function"/></custom-block></block></script><block s="reportVariadicEquals"><list><block var="logical operator"/><l>XOR</l></list></block><script><block s="doReport"><custom-block s="keep items from stream %l %br XOR stream %l %br ordered by key %repRing"><block var="a"/><block var="b"/><block var="key function"/></custom-block></block></script></list></block><block s="doReport"><custom-block s="keep items from stream %l %br but NOT stream %l %br ordered by key %repRing"><block var="a"/><block var="b"/><block var="key function"/></custom-block></block></script><scripts><script x="7.142857142857143" y="388.83333333333366"><custom-block s="$speechBubble %mlt"><l>Demo</l></custom-block><block s="doReport"><custom-block s="list %n items of stream %l"><l>10</l><custom-block s="keep items from stream %l %br %s stream %l %br ordered by key %repRing"><custom-block s="stream with numbers from %n"><l>1</l></custom-block><l>XOR</l><custom-block s="generate stream %repRing %upvar w/seeds: %mult%s"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="#"/><l>2.5</l></list></block></autolambda><list></list></block><l>#</l><list></list></custom-block><block s="reifyReporter"><script></script><list></list></block></custom-block></custom-block></block></script></scripts></block-definition><block-definition s="%&apos;value&apos; following %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="187.00000000000003" collapsed="false">The counterpart of IN FRONT OF: returns the first input attached at the back end of the list that is the second input</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><list><block var="data"/><block s="reportNewList"><list><block var="value"/></list></block></list></block></block></script></block-definition><block-definition s="square %&apos;number&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="number"/><block var="number"/></list></block></block></script></block-definition><block-definition s="bar chart of table %&apos;data&apos; grouped by field: %&apos;field&apos; from: %&apos;floor&apos; to: %&apos;ceiling&apos; interval: %&apos;interval&apos;" type="reporter" category="lists"><comment x="0" y="0" w="344.6666666666667" collapsed="false">Takes a table (typically from a CSV data set) as input and reports a summary of the table grouped by the field in the specified column number.  The remaining three inputs are used only if the field values are numbers, in which case they can be grouped into buckets (e.g., decades, centuries, etc.).  Those three inputs specify the smallest and largest values of interest and, most importantly, the width of a bucket (10 for decades, 100 for centuries).  If the field isn&apos;t numeric, leave these three inputs empty or set them to zero.  In that case, each string value of the field is its own bucket, and they appear sorted alphabetically.&#xD;&#xD;The block reports a new table with three columns.  The first column contains the bucket name or smallest number.  The second column contains a nonnegative integer that says how many records in the input table fall into this bucket.  The third column is a subtable containing the actual records from the original table that fall into the bucket.&#xD;&#xD;If your buckets aren&apos;t of constant width, or you want to group by some function of more than one field, load the &quot;Frequency Distribution Analysis&quot; library instead. </comment><header></header><code></code><translations>ca:gràfica de la taula _ agrupada pel camp: _ des de: _ fins: _ interval: _&#xD;</translations><inputs><input type="%l"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>sorted</l></list></block><block s="doSetVar"><l>sorted</l><custom-block s="sort table %l on field %n in %s order"><custom-block s="group table %l by field %n by intervals of: %n"><block var="data"/><block var="field"/><block var="interval"/></custom-block><l>1</l><l>ascending</l></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="interval"/><l>0</l></list></block><script><block s="doReport"><block var="sorted"/></block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCONS"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><l/></block><block var="interval"/></list></block><block s="reportCDR"><l/></block></block></autolambda><list></list></block><custom-block s="bar chart helper function to fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block var="sorted"/><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="floor"/><block var="interval"/></block></block><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block var="ceiling"/><block var="interval"/></block></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l>1</l></list></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><l>0</l><block s="reportNewList"><list></list></block></list></block></autolambda><list></list></block></custom-block></block></block></script></block-definition><block-definition s="bar chart helper function to fill %&apos;data&apos; key: %&apos;key&apos; from: %&apos;floor&apos; to: %&apos;ceiling&apos; interval: %&apos;interval&apos; with: %&apos;generator&apos;" type="reporter" category="lists"><comment x="0" y="0" w="103" collapsed="false">add missing entries to a sorted list. Used for histograms</comment><header></header><code></code><translations>pt:os itens de _ com a chave _ entre _ e _ com passo _ completados por _&#xD;ca:gràfica omplint _ amb clau: _ des de: _ fins: _ interval: _ amb _&#xD;</translations><inputs><input type="%l"></input><input type="%repRing"></input><input type="%n"></input><input type="%n"></input><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="floor"/><block var="ceiling"/></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="generator"/><list><block var="floor"/></list></block><custom-block s="bar chart helper function to fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block var="data"/><block var="key"/><block s="evaluate"><block var="interval"/><list><block var="floor"/></list></block><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="evaluate"><block var="key"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block var="floor"/></list></block><script><block s="doReport"><custom-block s="bar chart helper function to fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block s="reportCDR"><block var="data"/></block><block var="key"/><block var="floor"/><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="evaluate"><block var="key"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block var="floor"/></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="bar chart helper function to fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block s="reportCDR"><block var="data"/></block><block var="key"/><block s="evaluate"><block var="interval"/><list><block var="floor"/></list></block><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="generator"/><list><block var="floor"/></list></block><custom-block s="bar chart helper function to fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><block var="data"/><block var="key"/><block s="evaluate"><block var="interval"/><list><block var="floor"/></list></block><block var="ceiling"/><block var="interval"/><block var="generator"/></custom-block></block></block></script></block-definition><block-definition s="plot bar chart %&apos;data&apos; bars at x: %&apos;left&apos; y: %&apos;bottom&apos; width: %&apos;width&apos; height: %&apos;height&apos;" type="command" category="pen"><header></header><code></code><translations>pt:desenha gráfico de barras de _ em (x: _ , y: _ ) com largura _ e altura _&#xD;ca:dibuixa gràfic _ a x: _ y: _ amplada: _ alçada: _&#xD;</translations><inputs><input type="%l"></input><input type="%n">-200</input><input type="%n">-100</input><input type="%n">400</input><input type="%n">200</input></inputs><script><block s="doDeclareVariables"><list><l>ratio</l><l>step</l><l>flat line ends</l><l>col</l><l>sorted</l><l>min</l><l>digit12</l><l>saved pentrails</l><l>digit10</l><l>x label width</l><l>saved position</l><l>label delta y</l><l>max y</l></list></block><block s="doSetVar"><l>flat line ends</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><l><bool>true</bool></l></block><block s="doSetVar"><l>saved pentrails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="up"><comment w="105.33333333333333" collapsed="false">find out how wide a digit is at two sizes</comment></block><block s="doGotoObject"><l><option>center</option></l></block><block s="write"><l>1234567890</l><l>12</l></block><block s="doSetVar"><l>digit12</l><block s="reportQuotient"><block s="xPosition"></block><l>10</l></block></block><block s="clear"></block><block s="up"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="write"><l>1234567890</l><l>10</l></block><block s="doSetVar"><l>digit10</l><block s="reportQuotient"><block s="xPosition"></block><l>10</l></block></block><block s="clear"></block><block s="doSwitchToCostume"><block var="saved pentrails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="doSetVar"><l>x label width</l><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportMonadic"><l><option>log</option></l><block s="reportListItem"><l>1</l><block s="reportListItem"><l><option>last</option></l><block var="data"/></block></block></block></block></block><block s="doSetVar"><l>sorted</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><custom-block s="sort table %l on field %n in %s order"><block var="data"/><l>2</l><l>descending</l></custom-block></block></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportListItem"><l><option>last</option></l><block var="sorted"/></block><l>0</l></list></block><script><block s="doSetVar"><l>min</l><block s="reportListItem"><l><option>last</option></l><block var="sorted"/></block></block></script><script><block s="doSetVar"><l>min</l><l>0</l></block></script><comment w="142" collapsed="false">If smallest value &lt; 0, the x axis isn&apos;t at the bottom.&#xD;Note that sort is by &gt; not by &lt;.&#xD;Not clear this can happen in a&#xD;histogram!</comment></block><block s="doSetVar"><l>max y</l><block s="reportListItem"><l>1</l><block var="sorted"/></block></block><block s="doSetVar"><l>ratio</l><block s="reportQuotient"><block var="height"/><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="sorted"/></block><block var="min"/></block></block></block><block s="doSetVar"><l>label delta y</l><block s="reportVariadicProduct"><list><block s="reportRound"><block s="reportQuotient"><block var="max y"/><l>50</l></block></block><l>10</l></list></block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><block var="width"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="step"/><l>2</l></list></block><script><block s="doSetVar"><l>col</l><block s="reportDifference"><block var="step"/><l>1</l></block></block></script><script><block s="doSetVar"><l>col</l><block s="reportVariadicProduct"><list><block var="step"/><l>0.8</l></list></block></block></script></block><block s="gotoXY"><block var="left"/><block s="reportDifference"><block var="bottom"/><block s="reportVariadicProduct"><list><block var="min"/><block var="ratio"/></list></block></block></block><block s="setSize"><l>1</l></block><block s="down"></block><block s="setHeading"><l>90</l></block><block s="forward"><block var="width"/><comment w="110.66666666666667" collapsed="true">draw x axis at y=0</comment></block><block s="up"></block><block s="gotoXY"><block var="left"/><block var="bottom"/></block><block s="setHeading"><l>0</l></block><block s="down"></block><block s="forward"><block var="height"/><comment w="74.66666666666667" collapsed="true">draw y axis</comment></block><block s="up"></block><block s="setHeading"><l>90</l></block><block s="gotoXY"><block s="reportDifference"><block var="left"/><block s="reportVariadicSum"><list><block var="digit12"/><l>2</l></list></block></block><block s="reportDifference"><block var="bottom"/><block s="reportVariadicProduct"><list><block var="min"/><block var="ratio"/></list></block></block></block><block s="write"><l>0</l><l>12</l></block><block s="doFor"><l>i</l><l>1</l><l>5</l><script><block s="changeYPosition"><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="label delta y"/><block var="min"/></block><block var="ratio"/></list></block></block><block s="setXPosition"><block s="reportDifference"><block var="left"/><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="digit12"/><block s="reportTextAttribute"><l><option>length</option></l><block s="reportVariadicProduct"><list><block var="label delta y"/><block var="i"/></list></block></block></list></block><l>2</l></list></block></block></block><block s="write"><block s="reportVariadicProduct"><list><block var="label delta y"/><block var="i"/></list></block><l>12</l></block></script></block><block s="gotoXY"><block var="left"/><block var="bottom"/><comment w="112" collapsed="true">Ready to draw bars.</comment></block><block s="changeXPosition"><block s="reportQuotient"><block var="step"/><l>2</l></block></block><block s="setSize"><block var="col"/></block><block s="doWarp"><script><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><l>0</l></list></block><script><block s="down"></block><block s="changeYPosition"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block var="min"/></block><block var="ratio"/></list></block></block><block s="up"></block><block s="setYPosition"><block var="bottom"/></block><block s="doSetVar"><l>saved position</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="col"/><l>15</l></list><comment w="319.3333333333333" collapsed="true">Choose label format depending on label width vs. bar width.</comment></block><script><block s="setYPosition"><block s="reportDifference"><block var="bottom"/><l>2</l></block></block><block s="changeXPosition"><block s="reportDifference"><block s="reportQuotient"><block var="step"/><l>2</l></block><l>8</l></block></block><block s="setHeading"><l>180</l></block><block s="write"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>10</l></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="col"/><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block var="digit10"/><block var="x label width"/></list></block><l>2.5</l></list></block></list></block><script><block s="setYPosition"><block s="reportDifference"><block var="bottom"/><l>2</l></block></block><block s="changeXPosition"><block s="reportDifference"><block s="reportQuotient"><block var="step"/><l>2</l></block><l>10</l></block></block><block s="setHeading"><l>180</l></block><block s="write"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>12</l></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="col"/><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block var="digit12"/><block var="x label width"/></list></block><l>2.5</l></list></block></list></block><script><block s="setYPosition"><block s="reportDifference"><block var="bottom"/><l>10</l></block></block><block s="setHeading"><l>90</l></block><block s="forward"><block s="reportDifference"><block s="reportDifference"><block s="reportQuotient"><block var="step"/><l>2</l></block><block s="reportVariadicProduct"><list><block var="digit10"/><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportMonadic"><l><option>log</option></l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block></block></list></block></block><l>2</l></block></block><block s="write"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>10</l></block></script><script><block s="setYPosition"><block s="reportDifference"><block var="bottom"/><l>12</l></block></block><block s="setHeading"><l>90</l></block><block s="forward"><block s="reportDifference"><block s="reportDifference"><block s="reportQuotient"><block var="step"/><l>2</l></block><block s="reportVariadicProduct"><list><block var="digit12"/><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportMonadic"><l><option>log</option></l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="data"/></block></block></block></block></list></block></block><l>2</l></block></block><block s="write"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><l>12</l></block></script></block></script></block></script></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block><block s="setHeading"><l>90</l></block><block s="doGotoObject"><block var="saved position"/></block><block s="changeXPosition"><block var="step"/></block></script></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends"/></block></script></block-definition><block-definition s="sort table %&apos;data&apos; on field %&apos;field number&apos; in %&apos;order&apos; order" type="reporter" category="lists"><header></header><code></code><translations>ca:ordena taula _ pel camp _ en ordre _&#xD;</translations><inputs><input type="%l"></input><input type="%n"></input><input type="%s" readonly="true"><options>ascending&#xD;descending</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="order"/><l>ascending</l></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block s="reportListItem"><block var="field number"/><l/></block><block s="reportListItem"><block var="field number"/><l/></block></list></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="field number"/><l/></block><block s="reportListItem"><block var="field number"/><l/></block></list></block></autolambda><list></list></block></block></list></block></block></script></block-definition><block-definition s="group table %&apos;data&apos; by field %&apos;number&apos; by intervals of: %&apos;interval&apos;" type="reporter" category="lists"><header></header><code></code><translations>ca:agrupa taula _ pel camp _ per intervals de _&#xD;</translations><inputs><input type="%l"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>dta_group(list, fn)</l><list><block var="data"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="interval"/><l>0</l></list></block><block s="reifyReporter"><autolambda><block s="reportListItem"><block var="number"/><l/></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>ceiling</option></l><block s="reportQuotient"><block s="reportListItem"><block var="number"/><l/></block><block var="interval"/></block></block></autolambda><list></list></block></block></list></block></block></script></block-definition><block-definition s="plot bars %&apos;data&apos; fill %&apos;width&apos; center %&apos;switch&apos;" type="command" category="pen"><comment x="0" y="0" w="120" collapsed="false">draw a list of numbers as  vertical lines distributed evenly across the stage.</comment><header></header><code></code><translations>de:male Balken _ gefüllt _ zentriert _&#xD;</translations><inputs><input type="%l"></input><input type="%n">0.8<options>single=0.8&#xD;pan=1&#xD;overlap=1.2</options></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>slice</l><l>pos</l><l>pen size</l></list></block><block s="doSetVar"><l>pos</l><block s="getPosition"></block></block><block s="doSetVar"><l>slice</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block></block><block s="doSetVar"><l>pen size</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="setSize"><block s="reportVariadicProduct"><list><block var="slice"/><block var="width"/></list></block></block><block s="setXPosition"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><block s="reportGet"><l><option>stage</option></l></block></block><block s="reportQuotient"><block var="slice"/><l>2</l></block></list></block></block><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="data"/><script><block s="setYPosition"><block s="reportIfElse"><block var="switch"/><block s="reportQuotient"><block var="item"/><l>-2</l></block><block s="reportAttributeOf"><l><option>bottom</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></block><block s="down"></block><block s="changeYPosition"><block var="item"/></block><block s="up"></block><block s="changeXPosition"><block var="slice"/></block></script></block></script></block><block s="doGotoObject"><block var="pos"/></block><block s="setSize"><block var="pen size"/></block></script></block-definition><block-definition s="listify %&apos;jsonString&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:os dados JSON _ em formato de lista&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>jsonString</l></list><l>return listify(JSON.parse(jsonString));&#xD;&#xD;function listify(jsonObject) {&#xD;  if (jsonObject instanceof Array) {&#xD;    return new List(jsonObject.map(function(eachElement) { return listify(eachElement)}));&#xD;  } else if (jsonObject instanceof Object) {&#xD;    return new List(Object.keys(jsonObject).map(function(eachKey) { return new List([eachKey,listify(jsonObject[eachKey])])} ))&#xD;  } else {&#xD;    return jsonObject&#xD;  }&#xD;}</l></block><list><block var="jsonString"/></list></block></block></script></block-definition><block-definition s="value at key %&apos;key&apos; of %&apos;lst&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o valor com chave _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>each item</l><block var="lst"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="each item"/></block><block var="key"/></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="each item"/></block></block></script><list></list></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;method&apos; url: %&apos;url&apos; send: %&apos;payload&apos; headers: %&apos;headers&apos;" type="reporter" category="sensing"><header></header><code></code><translations>pt:a resposta a _ de _ enviando _ e cabeçalhos _&#xD;</translations><inputs><input type="%s" readonly="true">GET<options>GET&#xD;POST&#xD;PUT&#xD;DELETE</options></input><input type="%s">https://snap.berkeley.edu</input><input type="%s"></input><input type="%mult%l" readonly="true"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>method</l><l>url</l><l>data</l><l>headers</l><l>proc</l></list><l>var response, i, header;&#xD;if (!proc.httpRequest) {&#xD;  proc.httpRequest = new XMLHttpRequest();&#xD;  proc.httpRequest.open(method, url, true);&#xD;  proc.assertType(headers, &apos;list&apos;);&#xD;  for (i = 1; i &lt;= headers.length(); i += 1) {&#xD;    header = headers.at(i);&#xD;    proc.assertType(header, &apos;list&apos;);&#xD;    proc.httpRequest.setRequestHeader(&#xD;      header.at(1),&#xD;      header.at(2)&#xD;    );&#xD;  }&#xD;  proc.httpRequest.send(data || null);&#xD;} else if (proc.httpRequest.readyState === 4) {&#xD;  response = proc.httpRequest.responseText;&#xD;  proc.httpRequest = null;&#xD;  return response;&#xD;}&#xD;proc.pushContext(&apos;doYield&apos;);&#xD;proc.pushContext();</l></block><list><block var="method"/><block var="url"/><block var="payload"/><block var="headers"/></list></block></block></script></block-definition><block-definition s="key: %&apos;key&apos; value: %&apos;value&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:um par (chave: _ , valor: _ )&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="key"/><block var="value"/></list></block></block></script></block-definition><block-definition s="current location" type="reporter" category="sensing"><comment x="0" y="0" w="200" collapsed="false">Reports a three-item list containing the latitude and longitude of the user, and the precision of the measurements.  Works only if the user allows snap.berkeley.edu access to location data.  Some browsers also require an HTTPS connection to Snap!.</comment><header></header><code></code><translations>pt:a localização actual do dispositivo&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>if (!proc.geostarted) {&#xD;  var geo = navigator.geolocation;&#xD;  var cords = [];&#xD;  var options = {&#xD;    enableHighAccuracy: false,&#xD;  };&#xD;&#xD;  function success(pos) {&#xD;    console.log(pos);&#xD;    proc.geocords = [pos.coords.latitude,&#xD;                     pos.coords.longitude,&#xD;                     pos.coords.accuracy];&#xD;  }&#xD;&#xD;  function error(err) {&#xD;    alert("ERROR " + err.code + ": " + err.message);&#xD;  }&#xD;  proc.geostarted = true;&#xD;  proc.geocords = null;&#xD;  console.log("starting geolocation")&#xD;  geo.getCurrentPosition(success, error, options);&#xD;} else if (proc.geocords) {&#xD;  var cords = proc.geocords;&#xD;  proc.geostarted = null;&#xD;  proc.geocords = null;&#xD;  console.log("returning");&#xD;  return new List(cords);&#xD;} else {&#xD;  console.log("yielding");&#xD;  proc.pushContext(&apos;doYield&apos;);&#xD;  proc.pushContext();&#xD;}</l></block><list></list></block></block></script></block-definition><block-definition s="binary data from %&apos;url&apos; type %&apos;idl&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true" initial="1">octet<options>byte&#xD;octet&#xD;short&#xD;unsigned short&#xD;long&#xD;unsigned long&#xD;unrestricted float&#xD;unrestricted double&#xD;bigint</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>xhr_binary(url, webIDL_type)</l><list><block var="url"/><block var="idl"/></list></block></block></script></block-definition><block-definition s="let %&apos;declarations&apos;" type="command" category="other"><header></header><code></code><translations>de:deklariere _&#xD;</translations><inputs><input type="%group%upvar%s" irreplaceable="true" expand="$nl&#xD;$arrowLeft" initial="2" min="2">$_variable&#xD;$_thing</input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>tuple</l><block var="declarations"/><script><block s="doTellTo"><block s="reportEnvironment"><l><option>caller</option></l></block><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><block var="tuple"/></block></script></block></script></block></script></block-definition><block-definition s="bitwise not %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_not(a)</l><list><block var="a"/></list></block></block></script></block-definition><block-definition s="bitwise %&apos;a&apos; and %&apos;b&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="reportApplyExtension"><l>bit_and(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="bitwise %&apos;a&apos; or %&apos;b&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="reportApplyExtension"><l>bit_or(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="bitwise %&apos;a&apos; xor %&apos;b&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="reportApplyExtension"><l>bit_xor(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="bitwise left shift %&apos;a&apos; by %&apos;b&apos; bits" 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="reportApplyExtension"><l>bit_left_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="bitwise right shift %&apos;a&apos; by %&apos;b&apos; bits" 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="reportApplyExtension"><l>bit_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="bitwise unsigned right shift %&apos;a&apos; by %&apos;b&apos; bits" 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="reportApplyExtension"><l>bit_unsigned_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="write %&apos;text&apos; size %&apos;sz&apos; stats %&apos;stats&apos;" type="command" category="pen"><comment x="0" y="0" w="211.66666666666669" collapsed="false">Writes text onto the stage, and allows extra styling. You don&apos;t have to add stats.&#xD;&#xD;Created by Tethrarxitet!&#xD;pic goes hard feel free to screenshot</comment><header></header><code></code><translations>es:escribir _ con tamaña _ e información _&#xD;pt:escreva _ com tamanho _ e edita _&#xD;fr:écrire _ avec la taille _ et les modificateurs _&#xD;ru:напишите _ с размером _ и модами _&#xD;</translations><inputs><input type="%s">Hello!</input><input type="%n">12</input><input type="%n" readonly="true"></input></inputs><script><block s="write"><block var="text"/><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="stats"/><l>0</l></list></block><block var="sz"/><block s="reportJoinWords"><list><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportTypeOf"><block s="reportListItem"><l>2</l><block var="stats"/></block></block><l>Boolean</l></list></block><block s="reportIfElse"><block s="reportListItem"><l>2</l><block var="stats"/></block><l>bold </l><l></l></block><block s="reportJoinWords"><list><block s="reportListItem"><l>2</l><block var="stats"/></block><l> </l></list></block></block><block s="reportIfElse"><block s="reportListItem"><l>3</l><block var="stats"/></block><l>italic </l><l></l></block><block var="sz"/><l>px </l><block s="reportListItem"><l>1</l><block var="stats"/></block><l>,</l></list></block></block></block></script><scripts><script x="8.333333333333334" y="241.05555555555455"><custom-block s="write %s size %n stats %n"><l>Hello!</l><l>12</l><l></l></custom-block></script><script x="8.333333333333334" y="278.38888888888783"><custom-block s="text costume %s size %n stats %n"><l>Hello!</l><l>12</l><l></l></custom-block></script><script x="8.333333333333334" y="309.7222222222213"><custom-block s="font %s %br bold %b %br italic %b"><l>monospace</l><l/><l/></custom-block></script><script x="8.333333333333334" y="364.222222222221"><custom-block s="font %s %br weight %n %br italic %b"><l>monospace</l><l>500</l><l/></custom-block></script><comment x="249.9980468749998" y="253.0833333333322" w="90" collapsed="false">Dependencies and blocks that depend on this</comment></scripts></block-definition><block-definition s="text costume %&apos;text&apos; size %&apos;size&apos; stats %&apos;stats&apos;" type="reporter" category="pen"><header></header><code></code><translations>es:disfraz de texto _ tamaño _ e información _&#xD;pt:traje de texto _ com tamanho _ e edita _&#xD;fr:costume de texte _ avec taille _ et modificateurs _&#xD;ru:текст костюм _ с размером _ и модами _&#xD;</translations><inputs><input type="%s">Hello!</input><input type="%n">12</input><input type="%n" readonly="true"></input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>x</l><l>y</l><l>dir</l><l>cst</l><l>trails</l><l>pen state</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>cst</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSetVar"><l>pen state</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><custom-block s="write %s size %n stats %n"><block var="text"/><block var="size"/><block var="stats"/></custom-block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><block s="doSetVar"><l>costume</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="doApplyExtension"><l>obj_name(obj, name)</l><list><block var="costume"/><block s="reportJoinWords"><list><block var="text"/></list></block></list></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="doIf"><block var="pen state"/><script><block s="down"></block></script><list></list></block><block s="doReport"><block var="costume"/></block></script></block-definition><block-definition s="font %&apos;font&apos; $nl bold %&apos;it&apos; $nl italic %&apos;bd&apos;" type="reporter" category="pen"><comment x="0" y="0" w="173.33333333333334" collapsed="false">Creates a list of stats for the new write block to use.&#xD;&#xD;Created by Tethrarxitet!&#xD;tamale</comment><header></header><code></code><translations>pt:nome da fonte _ _ texto em negrito? _ _ oblíquo? _&#xD;es:nombre de fuente _ _ ¿negrita? _ _ ¿oblicuo? _&#xD;fr:nom de la police _ _ police en gras ? _ _ oblique ? _&#xD;ru:шриф _ _ жирный? _ _ курсив? _&#xD;</translations><inputs><input type="%s">monospace</input><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="font"/><block var="it"/><block var="bd"/></list></block></block></script></block-definition><block-definition s="font %&apos;font&apos; $nl weight %&apos;it&apos; $nl italic %&apos;bd&apos;" type="reporter" category="pen"><comment x="0" y="0" w="173.33333333333334" collapsed="false">Creates a list of stats for the new write block to use.&#xD;&#xD;Created by Tethrarxitet!&#xD;tamale</comment><header></header><code></code><translations>es:nombre de la fuente _ _ espesor _ _ ¿oblicuo? _&#xD;pt:nome da fonte _ _ grossura _ _ oblíquo? _&#xD;fr:nom de la police _ _ épaisseur _ _ oblique ? _&#xD;ru:шриф _ _ жирность _ _ курсив? _&#xD;</translations><inputs><input type="%s">monospace</input><input type="%n">500</input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="font"/><block var="it"/><block var="bd"/></list></block></block></script></block-definition><block-definition s="run api: %&apos;receiver&apos; . %&apos;method&apos; ( %&apos;inputs&apos; )" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_objectsMenu</options></input><input type="%s" readonly="true" irreplaceable="true" initial="1"><options>§_dynamicMenu</options></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>block</l></list></block><block s="doSetVar"><l>block</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><block var="method"/></list></block></autolambda><list></list></block><custom-block s="%s methods of %s"><l>command</l><block var="receiver"/></custom-block></block></block><block s="doIf"><block s="reportIsA"><block var="block"/><l><option>script</option></l></block><script><block s="doTellTo"><block var="receiver"/><block var="block"/><block var="inputs"/></block></script><list></list></block></script><scripts><script x="10" y="240.24999999999994"><block s="receiveSlotEvent"><l>method</l><l><option>menu</option></l></block><block s="doReport"><block s="reportBlockAttribute"><l><option>label</option></l><custom-block s="%s methods of %s"><l>command</l><block var="receiver"/></custom-block></block></block></script><script x="10" y="322.24999999999994"><block s="receiveSlotEvent"><l>receiver</l><l><option>edited</option></l></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportBlockAttribute"><l><option>label</option></l><custom-block s="%s methods of %s"><l>command</l><block var="receiver"/></custom-block></block><block var="method"/></block></block><script><block s="doSetSlot"><l>method</l><l></l></block></script><list></list></block></script><script x="10" y="471.6666666666667"><block s="receiveSlotEvent"><l>method</l><l><option>edited</option></l></block><block s="doDeclareVariables"><list><l>block</l></list></block><block s="doSetVar"><l>block</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><block var="method"/></list></block></autolambda><list></list></block><custom-block s="%s methods of %s"><l>command</l><block var="receiver"/></custom-block></block></block><block s="doIf"><block s="reportIsA"><block var="block"/><l><option>script</option></l></block><script><block s="doSetSlot"><l>inputs</l><block s="reportReshape"><block var="inputs"/><list><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="block"/><l><option>blocks</option></l></block></block><l>1</l></block></list></block></block></script><list></list></block></script></scripts></block-definition><block-definition s="call api: %&apos;receiver&apos; . %&apos;method&apos; ( %&apos;inputs&apos; )" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_objectsMenu</options></input><input type="%s" readonly="true" irreplaceable="true" initial="1"><options>§_dynamicMenu</options></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>block</l></list></block><block s="doSetVar"><l>block</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><block var="method"/></list></block></autolambda><list></list></block><custom-block s="%s methods of %s"><l>reporter</l><block var="receiver"/></custom-block></block></block><block s="doIf"><block s="reportIsA"><block var="block"/><l><option>script</option></l></block><script><block s="doTellTo"><block var="receiver"/><block var="block"/><block var="inputs"/></block></script><list></list></block></script><scripts><script x="10" y="234.24999999999994"><block s="receiveSlotEvent"><l>method</l><l><option>menu</option></l></block><block s="doReport"><block s="reportBlockAttribute"><l><option>label</option></l><custom-block s="%s methods of %s"><l>reporter</l><block var="receiver"/></custom-block></block></block></script><script x="10" y="316.24999999999994"><block s="receiveSlotEvent"><l>receiver</l><l><option>edited</option></l></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block s="reportBlockAttribute"><l><option>label</option></l><custom-block s="%s methods of %s"><l>reporter</l><block var="receiver"/></custom-block></block><block var="method"/></block></block><script><block s="doSetSlot"><l>method</l><l></l></block></script><list></list></block></script><script x="10" y="465.6666666666667"><block s="receiveSlotEvent"><l>method</l><l><option>edited</option></l></block><block s="doDeclareVariables"><list><l>block</l></list></block><block s="doSetVar"><l>block</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>label</option></l><block s="reifyReporter"><script></script><list></list></block></block><block var="method"/></list></block></autolambda><list></list></block><custom-block s="%s methods of %s"><l>reporter</l><block var="receiver"/></custom-block></block></block><block s="doIf"><block s="reportIsA"><block var="block"/><l><option>script</option></l></block><script><block s="doSetSlot"><l>inputs</l><block s="reportReshape"><block var="inputs"/><list><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="block"/><l><option>blocks</option></l></block></block><l>1</l></block></list></block></block></script><list></list></block></script></scripts></block-definition><block-definition s="%&apos;type&apos; methods of %&apos;sprite&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">command<options>command&#xD;reporter</options></input><input type="%s" readonly="true" initial="1">$_myself<options>§_objectsMenuWithSelf</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block s="reportObject"><block var="sprite"/></block><l><option>agent</option></l></block><block s="reportAskFor"><block var="sprite"/><block s="reifyReporter"><autolambda><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportBlockAttribute"><l><option>global?</option></l><block s="reifyReporter"><script></script><list></list></block></block></block><block s="reportVariadicEquals"><list><block s="reportBlockAttribute"><l><option>type</option></l><block s="reifyReporter"><script></script><list></list></block></block><block s="reportListIndex"><block var="type"/><block s="reportNewList"><list><l>command</l><l>reporter</l></list></block></block></list></block><block s="reportVariadicNotEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportBlockAttribute"><l><option>comment</option></l><block s="reifyReporter"><script></script><list></list></block></block><l><option>word</option></l></block></block><l>private</l></list></block></list></block></autolambda><list></list></block><block s="reportGet"><l><option>blocks</option></l></block></block></autolambda><list></list></block><list></list></block><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="run script %&apos;script&apos;" type="command" category="AlonzoAPI"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doRun"><block var="script"/><list></list></block></script></block-definition><block-definition s="call script %&apos;script&apos;" type="reporter" category="AlonzoAPI"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="script"/><list></list></block></block></script></block-definition><block-definition s="click common regular blobby" type="reporter" category="BlobAPI"><header></header><code></code><translations></translations><inputs></inputs><script><block s="playSound"><l>Common Regular Blobby</l></block><block s="doReport"><l>common regular blobby</l></block></script></block-definition><block-definition s="common regular blobby" type="command" category="BlobAPI"><header></header><code></code><translations></translations><inputs></inputs><script><block s="playSound"><l>Common Regular Blobby</l></block></script></block-definition><block-definition s="change by x: %&apos;x&apos; y: %&apos;y&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input><input type="%n" initial="1">10</input></inputs><script><block s="changeXPosition"><block var="x"/></block><block s="changeYPosition"><block var="y"/></block></script></block-definition><block-definition s="mouse up?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Checks if the mouse is up.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNot"><block s="reportMouseDown"></block></block></block></script></block-definition><block-definition s="alert %&apos;text2&apos;" type="command" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello World!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>window.alert(msg);</l></block><list><block var="text2"/></list></block></script></block-definition><block-definition s="move back %&apos;steps&apos; steps" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input></inputs><script><block s="gotoXY"><block s="reportDifference"><block s="xPosition"></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block><block var="steps"/></list></block></block><block s="reportDifference"><block s="yPosition"></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block><block var="steps"/></list></block></block></block></script></block-definition><block-definition s="move up %&apos;steps&apos; steps" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input></inputs><script><block s="turnLeft"><l>90</l></block><block s="forward"><l>10</l></block><block s="turn"><l>90</l></block></script></block-definition><block-definition s="move down %&apos;steps&apos; steps" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input></inputs><script><block s="turn"><l>90</l></block><block s="forward"><l>10</l></block><block s="turnLeft"><l>90</l></block></script></block-definition><block-definition s="turn around" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="turn"><l>180</l></block></script></block-definition><block-definition s="touching x: %&apos;x&apos; y: %&apos;y&apos; ?" type="predicate" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="xPosition"></block><block var="x"/></list></block><block s="reportVariadicEquals"><list><block s="yPosition"></block><block var="y"/></list></block></list></block></block></script></block-definition><block-definition s="stop speaking" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><l></l></block></script></block-definition><block-definition s="counter" type="reporter" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block var="counter"/></block></script></block-definition><block-definition s="increment counter" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doChangeVar"><l>counter</l><l>1</l></block></script></block-definition><block-definition s="decrement counter" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doChangeVar"><l>counter</l><l>-1</l></block></script></block-definition><block-definition s="clear counter" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>counter</l><l>0</l></block></script></block-definition><block-definition s="set counter to %&apos;number&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input></inputs><script><block s="doSetVar"><l>counter</l><block var="number"/></block></script></block-definition><block-definition s="%&apos;bool1&apos; xor %&apos;bool2&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%b" initial="1"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="bool1"/><block var="bool2"/></list></block></block></block></script></block-definition><block-definition s="∞" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportQuotient"><l>1</l><l>0</l></block></block></script></block-definition><block-definition s="stamp ghost %&apos;ghost&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">50</input></inputs><script><block s="setEffect"><l><option>ghost</option></l><block var="ghost"/></block><block s="doStamp"></block><block s="setEffect"><l><option>ghost</option></l><l>0</l></block></script></block-definition><block-definition s="if touching x: %&apos;x&apos; y: %&apos;y&apos; , bounce" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input></inputs><script><block s="doIf"><custom-block s="touching x: %n y: %n ?"><block var="x"/><block var="y"/></custom-block><script><custom-block s="turn around"></custom-block></script><list></list></block></script></block-definition><block-definition s="sprite clicked?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l><option>mouse-pointer</option></l></block><block s="reportMouseDown"></block></list></block></block></script></block-definition><block-definition s="play sound %&apos;sound&apos; for %&apos;beats&apos; beats" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_soundsMenu</options></input><input type="%n" initial="1">1</input></inputs><script><block s="playSound"><block var="sound"/></block><block s="doRest"><block var="beats"/></block><block s="doStopAllSounds"></block></script></block-definition><block-definition s="loud?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportAudio"><l><option>volume</option></l></block><l>30</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportAudio"><l><option>volume</option></l></block><l>30</l></list></block></list></block></block></script></block-definition><block-definition s="glide %&apos;secs&apos; secs by x: %&apos;x&apos; y: %&apos;y&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%n" initial="1">10</input><input type="%n" initial="1">10</input></inputs><script><block s="doGlide"><block var="secs"/><block s="reportVariadicSum"><list><block s="xPosition"></block><block var="x"/></list></block><block s="reportVariadicSum"><list><block s="yPosition"></block><block var="y"/></list></block></block></script></block-definition><block-definition s="wait while %&apos;boolean&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input></inputs><script><block s="doWaitUntil"><block s="reportNot"><block var="boolean"/></block></block></script></block-definition><block-definition s="change costume by %&apos;number&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="doSwitchToCostume"><block s="reportVariadicSum"><list><block s="getCostumeIdx"></block><block var="number"/></list></block></block></script></block-definition><block-definition s="point away from edge" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFaceTowards"><l><option>center</option></l></block></script></block-definition><block-definition s="stamp at x: %&apos;x&apos; y: %&apos;y&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input></inputs><script><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doStamp"></block></script></block-definition><block-definition s="if %&apos;boolean&apos; , bounce" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input></inputs><script><block s="doIf"><block var="boolean"/><script><custom-block s="turn around"></custom-block></script><list></list></block></script></block-definition><block-definition s="smooth glide x: %&apos;x&apos; y: %&apos;y&apos; speed: %&apos;speed&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input><input type="%n" initial="1">5</input></inputs><script><block s="doUntil"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportRound"><block var="x"/></block><block s="reportRound"><block s="xPosition"></block></block></list></block><block s="reportVariadicEquals"><list><block s="reportRound"><block var="y"/></block><block s="reportRound"><block s="yPosition"></block></block></list></block></list></block><script><block s="changeXPosition"><block s="reportQuotient"><block s="reportDifference"><block s="reportRound"><block var="x"/></block><block s="reportRound"><block s="xPosition"></block></block></block><block var="speed"/></block></block><block s="changeYPosition"><block s="reportQuotient"><block s="reportDifference"><block s="reportRound"><block var="y"/></block><block s="reportRound"><block s="yPosition"></block></block></block><block var="speed"/></block></block></script></block><block s="gotoXY"><block var="x"/><block var="y"/></block></script></block-definition><block-definition s="smooth rotate direction: %&apos;direction&apos; speed: %&apos;speed&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">90</input><input type="%n" initial="1">5</input></inputs><script><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportRound"><block var="direction"/></block><block s="reportRound"><block s="direction"></block></block></list></block><script><block s="turn"><block s="reportQuotient"><block s="reportDifference"><block s="reportRound"><block var="direction"/></block><block s="reportRound"><block s="direction"></block></block></block><block var="speed"/></block></block></script></block></script></block-definition><block-definition s="distance to x: %&apos;(&apos; y: %&apos;)&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">was around e-!3 off in testing</comment><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="xPosition"></block><block var="("/></block><block s="reportDifference"><block s="xPosition"></block><block var="("/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="yPosition"></block><block var=")"/></block><block s="reportDifference"><block s="yPosition"></block><block var=")"/></block></list></block></list></block></block></block></script></block-definition><block-definition s="go front %&apos;n&apos; layers" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="goBack"><block s="reportDifference"><l>0</l><block var="n"/></block></block></script></block-definition><block-definition s="size: %&apos;size&apos; speed: %&apos;speed&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">100</input><input type="%n" initial="1">5</input></inputs><script><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportRound"><block s="getScale"></block></block><block s="reportRound"><block var="size"/></block></list></block><script><block s="changeScale"><block s="reportQuotient"><block s="reportDifference"><block s="reportRound"><block var="size"/></block><block s="reportRound"><block s="getScale"></block></block></block><block var="speed"/></block></block></script></block><block s="setScale"><block var="size"/></block></script></block-definition><block-definition s="// %&apos;comment&apos;" type="command" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">comment</input></inputs></block-definition><block-definition s="effects" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="getEffect"><l><option>color</option></l></block><block s="getEffect"><l><option>saturation</option></l></block><block s="getEffect"><l><option>brightness</option></l></block><block s="getEffect"><l><option>ghost</option></l></block><block s="getEffect"><l><option>fisheye</option></l></block><block s="getEffect"><l><option>whirl</option></l></block><block s="getEffect"><l><option>pixelate</option></l></block><block s="getEffect"><l><option>mosaic</option></l></block><block s="getEffect"><l><option>negative</option></l></block></list></block></block></script></block-definition><block-definition s="scripts count" type="reporter" category="More Blocks"><comment x="0" y="0" w="90" collapsed="false">How many scripts in project.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>scripts</option></l></block></block></block></script></block-definition><block-definition s="is the number of the %&apos;thing&apos; %&apos;number&apos; ?" type="predicate" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1">year<options>year&#xD;month&#xD;date</options></input><input type="%n" initial="1">2025</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="thing"/><l>month</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>month</option></l></block><block var="number"/></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="thing"/><l>year</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>year</option></l></block><block var="number"/></list></block></block></script><block s="reportVariadicEquals"><list><block var="thing"/><l>date</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>date</option></l></block><block var="number"/></list></block></block></script></list></block></script></block-definition><block-definition s="rgb color" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l>clr_channel(clr, rgba)</l><list><block s="reportApplyExtension"><l>clr_pen</l><list></list></block><l></l></list></block></autolambda><list></list></block><block s="reportNewList"><list><l>r</l><l>g</l><l>b</l></list></block></block></block></script></block-definition><block-definition s="code: %&apos;action&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doReport"><block var="action"/></block></script></block-definition><block-definition s="sounds count" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>sounds</option></l></block></block></block></script></block-definition><block-definition s="info %&apos;body&apos; titled %&apos;title&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Hello!</input><input type="%s" initial="1">!</input></inputs><script><custom-block s="let %upvar be %s"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false;&#xD;dialog.destroy = function() {&#xD;    isDone = true;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.inform(title, body, this.world());&#xD;return () =&gt; (isDone);</l></block><list><block var="body"/><block var="title"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block var="test"/><list></list></block></block></script></block-definition><block-definition s="%&apos;type&apos; %&apos;url&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="232.5" collapsed="false">www.google.com &gt;&gt;&gt; https://www.google.com</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">https://<options>https://&#xD;http://</options></input><input type="%txt">www.google.com</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="type"/><block var="url"/></list></block></block></script></block-definition><block-definition s="error message %&apos;error&apos;" type="command" category="control"><comment x="0" y="0" w="138" collapsed="false">This block gets you a your error message.</comment><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Something Went Wrong</input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="error"/></list></block></script></block-definition><block-definition s="clones" type="reporter" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>clones</option></l></block></block></block></script></block-definition><block-definition s="if not %&apos;boolean&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%cs" initial="1"></input></inputs><script><block s="doIf"><block s="reportNot"><block var="boolean"/></block><script><block s="doRun"><block var="action"/><list></list></block></script><list></list></block></script></block-definition><block-definition s="crash $flash-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><block s="reportNumbers"><l>1</l><l>1000000000</l></block></block></script></block-definition><block-definition s="am?" type="predicate" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>hour</option></l></block><l>12</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="set pen to crayon %&apos;which&apos;" type="command" category="pen"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Sets the pen color &#xD;to one of 100 preselected colors, like a box of 100 crayons.&#xD;The colors have names that are meant to be evocative.&#xD;They are organized in families, more or less corresponding&#xD;to spectral (rainbow) colors; the input slot has a two-level menu&#xD;in which you can hover over a family name to see the colors&#xD;of that family, each including a crayon number and an RGB value. &#xD;See Appendix A of the Snap! Reference Manual for more details.</comment><header></header><code></code><translations>ca:fixa el llapis de color _&#xD;pl:ustaw pisak na kredkę _&#xD;</translations><inputs><input type="%s"><options>grays={&#xD;0 black #000000=0&#xD;1 gray7 #121212=1&#xD;2 gray14 #242424=2&#xD;3 gray21 #363636=3&#xD;4 gray28 #484848=4&#xD;5 gray36 #5c5c5c=5&#xD;6 gray43 #6d6d6d=6&#xD;7 gray50 #7f7f7f=7&#xD;8 gray57 #919191=8&#xD;9 gray64 #a3a3a3=9&#xD;10 gray71 #b5b5b5=10&#xD;11 gray78 #c8c8c8=11&#xD;12 gray85 #dadada=12&#xD;13 gray92 #ececec=13&#xD;14 white #ffffff=14&#xD;}&#xD;pinks={&#xD;15 deep pink #ff1493=15&#xD;16 hot pink #ff69b4=16&#xD;17 bright pink #ff007f=17&#xD;18 raspberry #e30b5d=18&#xD;19 amaranth #e52b50=19&#xD;}&#xD;reds={&#xD;20 red #ff0000=20&#xD;21 burgundy #900020=21&#xD;22 cherry #990000=22&#xD;23 dark candy apple red #a40000=23&#xD;24 sanguine #c00000=24&#xD;25 maroon #800000=25&#xD;26 crimson #c90016=26&#xD;27 Lists #d94d11=27&#xD;28 candy apple red #ff0800=28&#xD;29 coquelicot #ff3800=29&#xD;}&#xD;browns={&#xD;30 saddle brown #8b4513=30&#xD;31 chocolate #7b3f00=31&#xD;32 kobicha #6b4423=32&#xD;33 sepia #704214=33&#xD;34 chestnut #954535=34&#xD;35 dark brown #654321=35&#xD;36 brown #964b00=36&#xD;37 golden brown #996515=37&#xD;38 cinnamon #b87333=38&#xD;39 copper #d2691e=39&#xD;}&#xD;oranges={&#xD;40 orange #ff7f00=40&#xD;41 Pantone orange #ff5800=41&#xD;42 pumpkin #ff7518=42&#xD;43 Variables #f3761d=43&#xD;44 Spanish orange #e86100=44&#xD;45 burnt orange #cc5500=45&#xD;46 sinopia #cb410b=46&#xD;47 ochre #cc7722=47&#xD;48 carrot #ed9121=48&#xD;49 tangerine #f28500=49&#xD;}&#xD;yellows={&#xD;50 yellow #ffff00=50&#xD;51 Control #e6a822=51&#xD;52 dark goldenrod #b8860b=52&#xD;53 goldenrod #daa520=53&#xD;54 saffron #f4c430=54&#xD;55 sandstorm #ecd540=55&#xD;56 mustard #ffdb58=56&#xD;57 gold #ffd700=57&#xD;58 egg yolk #fee33e=58&#xD;59 rubber duck #fbe108=59&#xD;}&#xD;greens={&#xD;60 lime #00ff00=60&#xD;61 apple green #8db600=61&#xD;62 Operators #62c213=62&#xD;63 forest green #228b22=63&#xD;64 green #008000=64&#xD;65 dark green #006400=65&#xD;66 dark pastel green #03c03c=66&#xD;67 emerald #50c878=67&#xD;68 mint #3eb489=68&#xD;69 Pen #00a178=69&#xD;}&#xD;cyans={&#xD;70 aqua (cyan) #00ffff=70&#xD;71 dark cyan #008b8b=71&#xD;72 cerulean #007ba7=72&#xD;73 iceberg #71a6d2=73&#xD;74 Sensing #0494dc=74&#xD;75 teal #008080=75&#xD;76 light sky blue #87cefa=76&#xD;77 deep sky blue #00bfff=77&#xD;78 dodger blue #1e90ff=78&#xD;79 azure #007fff=79&#xD;}&#xD;blues={&#xD;80 blue #0000ff=80&#xD;81 midnight blue #191970=81&#xD;82 dark powder blue #003399=82&#xD;83 cobalt #0047ab=83&#xD;84 denim #1560bd=84&#xD;85 navy blue #000080=85&#xD;86 steel blue #4682b4=86&#xD;87 Motion #4a6cd4=87&#xD;88 cornflower #6495ed=88&#xD;89 slate blue #6a5acd=89&#xD;}&#xD;purples={&#xD;90 violet #8000ff=90&#xD;91 Looks #8f56e3=91&#xD;92 grape #6f2da8=92&#xD;93 indigo #4b0082=93&#xD;94 x11 purple #a020f0=94&#xD;95 magenta (fuchia) #ff00ff=95&#xD;96 dark orchid #9932cc=96&#xD;97 Sound #cf4ad9=97&#xD;98 purple #7f007f=98&#xD;99 dark magenta #8b008b=99&#xD;}</options></input></inputs><script><block s="doDeclareVariables"><list><l>color</l></list></block><custom-block s="✐ initialize variables"></custom-block><block s="doIfElse"><block s="reportIsA"><block var="which"/><l><option>text</option></l></block><script><block s="doSetVar"><l>color</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><l/></block><block var="which"/></list></block></autolambda><list></list></block><block var="✐ crayon colors"/></block></block><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block var="color"/><l></l></list></block><script><block s="doSetVar"><l>✐ last crayon</l><block s="reportListItem"><l>5</l><block var="color"/></block></block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>No such crayon: </l><block var="which"/></list></block></custom-block></script></block></script><script><block s="doSetVar"><l>color</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="which"/><l>100</l></block><l>1</l></list></block><block var="✐ crayon colors"/></block></block><block s="doSetVar"><l>✐ last crayon</l><block s="reportModulus"><block var="which"/><l>100</l></block></block></script></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="color"/></block><block s="reportListItem"><l>2</l><block var="color"/></block><block s="reportListItem"><l>3</l><block var="color"/></block></custom-block></script></block-definition><block-definition s="change crayon by %&apos;amount&apos;" type="command" category="pen"><header></header><code></code><translations>ca:canvia de llapis de color saltant _&#xD;pl:zmień kredkę o _&#xD;</translations><inputs><input type="%n"></input></inputs><script><custom-block s="set pen to crayon %s"><block s="reportVariadicSum"><list><block var="✐ last crayon"/><block var="amount"/></list></block></custom-block></script></block-definition><block-definition s="pen crayon" type="reporter" category="pen"><header></header><code></code><translations>ca:llapis de color&#xD;pl:kredka pisaka&#xD;</translations><inputs></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doReport"><block var="✐ last crayon"/></block></script></block-definition><block-definition s="costumes count" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportGet"><l><option>costumes</option></l></block></block></block></script></block-definition><block-definition s="-∞" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>neg</option></l><custom-block s="∞"></custom-block></block></block></script></block-definition><block-definition s="url" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window. location. href</l></block><list></list></block></block></script></block-definition><block-definition s="screenshot website" type="command" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>const captureAndSave = async () =&gt; {&#xD;  const canvas = document.createElement("canvas");&#xD;  const context = canvas.getContext("2d");&#xD;  const video = document.createElement("video");&#xD;&#xD;  try {&#xD;    const captureStream = await navigator.mediaDevices.getDisplayMedia();&#xD;    video.srcObject = captureStream;&#xD;    const link = await new Promise(resolve =&gt; {&#xD;      video.onloadedmetadata = () =&gt; {&#xD;        // Wait for 1 second before capturing the screenshot&#xD;        setTimeout(() =&gt; {&#xD;          canvas.width = video.videoWidth;&#xD;          canvas.height = video.videoHeight;&#xD;          context.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);&#xD;          const frame = canvas.toDataURL("image/png");&#xD;&#xD;          // Create a link element to download the image&#xD;          const downloadLink = document.createElement(&apos;a&apos;);&#xD;          downloadLink.href = frame;&#xD;          downloadLink.download = &apos;screenshot.png&apos;;&#xD;          document.body.appendChild(downloadLink);&#xD;          downloadLink.click();&#xD;          document.body.removeChild(downloadLink);&#xD;&#xD;          // Resolve the promise with the link&apos;s href&#xD;          resolve(frame);&#xD;&#xD;          captureStream.getTracks().forEach(track =&gt; track.stop());&#xD;        }, 1000);&#xD;      };&#xD;      video.play();&#xD;    });&#xD;&#xD;    // Return the link instead of logging it&#xD;    return link;&#xD;  } catch (err) {&#xD;    console.error("Error: " + err);&#xD;  }&#xD;};&#xD;&#xD;(async () =&gt; {&#xD;  const link = await captureAndSave();&#xD;  console.log("Screenshot saved:", link);&#xD;})();&#xD;</l></block><list></list></block></script></block-definition><block-definition s="current holiday" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>date</option></l></block><l>8</l></list></block><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>month</option></l></block><l>3</l></list></block></list></block><script><block s="doReport"><l>International Women</l></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>date</option></l></block><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>month</option></l></block><l>1</l></list></block></list></block><script><block s="doReport"><l>New Year</l></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>date</option></l></block><l>14</l></list></block><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>month</option></l></block><l>2</l></list></block></list></block><script><block s="doReport"><l>Valentine</l></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>date</option></l></block><l>17</l></list></block><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>month</option></l></block><l>3</l></list></block></list></block><script><block s="doReport"><l>Saint Patrick</l></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>date</option></l></block><l>31</l></list></block><block s="reportVariadicEquals"><list><block s="reportDate"><l><option>month</option></l></block><l>10</l></list></block></list></block><script><block s="doReport"><l>Halloween</l></block></script><script><block s="doReport"><l>None</l></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="move %&apos;s&apos; steps in direction %&apos;d&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">10</input><input type="%n" initial="1">90<options>§_dir=&#xD;(90) right=90&#xD;(-90) left=-90&#xD;(0) up=0&#xD;(180) down=180&#xD;random=$_random</options></input></inputs><script><block s="doDeclareVariables"><list><l>init angle</l></list></block><block s="doSetVar"><l>init angle</l><block s="direction"></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="d"/><l>random</l></list></block><script><block s="doSetVar"><l>d</l><block s="reportRandom"><l>0.1</l><l>360.1</l></block></block></script><list></list></block><block s="setHeading"><block var="d"/></block><block s="forward"><block var="s"/></block><block s="setHeading"><block var="init angle"/></block></script></block-definition><block-definition s="%&apos;v&apos; shown?" type="predicate" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_showing(name)?</l><list><block var="v"/></list></block></block></script></block-definition><block-definition s="never" type="hat" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="open %&apos;website&apos;" type="command" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">scratch.mit.edu</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>Open</l></list><block s="reportJoinWords"><list><l>window.open ("</l><block s="reportJoinWords"><list><l>https://</l><block var="website"/></list></block><l>");</l></list></block></block><list></list></block></script></block-definition><block-definition s="%&apos;input&apos; fullscreen" type="command" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">enter<options>enter&#xD;exit</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="input"/><l>enter</l></list></block><script><block s="doRun"><block s="reportJSFunction"><list></list><l>/* Get the documentElement (&lt;html&gt;) to display the page in fullscreen */&#xD;var elem = document.documentElement;&#xD;&#xD;/* View in fullscreen */&#xD;function openFullscreen() {&#xD;  if (elem.requestFullscreen) {&#xD;    elem.requestFullscreen();&#xD;  } else if (elem.mozRequestFullScreen) { /* Firefox */&#xD;    elem.mozRequestFullScreen();&#xD;  } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */&#xD;    elem.webkitRequestFullscreen();&#xD;  } else if (elem.msRequestFullscreen) { /* IE/Edge */&#xD;    elem.msRequestFullscreen();&#xD;  }&#xD;}&#xD;&#xD;/* Close fullscreen */&#xD;function closeFullscreen() {&#xD;  if (document.exitFullscreen) {&#xD;    document.exitFullscreen();&#xD;  } else if (document.mozCancelFullScreen) { /* Firefox */&#xD;    document.mozCancelFullScreen();&#xD;  } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */&#xD;    document.webkitExitFullscreen();&#xD;  } else if (document.msExitFullscreen) { /* IE/Edge */&#xD;    document.msExitFullscreen();&#xD;  }&#xD;}&#xD;openFullscreen()</l></block><list></list></block></script><script><block s="doRun"><block s="reportJSFunction"><list></list><l>/* Get the documentElement (&lt;html&gt;) to display the page in fullscreen */&#xD;var elem = document.documentElement;&#xD;&#xD;/* View in fullscreen */&#xD;function openFullscreen() {&#xD;  if (elem.requestFullscreen) {&#xD;    elem.requestFullscreen();&#xD;  } else if (elem.mozRequestFullScreen) { /* Firefox */&#xD;    elem.mozRequestFullScreen();&#xD;  } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */&#xD;    elem.webkitRequestFullscreen();&#xD;  } else if (elem.msRequestFullscreen) { /* IE/Edge */&#xD;    elem.msRequestFullscreen();&#xD;  }&#xD;}&#xD;&#xD;/* Close fullscreen */&#xD;function closeFullscreen() {&#xD;  if (document.exitFullscreen) {&#xD;    document.exitFullscreen();&#xD;  } else if (document.mozCancelFullScreen) { /* Firefox */&#xD;    document.mozCancelFullScreen();&#xD;  } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */&#xD;    document.webkitExitFullscreen();&#xD;  } else if (document.msExitFullscreen) { /* IE/Edge */&#xD;    document.msExitFullscreen();&#xD;  }&#xD;}&#xD;closeFullscreen()</l></block><list></list></block></script></block></script></block-definition><block-definition s="window %&apos;text&apos;" type="command" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1">Hello!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>Window</l></list><block s="reportJoinWords"><list><l>var myWindow = window.open("", "MsgWindow", "width = 200, height = 100"); myWindow.document.write("</l><block var="text"/><l>")</l></list></block></block><list></list></block></script></block-definition><block-definition s="pm?" type="predicate" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNot"><custom-block s="am?"></custom-block></block></block></script></block-definition><block-definition s="%&apos;input&apos; // %&apos;comment&apos;" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%txt" initial="1">comment</input></inputs><script><block s="doReport"><block var="input"/></block></script></block-definition><block-definition s="delete variable %&apos;v&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="v"/></list></block></script></block-definition><block-definition s="costume name" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportGet"><l><option>self</option></l></block></block></block></script></block-definition><block-definition s="write on stage text %&apos;text&apos; size: %&apos;size&apos; font: %&apos;font&apos; align: %&apos;align&apos; x: %&apos;x&apos; y: %&apos;y&apos; color: %&apos;color&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">Syntax:&#xD;_italics_&#xD;*bold*&#xD;Fraction:&#xD;&#126;(1/2)</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">Hello!</input><input type="%n">12</input><input type="%txt">Arial<options>serif&#xD;sans-serif&#xD;monospace&#xD;Arial&#xD;Arial Black&#xD;Verdana&#xD;Tahoma&#xD;Trebuchet MS&#xD;Impact&#xD;Times New Roman&#xD;Didot&#xD;Georgia&#xD;American Typewriter&#xD;Andalé Mono&#xD;Courier&#xD;Lucida Console&#xD;Monaco&#xD;Bradley Hand&#xD;Brush Script MT&#xD;Luminari&#xD;Comic Sans MS</options></input><input type="%txt" readonly="true">left<options>left&#xD;center&#xD;right</options></input><input type="%n">0</input><input type="%n">0</input><input type="%txt">rgb(0,0,0)</input></inputs><script><custom-block s="do %cs and restore pen"><script><block s="doDeclareVariables"><list><l>text dimensions</l></list></block><block s="doSetVar"><l>text dimensions</l><custom-block s="dimensions of text %mlt size: %n font: %txt align: %txt x: %n y: %n"><block var="text"/><block var="size"/><block var="font"/><block var="align"/><block var="x"/><block var="y"/></custom-block></block><block s="up"></block><block s="gotoXY"><custom-block s="value at key %s of %l"><l>x</l><block var="text dimensions"/></custom-block><custom-block s="value at key %s of %l"><l>y</l><block var="text dimensions"/></custom-block></block><custom-block s="write on stage %mlt size: %n font: %txt color: %txt"><block var="text"/><block var="size"/><block var="font"/><block var="color"/></custom-block></script></custom-block></script></block-definition><block-definition s="dimensions of text %&apos;text&apos; size: %&apos;size&apos; font: %&apos;font&apos; align: %&apos;align&apos; x: %&apos;x&apos; y: %&apos;y&apos;" type="reporter" category="pen" helper="true"><comment x="0" y="0" w="90" collapsed="false">pre-render text transparent to determine height and width and, if necessary, the adjusted coordinates (for right and center alignment)</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">Hello!</input><input type="%n">12</input><input type="%txt">Arial<options>serif&#xD;sans-serif&#xD;monospace&#xD;Arial&#xD;Arial Black&#xD;Verdana&#xD;Tahoma&#xD;Trebuchet MS&#xD;Impact&#xD;Times New Roman&#xD;Didot&#xD;Georgia&#xD;American Typewriter&#xD;Andalé Mono&#xD;Courier&#xD;Lucida Console&#xD;Monaco&#xD;Bradley Hand&#xD;Brush Script MT&#xD;Luminari&#xD;Comic Sans MS</options></input><input type="%txt" readonly="true">left<options>left&#xD;center&#xD;right</options></input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>height</l><l>width</l></list></block><custom-block s="do %cs and restore pen"><script><block s="up"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><custom-block s="write on stage %mlt size: %n font: %txt color: %txt"><block var="text"/><block var="size"/><block var="font"/><l>transparent</l></custom-block><block s="doSetVar"><l>height</l><block s="reportMonadic"><l><option>abs</option></l><block s="yPosition"></block></block></block><block s="doSetVar"><l>width</l><block s="xPosition"></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="align"/><l>right</l></list></block><script><block s="doChangeVar"><l>x</l><block s="reportVariadicProduct"><list><l>-1</l><block var="width"/></list></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="align"/><l>center</l></list></block><script><block s="doChangeVar"><l>x</l><block s="reportVariadicProduct"><list><l>-0.5</l><block var="width"/></list></block></block></script><list></list></block></script></block></script></custom-block><block s="doReport"><block s="reportNewList"><list><custom-block s="key: %s value: %s"><l>width</l><block var="width"/></custom-block><custom-block s="key: %s value: %s"><l>height</l><block var="height"/></custom-block><custom-block s="key: %s value: %s"><l>x</l><block var="x"/></custom-block><custom-block s="key: %s value: %s"><l>y</l><block var="y"/></custom-block></list></block></block></script></block-definition><block-definition s="write on stage %&apos;text&apos; size: %&apos;size&apos; font: %&apos;font&apos; color: %&apos;color&apos;" type="command" category="pen" helper="true"><header></header><code></code><translations></translations><inputs><input type="%mlt">Hello!</input><input type="%n">12</input><input type="%txt">Arial<options>serif&#xD;sans-serif&#xD;monospace&#xD;Arial&#xD;Arial Black&#xD;Verdana&#xD;Tahoma&#xD;Trebuchet MS&#xD;Impact&#xD;Times New Roman&#xD;Didot&#xD;Georgia&#xD;American Typewriter&#xD;Andalé Mono&#xD;Courier&#xD;Lucida Console&#xD;Monaco&#xD;Bradley Hand&#xD;Brush Script MT&#xD;Luminari&#xD;Comic Sans MS</options></input><input type="%txt">rgb(0,0,0)</input></inputs><script><custom-block s="load fancy text extension"></custom-block><block s="doApplyExtension"><l>ft_write_on_stage(text, size, font, color, sprite)</l><list><block var="text"/><block var="size"/><block var="font"/><block var="color"/><block s="reportGet"><l><option>self</option></l></block></list></block></script></block-definition><block-definition s="load fancy text extension" type="command" category="pen" helper="true"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/microworlds/fancy-text.js</l></list></block></script></block-definition><block-definition s="do %&apos;command&apos; and restore pen" type="command" category="pen" helper="true"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>old x</l><l>old y</l><l>dir</l><l>pen down?</l><l>old color</l></list></block><block s="doSetVar"><l>old x</l><block s="xPosition"></block></block><block s="doSetVar"><l>old y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>pen down?</l><block s="getPenDown"></block></block><block s="doSetVar"><l>old color</l><block s="getPenAttribute"><l><option>r-g-b-a</option></l></block></block><block s="doRun"><block var="command"/><list></list></block><block s="up"></block><block s="gotoXY"><block var="old x"/><block var="old y"/></block><block s="setHeading"><block var="dir"/></block><block s="doIf"><block var="pen down?"/><script><block s="down"></block></script><list></list></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block var="old color"/></block></script></block-definition><block-definition s="current time" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block s="reportDate"><l><option>hour</option></l></block><l>:</l><block s="reportDate"><l><option>minute</option></l></block><l>:</l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportDate"><l><option>second</option></l></block><l>10</l></list></block><block s="reportJoinWords"><list><l>0</l><block s="reportDate"><l><option>second</option></l></block></list></block><block s="reportDate"><l><option>second</option></l></block></block><l> </l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportDate"><l><option>date</option></l></block><l>10</l></list></block><block s="reportJoinWords"><list><l>0</l><block s="reportDate"><l><option>date</option></l></block></list></block><block s="reportDate"><l><option>date</option></l></block></block><l>.</l><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block s="reportDate"><l><option>month</option></l></block><l>10</l></list></block><block s="reportJoinWords"><list><l>0</l><block s="reportDate"><l><option>month</option></l></block></list></block><block s="reportDate"><l><option>month</option></l></block></block><l>.</l><block s="reportDate"><l><option>year</option></l></block></list></block></block></script></block-definition><block-definition s="glide %&apos;s&apos; secs to x: %&apos;x&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%n" initial="1">0</input></inputs><script><block s="doGlide"><block var="s"/><block var="x"/><block s="yPosition"></block></block></script></block-definition><block-definition s="glide %&apos;s&apos; secs to y: %&apos;y&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input><input type="%n" initial="1">0</input></inputs><script><block s="doGlide"><block var="s"/><block s="xPosition"></block><block var="y"/></block></script></block-definition><block-definition s="wait %&apos;m&apos; minutes" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="doWait"><block s="reportVariadicProduct"><list><l>60</l><block var="m"/></list></block></block></script></block-definition><block-definition s="half" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportQuotient"><l>1</l><l>2</l></block></block></script></block-definition><block-definition s="quarter" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportQuotient"><custom-block s="half"></custom-block><l>2</l></block></block></script></block-definition><block-definition s="million" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>1,000,000</l></block></script></block-definition><block-definition s="billion" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>1,000,000,000</l></block></script></block-definition><block-definition s="thousand" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>1,000</l></block></script></block-definition><block-definition s="trillion" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>1,000,000,000,000</l></block></script></block-definition><block-definition s="hundred" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>100</l></block></script></block-definition><block-definition s="ten" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>10</l></block></script></block-definition><block-definition s="solar system planets" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune</l></block></script></block-definition><block-definition s="latest version of %&apos;os&apos;" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true" initial="1">Windows<options>Windows&#xD;macOS&#xD;iOS</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="os"/><l>Windows</l></list></block><script><block s="doReport"><l>Windows 11&#xD;24H2</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="os"/><l>macOS</l></list></block><script><block s="doReport"><l>macOS 15.4.1 </l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="os"/><l>iOS</l></list></block><script><block s="doReport"><l>iOS 18.4.1</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="latest version of %&apos;game&apos;" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">Plants vs. Zombies 2<options>Plants vs. Zombies 2&#xD;Geometry Dash</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="game"/><l>Plants vs. Zombies 2</l></list></block><script><block s="doReport"><l>&#xD;12.2.1</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="game"/><l>Geometry Dash</l></list></block><script><block s="doReport"><l>2.21</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="germany in %&apos;y&apos;" type="reporter" category="Country"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">1871<options>800&#xD;1714&#xD;1815&#xD;1871&#xD;1914&#xD;1918&#xD;1933&#xD;1942&#xD;1945&#xD;1949&#xD;1990</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>800</l></list></block><script><block s="doReport"><custom-block s="%s reich"><l>first</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1714</l></list></block><script><block s="doReport"><l>First Reich</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1815</l></list></block><script><block s="doReport"><l>German Confederation</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1871</l></list></block><script><block s="doReport"><custom-block s="%s reich"><l>second</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1914</l></list></block><script><block s="doReport"><l>Second Reich</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1933</l></list></block><script><block s="doReport"><custom-block s="%s reich"><l>third</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1942</l></list></block><script><block s="doReport"><l>Third Reich</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1945</l></list></block><script><block s="doReport"><l>Allied-occupied Germany</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1949</l></list></block><script><block s="doReport"><l>West and East Germany</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="y"/><l>1990</l></list></block><script><block s="doReport"><l>Germany</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;any&apos; reich" type="reporter" category="Country"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">third<options>first&#xD;second&#xD;third</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="any"/><l>first</l></list></block><script><block s="doReport"><l>Holy Roman Empire</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="any"/><l>second</l></list></block><script><block s="doReport"><l>German Empire</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="any"/><l>third</l></list></block><script><block s="doReport"><l>Nazi Germany</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="most %&apos;m&apos; country" type="reporter" category="Country"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">biggest<options>biggest&#xD;smallest&#xD;oldest&#xD;newest&#xD;populous</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>biggest</l></list></block><script><block s="doReport"><l>Russian Federation</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>smallest</l></list></block><script><block s="doReport"><l>Vatican City</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>oldest</l></list></block><script><block s="doReport"><l>Iran</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>newest</l></list></block><script><block s="doReport"><l>South Sudan</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>populous</l></list></block><script><block s="doReport"><l>India</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="most %&apos;m&apos; planet" type="reporter" category="Space"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">biggest<options>biggest&#xD;smallest&#xD;hottest&#xD;moon</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>biggest</l></list></block><script><block s="doReport"><l>Jupiter</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>smallest</l></list></block><script><block s="doReport"><l>Mercury</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>hottest</l></list></block><script><block s="doReport"><l>Venus</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>moon</l></list></block><script><block s="doReport"><l>Saturn</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;so&apos; symbol" type="reporter" category="Space"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">venus<options>venus&#xD;mars&#xD;sun&#xD;jupiter&#xD;moon&#xD;mercury&#xD;earth</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="so"/><l>venus</l></list></block><script><block s="doReport"><l>♀</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="so"/><l>mars</l></list></block><script><block s="doReport"><l>♂</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="so"/><l>sun</l></list></block><script><block s="doReport"><l>☉</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="so"/><l>jupiter</l></list></block><script><block s="doReport"><l>♃</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="so"/><l>moon</l></list></block><script><block s="doReport"><l>☾</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="so"/><l>mercury</l></list></block><script><block s="doReport"><l>☿</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="so"/><l>earth</l></list></block><script><block s="doReport"><l>🜨</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="what means %&apos;something&apos; ?" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">BC<options>BC&#xD;AD&#xD;OS&#xD;USA&#xD;UK&#xD;MS-DOS&#xD;HDI&#xD;Indev&#xD;WIP&#xD;PPP&#xD;OC&#xD;NT&#xD;RT (TV Network)&#xD;HD</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>BC</l></list></block><script><block s="doReport"><l>Before Current Era</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>AD</l></list></block><script><block s="doReport"><l>Current Era</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>OS</l></list></block><script><block s="doReport"><l>Operating System</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>USA</l></list></block><script><block s="doReport"><l>United States of America</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>UK</l></list></block><script><block s="doReport"><l>United Kingdom of Great Britain and Northern Ireland</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>MS-DOS</l></list></block><script><block s="doReport"><l>Microsoft Disk Operating System</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>HDI</l></list></block><script><block s="doReport"><l>Human Development Index</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>Indev</l></list></block><script><block s="doReport"><l>In Development</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>WIP</l></list></block><script><block s="doReport"><l>Work In Progress</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>PPP</l></list></block><script><block s="doReport"><l>Purchasing Power Parity</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>OC</l></list></block><script><block s="doReport"><l>Own Character</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>NT</l></list></block><script><block s="doReport"><l>New Technology</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>RT (TV Network)</l></list></block><script><block s="doReport"><l>Russia Today</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="something"/><l>HD</l></list></block><script><block s="doReport"><l>High-definition</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;p&apos; is a founder of youtube?" type="predicate" category="Website"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Jawed<options>Steve&#xD;Jawed&#xD;Chad</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="p"/><l>Steve</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="p"/><l>Jawed</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="p"/><l>Chad</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="most %&apos;m&apos; video in youtube open %&apos;t/f&apos;" type="reporter" category="Website"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">oldest<options>oldest&#xD;popular&#xD;popular (non-music)</options></input><input type="%b" initial="1">true</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>popular</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="t/f"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><custom-block s="open %txt"><l>www.youtube.com/watch?v=XqZsoesa55w</l></custom-block></script><list></list></block><block s="doReport"><l>Baby Shark Dance</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>oldest</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="t/f"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><custom-block s="open %txt"><l>www.youtube.com/watch?v=jNQXAC9IVRw</l></custom-block></script><list></list></block><block s="doReport"><l>me at the zoo</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="m"/><l>popular (non-music)</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="t/f"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><custom-block s="open %txt"><l>https://www.youtube.com/watch?v=KYniUCGPGLs</l></custom-block></script><list></list></block><block s="doReport"><l>Маша + Каша</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="open youtuber %&apos;URL&apos;" type="command" category="Website"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">MrBeast</input></inputs><script><custom-block s="open %txt"><block s="reportJoinWords"><list><l>www.youtube.com/@</l><block var="URL"/></list></block></custom-block></script></block-definition><block-definition s="open invalid page" type="command" category="Website"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="open %txt"><l>invalid.link</l></custom-block></script></block-definition><block-definition s="muted?" type="predicate" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="getVolume"></block><l>0</l></list></block></block></script></block-definition><block-definition s="beep" type="command" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="playFreq"><l>1000</l></block></script></block-definition><block-definition s="slogan of %&apos;channel&apos;" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">1 канал</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="channel"/><l>1 канал</l></list></block><script><block s="doReport"><l>Всегда на Первом месте</l></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="open wiki page %&apos;URL&apos;" type="command" category="Website"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">Main_Page</input></inputs><script><custom-block s="open %txt"><block s="reportJoinWords"><list><l>en.wikipedia.org/wiki/</l><block var="URL"/></list></block></custom-block></script></block-definition><block-definition s="open invalid wiki page" type="command" category="Website"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="open %txt"><l>en.wikipedia.org/wiki/Invalid_Page</l></custom-block></script></block-definition><block-definition s="last message" type="reporter" category="control" primitive="getLastMessage"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>getLastMessage</l></block></script></block-definition><block-definition s="run random %&apos;s&apos;" type="command" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%mult%cs" initial="2" min="1"></input></inputs><script><block s="doRun"><block s="reportListItem"><l><option>random</option></l><block var="s"/></block><list></list></block></script></block-definition><block-definition s="if %&apos;b&apos; then %&apos;o&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block var="b"/><block var="o"/><l></l></block></block></script></block-definition><block-definition s="repeat for %&apos;time&apos; secs %&apos;loop&apos;" type="command" category="control"><comment x="0" y="0" w="199.16666666666669" collapsed="false">&quot;Efficiency gets better.&quot; - Protegent</comment><variables><list struct="atomic" id="114261">end</list></variables><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>end</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doWait"><block var="time"/></block><block s="doSetVar"><l>end</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block><block s="doUntil"><block var="end"/><script><block s="doRun"><block var="loop"/><list></list></block></script></block></script></block-definition><block-definition s="if %&apos;b&apos; forever %&apos;s&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input><input type="%ca" initial="1"></input></inputs><script><block s="doIf"><block var="b"/><script><block s="doForever"><script><block s="doRun"><block var="s"/><list></list></block></script></block></script><list></list></block></script></block-definition><block-definition s="%&apos;dropdown2&apos; text %&apos;text2&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">say<options>say&#xD;think</options></input><input type="%txt" initial="1">Hello!</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="dropdown2"/><l>say</l></list></block><script><block s="bubble"><block var="text2"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dropdown2"/><l>think</l></list></block><script><block s="doThink"><block var="text2"/></block></script><list></list></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;s&apos; text %&apos;t&apos; for %&apos;2&apos; secs" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1">say<options>say&#xD;think</options></input><input type="%txt" initial="1">Hello!</input><input type="%n" initial="1">2</input></inputs><script><custom-block s="%s text %txt"><block var="s"/><block var="t"/></custom-block><block s="doWait"><block var="2"/></block><custom-block s="stop speaking"></custom-block></script></block-definition><block-definition s="letters %&apos;min&apos; to %&apos;max&apos; of %&apos;text&apos;" type="reporter" category="More Blocks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">2</input><input type="%n" initial="1">4</input><input type="%txt" initial="1">apple</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doFor"><l>i</l><block var="min"/><block var="max"/><script><block s="doAddToList"><block s="reportLetter"><block var="i"/><block var="text"/></block><block var="a"/></block></script></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block var="a"/></list></block></block></script></block-definition><block-definition s="μ" type="reporter" category="Extra"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Mu</l></block></script></block-definition><block-definition s="й" type="reporter" category="Extra"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Short I</l></block></script></block-definition><block-definition s="english alphabet" type="reporter" category="Extra"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><l>Aa</l><l>Bb</l><l>Bc</l><l>Dd</l><l>Ee</l><l>Ff</l><l>Gg</l><l>Hh</l><l>Ii</l><l>Jj</l><l>Kk</l><l>Ll</l><l>Mm</l><l>Nn</l><l>Oo</l><l>Pp</l><l>Qq</l><l>Rr</l><l>Ss</l><l>Tt</l><l>Uu</l><l>Vv</l><l>Ww</l><l>Xx</l><l>Yy</l><l>Zz</l></list></block></block></script></block-definition><block-definition s="pointed to %&apos;direction&apos; ?" type="predicate" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">90<options>§_dir=&#xD;(90) right=90&#xD;(-90) left=-90&#xD;(0) up=0&#xD;(180) down=180&#xD;random=$_random</options></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="direction"></block><block var="direction"/></list></block></block></script></block-definition><block-definition s="abs %&apos;i&apos;" type="reporter" category="Obsolete Blocks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>abs</option></l><block var="i"/></block></block></script></block-definition><block-definition s="nintendo mascot" type="reporter" category="Extra"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Mario</l></block></script></block-definition><block-definition s="existing %&apos;n&apos; clones?" type="predicate" category="control"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="clones"></custom-block><block var="n"/></list></block></block></script></block-definition><block-definition s="create clone" type="command" category="Obsolete Blocks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="createClone"><l><option>myself</option></l></block></script></block-definition><block-definition s="change blur by %&apos;what&apos;" type="command" category="Obsolete Blocks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="changeEffect"><l><option>ghost</option></l><block var="what"/></block><block s="changeEffect"><l><option>pixelate</option></l><block var="what"/></block></script></block-definition><block-definition s="is %&apos;c&apos; costume?" type="predicate" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_costumesMenu</options></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="costume name"></custom-block><block var="c"/></list></block></block></script></block-definition><block-definition s="sqrt %&apos;i&apos;" type="reporter" category="Obsolete Blocks"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block var="i"/></block></block></script></block-definition><block-definition s="say %&apos;boolean&apos;" type="command" category="Extra"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1"></input></inputs><script><block s="bubble"><block var="boolean"/></block></script></block-definition><block-definition s="all at once %&apos;action&apos;" type="command" category="Obsolete Blocks"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="color %&apos;co1&apos; is over %&apos;co2&apos; ?" type="predicate" category="Obsolete Blocks" primitive="reportColorIsTouchingColor"><header></header><code></code><translations></translations><inputs><input type="%clr" irreplaceable="true" initial="1"></input><input type="%clr" irreplaceable="true" initial="1"></input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>reportColorIsTouchingColor</l></block></script></block-definition><block-definition s="play sound %&apos;sound&apos; and wait" type="command" category="Obsolete Blocks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" initial="1"><options>§_soundsMenu</options></input></inputs><script><block s="doPlaySoundUntilDone"><block var="sound"/></block></script></block-definition><block-definition s="$brush erase all" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="clear"></block></script></block-definition><block-definition s="turn $turnRight %&apos;d&apos; degrees then $turnRight %&apos;d2&apos; degrees" type="command" category="Extra"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">15</input><input type="%n" initial="1">5</input></inputs><script><block s="turn"><block var="d"/></block><block s="turnLeft"><block var="d2"/></block></script></block-definition><block-definition s="..." type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="look, %&apos;block&apos;" type="command" category="Unused Blocks"><header></header><code></code><translations></translations><inputs><input type="%cmdRing" initial="1"></input></inputs></block-definition><block-definition s="its in a ring!" type="command" category="Unused Blocks"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="angle %&apos;angle&apos;" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRepeat"><block var="angle"/><script><block s="forward"><l>1</l></block><block s="turn"><l>1</l></block></script></block></script></block-definition><block-definition s="square %&apos;times&apos; times" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRepeat"><block var="times"/><script><block s="doRepeat"><l>4</l><script><block s="forward"><l>50</l></block><block s="turn"><l>90</l></block><block s="doWait"><l>0.2</l></block></script></block></script></block></script></block-definition><block-definition s="square" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doRepeat"><l>4</l><script><block s="forward"><l>10</l></block><block s="turn"><l>90</l></block></script></block></script></block></script></block-definition><block-definition s="go up %&apos;up&apos; steps" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="changeYPosition"><l>10</l></block></script></block-definition><block-definition s="go down %&apos;down&apos; steps" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="changeYPosition"><block s="reportDifference"><l>0</l><block var="down"/></block></block></script></block-definition><block-definition s="jump %&apos;height&apos;" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRepeat"><l>10</l><script><block s="changeYPosition"><block var="height"/></block></script></block><block s="doWait"><l>0.1</l></block><block s="doRepeat"><l>10</l><script><block s="changeYPosition"><block s="reportDifference"><l>0</l><block var="height"/></block></block></script></block></script></block-definition><block-definition s="go back %&apos;reverse steps&apos; steps" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="changeXPosition"><block s="reportDifference"><l>0</l><block var="reverse steps"/></block></block></script></block-definition><block-definition s="mouse-capter" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForever"><script><block s="doFaceTowards"><l><option>mouse-pointer</option></l></block><block s="forward"><l>10</l></block></script></block></script></block-definition><block-definition s="mouse-capter %&apos;steps&apos; steps" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doForever"><script><block s="doFaceTowards"><l><option>mouse-pointer</option></l></block><block s="forward"><block var="steps"/></block></script></block></script></block-definition><block-definition s="random color generator %&apos;input 1 here&apos; to %&apos;input 2 here&apos;" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="setEffect"><l><option>color</option></l><block s="reportRandom"><block var="input 1 here"/><block var="input 2 here"/></block></block></script></block-definition><block-definition s="say costume#" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><block s="getCostumeIdx"></block></block></script></block-definition><block-definition s="say costume# for %&apos;secs&apos; secs" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doSayFor"><block s="getCostumeIdx"></block><block var="secs"/></block></script></block-definition><block-definition s="random size" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><block s="reportRandom"><l>1</l><l>300</l></block></block></script></block-definition><block-definition s="say size" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><block s="getScale"></block></block></script></block-definition><block-definition s="say size for %&apos;secs&apos; secs" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doSayFor"><block s="getScale"></block><block var="secs"/></block></script></block-definition><block-definition s="Say shown" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><block s="reportShown"></block></block></script></block-definition><block-definition s="Say shown %&apos;secs&apos; secs" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doSayFor"><block s="reportShown"></block><block var="secs"/></block></script></block-definition><block-definition s="Say timer" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><block s="getTimer"></block></block></script></block-definition><block-definition s="Say timer for %&apos;secs&apos; secs" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doSayFor"><block s="getTimer"></block><block var="secs"/></block></script></block-definition><block-definition s="say mouse x" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><block s="reportMouseX"></block></block></script></block-definition><block-definition s="move random %&apos;input 1 of steps&apos; to %&apos;input 2 of steps&apos; steps" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="forward"><block s="reportRandom"><block var="input 1 of steps"/><block var="input 2 of steps"/></block></block></script></block-definition><block-definition s="say x and y combined" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><block s="reportVariadicSum"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block></script></block-definition><block-definition s="say x and y combined for %&apos;seconds&apos; secs" type="command" category="New Motion"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doSayFor"><block s="reportVariadicSum"><list><block s="xPosition"></block><block s="yPosition"></block></list></block><block var="seconds"/></block></script></block-definition><block-definition s="say the random color" type="command" category="New Looks/Effects"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="bytebeat" type="command" category="New Sounds"><variables><list struct="atomic" id="114703">a,s,t,v</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>t</l><l>0</l></block><block s="doForever"><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doRepeat"><block s="reportPower"><l>2</l><l>12</l></block><script><block s="doSetVar"><l>v</l><custom-block s="bitwise %n and %n"><block var="t"/><custom-block s="bitwise right shift %n by %n bits"><block var="t"/><l>8</l></custom-block></custom-block></block><block s="doSetVar"><l>v</l><custom-block s="bitwise %n and %n"><block var="v"/><l>255</l></custom-block></block><block s="doAddToList"><block var="v"/><block var="a"/></block><block s="doChangeVar"><l>t</l><l>1</l></block></script></block></script></block><block s="doSetVar"><l>s</l><block s="reportNewSoundFromSamples"><block var="a"/><l>8000</l></block></block><block s="playSound"><block var="s"/></block><block s="doWait"><block s="reportQuotient"><block s="reportGetSoundAttribute"><l><option>duration</option></l><block var="s"/></block><l>1.3</l></block></block></script></block></script></block-definition><block-definition s="pen %&apos;which&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">hue<options>size&#xD;&#126;1&#xD;hue&#xD;saturation&#xD;brightness&#xD;transparency&#xD;&#126;2&#xD;red&#xD;green&#xD;blue&#xD;&#126;3&#xD;rgb&#xD;hsv&#xD;&#126;4&#xD;down?</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>switch (which) {&#xD; case "size":&#xD;  return this.penSize();&#xD; case "hue":&#xD;  return this.color.hsv()[0];&#xD; case "saturation":&#xD;  return this.color.hsv()[1];&#xD; case "brightness":&#xD;  return this.color.hsv()[2];&#xD; case "red":&#xD;  return this.color.r;&#xD; case "green":&#xD;  return this.color.g;&#xD; case "blue":&#xD;  return this.color.b;&#xD; case "down?":&#xD;  return this.isDown;&#xD; case "hsv":&#xD;  return new List(this.color.hsv());&#xD; case "rgb":&#xD;  return new List([this.color.r, this.color.g, this.color.b]);&#xD; default:&#xD;  return "";&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="pen up?" type="predicate" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNot"><block s="getPenDown"></block></block></block></script></block-definition><block-definition s="when you broadcast %&apos;broadcast&apos;" type="hat" category="New Control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true" initial="1"><options>§_messagesMenu</options></input></inputs><script><block s="doBroadcast"><block var="broadcast"/><list></list></block><block s="doReport"><block var="broadcast"/></block></script></block-definition><block-definition s="wait %&apos;mins&apos; mins" type="command" category="New Control"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><block s="doWait"><block s="reportVariadicProduct"><list><l>60</l><block var="mins"/></list></block></block></script></block-definition><block-definition s="what %&apos;hours&apos; hours" type="command" category="New Control"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1</input></inputs><script><custom-block s="wait %n mins"><block s="reportVariadicProduct"><list><l>60</l><block var="hours"/></list></block></custom-block></script></block-definition><block-definition s="until %&apos;bool&apos;" type="reporter" category="New Control"><header></header><code></code><translations></translations><inputs><input type="%boolUE" initial="1"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="evaluate"><block var="bool"/><list></list></block></block><script><block s="doReport"><custom-block s="until %boolUE"><block s="evaluate"><block var="bool"/><list></list></block></custom-block></block></script><list></list></block></script></block-definition><block-definition s="always" type="hat" category="New Control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="until %boolUE"><l/></custom-block></block></script></block-definition><block-definition s="answered?" type="predicate" category="New Sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></block></script></block-definition><block-definition s="%&apos;color&apos;" type="reporter" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1"></input></inputs><script><block s="doReport"><block var="color"/></block></script></block-definition><block-definition s="%&apos;color1&apos; &lt; %&apos;color2&apos;" type="predicate" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1"></input><input type="%clr" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicLessThan"><list><block var="color1"/><block var="color2"/></list></block></block></script></block-definition><block-definition s="%&apos;color1&apos; = %&apos;color2&apos;" type="predicate" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1"></input><input type="%clr" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="color1"/><block var="color2"/></list></block></block></script></block-definition><block-definition s="%&apos;color1&apos; &gt; %&apos;color2&apos;" type="predicate" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%clr" initial="1"></input><input type="%clr" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block var="color1"/><block var="color2"/></list></block></block></script></block-definition><block-definition s="%&apos;var1&apos; &lt; %&apos;var2&apos;" type="predicate" category="New Variables/Lists/Dictionaries"><header></header><code></code><translations></translations><inputs><input type="%scriptVars" initial="1"></input><input type="%scriptVars" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicLessThan"><list><block var="var1"/><block var="var2"/></list></block></block></script></block-definition><block-definition s="%&apos;var1&apos; = %&apos;var2&apos;" type="predicate" category="New Variables/Lists/Dictionaries"><header></header><code></code><translations></translations><inputs><input type="%scriptVars" initial="1"></input><input type="%scriptVars" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="var1"/><block var="var2"/></list></block></block></script></block-definition><block-definition s="%&apos;var1&apos; &gt; %&apos;var2&apos;" type="predicate" category="New Variables/Lists/Dictionaries"><header></header><code></code><translations></translations><inputs><input type="%scriptVars" initial="1"></input><input type="%scriptVars" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block var="var1"/><block var="var2"/></list></block></block></script></block-definition><block-definition s="inline block %&apos;code&apos;" type="reporter" category="Inline Blocks"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="code"/><list></list></block></block></script></block-definition><block-definition s="inline block (boolean) %&apos;code&apos;" type="predicate" category="Inline Blocks"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doReport"><custom-block s="inline block %cs"><block var="code"/></custom-block></block></script></block-definition><block-definition s="inline block (Command) %&apos;code&apos;" type="command" category="Inline Blocks"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doRun"><block var="code"/><list></list></block></script></block-definition><block-definition s="... %&apos;untitled&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs></block-definition><block-definition s="... // %&apos;comment&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt" initial="1"></input></inputs></block-definition><block-definition s="... (2)" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="Dig It Dig It Dig It" type="hat" category="Control+"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="inline block (Event Hat) %&apos;code&apos;" type="hat" category="Inline Blocks"><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input></inputs><script><block s="doRun"><block var="code"/><list></list></block></script></block-definition><block-definition s="empty list" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="stop this script if %&apos;boolean&apos;" type="command" category="Control+"><header></header><code></code><translations></translations><inputs><input type="%b" initial="1">true</input></inputs><script><block s="doIf"><block var="boolean"/><script><block s="doStopThis"><l><option>this script</option></l></block></script><list></list></block></script></block-definition><block-definition s="... (3)" type="predicate" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>false</l></block></script></block-definition><block-definition s="project data" type="reporter" category="Sensing+"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block var="project data"/></block></script></block-definition><block-definition s="cast %&apos;cast_data&apos; to boolean" type="predicate" category="Operators+"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="cast_data"/><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list><block s="reportVariadicEquals"><list><block var="cast_data"/><l>false</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><block s="reportVariadicEquals"><list><block var="cast_data"/><l>true</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><block s="reportVariadicEquals"><list><block var="cast_data"/><l>1</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></list></block><block s="doReport"><custom-block s="inline block (boolean) %cs"><script><block s="doReport"><block var="cast_data"/></block></script></custom-block></block></script></block-definition><block-definition s="current microphone sample" type="reporter" category="Sensing+"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewSoundFromSamples"><block s="reportAudio"><l><option>samples</option></l></block><block s="reportAudio"><l><option>sample rate</option></l></block></block></block></script></block-definition><block-definition s="is %&apos;#&apos; odd?" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">65</input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="#"/><l>2</l></block><l>1</l></list></block></block></script></block-definition><block-definition s="distance from x: %&apos;#&apos; y: %&apos;$&apos; to x: %&apos;&gt;&apos; y: %&apos;^&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input><input type="%n" initial="1">100</input><input type="%n" initial="1">100</input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="#"/><block var="&gt;"/></block><block s="reportDifference"><block var="#"/><block var="&gt;"/></block></list></block><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="$"/><block var="^"/></block><block s="reportDifference"><block var="$"/><block var="^"/></block></list></block></list></block></block></block></script></block-definition><block-definition s="direction to x: %&apos;(&apos; y: %&apos;)&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="number of %s `s in %s"><l>-</l><block s="reportAtan2"><block s="reportDifference"><block var="("/><block s="xPosition"></block></block><block s="reportDifference"><block var=")"/><block s="yPosition"></block></block></block></custom-block><l>1</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>360</l><block s="reportAtan2"><block s="reportDifference"><block var="("/><block s="xPosition"></block></block><block s="reportDifference"><block var=")"/><block s="yPosition"></block></block></block></list></block></block></script><list><l><bool>true</bool></l><script><block s="doReport"><block s="reportAtan2"><block s="reportDifference"><block var="("/><block s="xPosition"></block></block><block s="reportDifference"><block var=")"/><block s="yPosition"></block></block></block></block></script></list></block></script></block-definition><block-definition s="number of %&apos;letter&apos; `s in %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">l</input><input type="%s" initial="1">hello world</input></inputs><script><block s="doReport"><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="words"/><block var="letter"/></block></block><l>1</l></block></block></script></block-definition><block-definition s="direction from x: %&apos;=&apos; y: %&apos;+&apos; to x: %&apos;{&apos; y: %&apos;}&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">0</input><input type="%n" initial="1">0</input><input type="%n" initial="1">100</input><input type="%n" initial="1">100</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="number of %s `s in %s"><l>-</l><block s="reportAtan2"><block s="reportDifference"><block var="{"/><block var="="/></block><block s="reportDifference"><block var="}"/><block var="+"/></block></block></custom-block><l>1</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><l>360</l><block s="reportAtan2"><block s="reportDifference"><block var="{"/><block var="="/></block><block s="reportDifference"><block var="}"/><block var="+"/></block></block></list></block></block></script><list><l><bool>true</bool></l><script><block s="doReport"><block s="reportAtan2"><block s="reportDifference"><block var="{"/><block var="="/></block><block s="reportDifference"><block var="}"/><block var="+"/></block></block></block></script></list></block></script></block-definition><block-definition s="hypotenuse %&apos;1&apos; %&apos;2&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="1"/><block var="1"/></list></block><block s="reportVariadicProduct"><list><block var="2"/><block var="2"/></list></block></list></block></block></block></script></block-definition><block-definition s="Area of triangle with sides: %&apos;A&apos; %&apos;B&apos; %&apos;C&apos;" type="reporter" category="operators"><variables><list struct="atomic" id="115239">S</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">100</input><input type="%n" initial="1">100</input><input type="%n" initial="1">141.42</input></inputs><script><block s="doSetVar"><l>S</l><block s="reportVariadicSum"><list><block var="A"/><block var="B"/><block var="C"/></list></block></block><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="S"/><l>2</l></block><block s="reportDifference"><block s="reportQuotient"><block var="S"/><l>2</l></block><block var="A"/></block><block s="reportDifference"><block s="reportQuotient"><block var="S"/><l>2</l></block><block var="B"/></block><block s="reportDifference"><block s="reportQuotient"><block var="S"/><l>2</l></block><block var="C"/></block></list></block></block></block></script></block-definition><block-definition s="Angels of triangle with sides %&apos;A&apos; %&apos;B&apos; %&apos;C&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">100</input><input type="%n" initial="1">100</input><input type="%n" initial="1">141.42</input></inputs><script><block s="doReport"><block s="reportNewList"><list><custom-block s="round %n to the nearest thousandth"><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicSum"><list><custom-block s="%n squared"><block var="B"/></custom-block><custom-block s="%n squared"><block var="C"/></custom-block></list></block><custom-block s="%n squared"><block var="A"/></custom-block></block><block s="reportVariadicProduct"><list><l>2</l><block var="B"/><block var="C"/></list></block></block></block></custom-block><custom-block s="round %n to the nearest thousandth"><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicSum"><list><custom-block s="%n squared"><block var="A"/></custom-block><custom-block s="%n squared"><block var="C"/></custom-block></list></block><custom-block s="%n squared"><block var="B"/></custom-block></block><block s="reportVariadicProduct"><list><l>2</l><block var="A"/><block var="C"/></list></block></block></block></custom-block><custom-block s="round %n to the nearest thousandth"><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicSum"><list><custom-block s="%n squared"><block var="A"/></custom-block><custom-block s="%n squared"><block var="B"/></custom-block></list></block><custom-block s="%n squared"><block var="C"/></custom-block></block><block s="reportVariadicProduct"><list><l>2</l><block var="B"/><block var="A"/></list></block></block></block></custom-block></list></block></block></script></block-definition><block-definition s="%&apos;#&apos; squared" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="#"/><block var="#"/></list></block></block></script></block-definition><block-definition s="round %&apos;#&apos; to the nearest thousandth" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">5.455</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportLetter"><l>3</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.1</l></list></block></block><l>1</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block><block s="reportVariadicProduct"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.1</l></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportLetter"><l>2</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.01</l></list></block><l>.01</l></list></block></list></block></block></script><list><l><bool>true</bool></l><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block><block s="reportVariadicProduct"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.1</l></list></block><block s="reportVariadicProduct"><list><block s="reportLetter"><l>2</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.01</l></list></block></list></block></block></script></list></block></script></block-definition><block-definition s="big angle to small %&apos;angle&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">361</input></inputs><script><block s="doReport"><block s="reportModulus"><block var="angle"/><l>360</l></block></block></script></block-definition><block-definition s="Pi" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022576341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169414599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434019634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166730273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306844953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650832431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527138315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167600298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877769776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640057099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937310804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639382432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764887834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371406435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213505586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541508936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302173912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283182342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198396308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420808850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837873864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478863604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151058236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973865220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519478061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361680594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282381537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892822994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588867781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148962961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072872535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123850425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992754426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044063471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220177723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453452038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335654639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757943936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560263224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237896029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079067086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794522644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519655904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361613384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272115726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506854530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917032754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706478426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991646464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422809873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379852827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556719649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719223223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702226309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428897557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514626437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549416542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992914652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935809041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755154125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676007248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488541679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760356390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589128405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916792969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909887025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624105195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955737727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620113184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547076781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866147629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430001566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109676765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482481833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395120853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316179699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819235355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884631256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509263071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347838827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914591819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751191440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216890900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508846584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613803811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983146982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006073746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076441912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888904583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492099897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653856731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874468611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048437528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417838665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608424065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593095854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472153962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893528555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139323775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995240918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211510949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193191981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948541401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175470872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493156999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724348643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180969976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872259677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897952626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032907598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532340179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694766126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561362316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217589494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340173572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172837493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423433152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420279088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884830999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057581890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529591017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566746260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402610569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888150329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481615273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230476875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147392653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331959197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537883387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324240661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286933801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054887167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424998748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530396439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353521358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048229409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452852640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698469478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543839114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361904042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749689212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772528650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015252348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977994001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209239480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089240613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855144350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256378733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163218339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510109096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968091469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792497469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693046047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591249890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070682762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208498720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122003526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152051546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715700867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903899071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325019870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404969271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624134597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658359421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232185574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429331004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680186131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594605487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983875087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333187688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043105987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807764844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841602950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102167340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824051770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845079151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986974759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219750519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678519661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738060394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017721392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948275783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986317210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095850313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044771692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587281505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625661184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908992638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504719144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278473361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127101052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019030276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880280782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115960190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258319293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815908800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057637199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396306139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238347382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371639123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018315875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813598885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605154047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113250223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102462401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129517597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007466380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554235235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474489908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507473874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038895360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578820019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120226329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445179288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559911314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939727150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580592560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615042563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440760470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852830436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554558099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511396119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190648764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215453927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775949316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259145247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953495701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471090335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831191848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000996862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325341412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446950109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526607831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202325409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512858020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926661234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881398752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604130093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821698271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354542064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782157373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543435450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351714749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829706583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504292259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985730570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819308714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981862846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908933526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518258284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536485619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121686446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098928641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209479721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439399256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359382311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012713204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044111311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350129775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746866106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718164078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191218806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308467745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539424926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472000192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392656620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332810262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747931665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738418311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954318040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194608435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301540612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193257974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490544182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556267602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608041130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321123674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465828267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306521085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787041926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405143868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672106460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439950410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161906114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187220583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316794385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561638976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095349653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690434272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588065522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156366274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546065997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178089414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621552896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781368367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914608202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719354758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833778887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095216328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789940333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645392805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862995118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349742611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386512905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242887200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929946819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389503217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459534334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384218701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557470231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031885732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330192600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396164363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148371103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813330617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858410237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405442264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348315380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429187128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280089747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200780141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753799030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007377537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573781210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159952359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487548847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264188300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599310356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892195119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459017809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986767817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225069659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353452816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065709912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202506134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864825775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505811420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938239946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012619157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310447406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604329123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379964351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210575352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451821413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144511383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886165672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899027804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747627852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498074396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131836688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474488176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524094441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564042701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235376486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427981687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425805343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913492615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156793839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595524891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426400718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789278468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833582768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904040233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204072887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326106052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546314504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183934057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142165615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460835217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716352727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233961276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402757992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544693869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129105318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951245395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271045027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814931427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554383058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335212141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965940383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481696694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762163559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362749328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096142952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768874474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943105940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805894336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564715420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564143822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122436375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225064809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056691121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643960452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280860859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931125679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897248841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870831925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525308493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527454288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172756988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819733250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189269663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483916467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024417511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206712567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721068198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684143775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449184093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291040870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225258416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564919594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090199762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714321186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533123071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490332560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187232927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844958072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409556079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690694828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740793538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958494130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801882123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644771293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662156804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307509829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276233830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013176419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931560863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584011791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717910225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533911892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707214796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952666758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167649668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254507114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990443228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514161050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314081751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740131145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237414938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423985135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879694458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460995249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215492101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864274786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161962476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096966601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054943441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111252349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472732894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619039014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109404259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607500248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856352945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901806965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159569539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536938145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687209316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769685101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417652780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861400951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577576561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179760679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247712012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115014067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671356443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433259780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174919141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006120649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222995418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207163516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610698229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009439580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126861969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560927332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295600095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223576132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315301969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245592434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540419184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227923051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869510926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111048140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691510904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622358029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021061524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838795189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693188014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063858046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576199431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598380812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663922050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174636092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870870305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437994868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201490875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293033830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533336983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372954016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939486863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782245949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853703555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660963551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500596261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582337354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701433527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233631493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004590864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050677379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700992444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130105505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650120578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323582797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325412355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811395838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486631405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439020337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488307847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591441520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954900776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942588060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025396268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539290939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295620305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610596667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650698652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243083388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699303478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180841547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302821544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526655649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785294891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205501683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992197814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238743312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715191834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128978163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208010491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251582904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279298575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646</l></block></script></block-definition><block-definition s="%&apos;&#126;&apos; percent of %&apos;#&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">50</input><input type="%n" initial="1">100</input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="#"/><l>100</l></block><block var="&#126;"/></list></block></block></script></block-definition><block-definition s="%&apos;#&apos; is what percent of %&apos;##&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">6.5</input><input type="%n" initial="1">65</input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="#"/><block var="##"/></block><l>100</l></list></block></block></script></block-definition><block-definition s="round %&apos;#&apos; to the nearest tenth" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">5.45</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportLetter"><l>2</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.1</l></list></block></block><l>1</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.1</l></list></block><l>.1</l></list></block></list></block></block></script><list><l><bool>true</bool></l><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block><block s="reportVariadicProduct"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#"/><l>.</l></block></block></block><l>.1</l></list></block></list></block></block></script></list></block></script></block-definition><block-definition s="List values until end reached (starting value= %&apos;#&apos; ) (Remove= %&apos;##&apos; ) (Ending value= %&apos;###&apos; )" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">1200</input><input type="%n" initial="1">100</input><input type="%n" initial="1">-1200</input></inputs><script><block s="doDeclareVariables"><list><l>List</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>List</l><block s="reportNewList"><list><block var="#"/></list></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="#"/><block var="###"/></list></block><block s="reportVariadicLessThan"><list><block var="#"/><block var="###"/></list></block></list></block><script><block s="doSetVar"><l>#</l><block s="reportDifference"><block var="#"/><block var="##"/></block></block><block s="doAddToList"><block var="#"/><block var="List"/></block></script></block><block s="doReport"><block var="List"/></block></script></block></script></block-definition><block-definition s="List version of Shape cords) Points= %&apos;points&apos; Size= %&apos;size&apos;" type="reporter" category="Best custom blocks"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">5</input><input type="%s" initial="1">20</input></inputs><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>x list</l><l>y list</l><l>cord list</l><l>Final list</l></list></block><block s="doWarp"><script><block s="doHideVar"><l></l></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>x list</l><block s="reportNewList"><list><l>X cords</l></list></block></block><block s="doSetVar"><l>y list</l><block s="reportNewList"><list><l>Y cords</l></list></block></block><block s="doSetVar"><l>Final list</l><block s="reportNewList"><list><l></l></list></block></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="size"/></block></block><block s="doRepeat"><block var="points"/><script><block s="doRepeat"><block s="reportQuotient"><l>14400</l><block var="points"/></block><script><block s="forward"><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="Pi"></custom-block><block s="reportQuotient"><block var="size"/><l>4</l></block></list></block><l>1800</l></block></block><block s="turnLeft"><l>.025</l></block></script></block><block s="doAddToList"><custom-block s="round %n to the nearest thousandth"><block s="xPosition"></block></custom-block><block var="x list"/></block><block s="doAddToList"><custom-block s="round %n to the nearest thousandth"><block s="yPosition"></block></custom-block><block var="y list"/></block></script></block><block s="doSetVar"><l>cord list</l><block s="reportCrossproduct"><list><block var="x list"/><block s="reportNewList"><list><l></l></list></block><block var="y list"/></list></block></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doFor"><l>i</l><l>1</l><block var="points"/><script><block s="doAddToList"><block s="reportRound"><block s="reportListItem"><block var="i"/><block s="reportListItem"><custom-block s="List values until end reached (starting value= %n ) (Remove= %n ) (Ending value= %n )"><block s="reportListAttribute"><l><option>length</option></l><block var="cord list"/></block><block s="reportVariadicSum"><list><block var="points"/><l>2</l></list></block><l>1</l></custom-block><block var="cord list"/></block></block></block><block var="Final list"/></block></script></block><block s="doReplaceInList"><l>1</l><block var="Final list"/><block s="reportListItem"><l>1</l><block var="cord list"/></block></block></script></block><block s="doReport"><block var="Final list"/></block></script></block-definition><block-definition s="$list Shape cords) Points= %&apos;points&apos; Size= %&apos;size&apos; Point size= %&apos;dot size&apos; (will be slightly off)" type="command" category="Best custom blocks"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>x</l><l>y</l><l>x list</l><l>y list</l><l>cord list</l><l>Final list</l></list></block><block s="doWarp"><script><block s="clear"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doHideVar"><l></l></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>x list</l><block s="reportNewList"><list><l>X cords</l></list></block></block><block s="doSetVar"><l>y list</l><block s="reportNewList"><list><l>Y cords</l></list></block></block><block s="doSetVar"><l>Final list</l><block s="reportNewList"><list><l></l></list></block></block><block s="setHeading"><l>90</l></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="size"/></block></block><block s="down"></block><block s="setSize"><block s="reportQuotient"><block var="dot size"/><l>5</l></block></block><block s="doRepeat"><block var="points"/><script><block s="doRepeat"><block s="reportQuotient"><l>14400</l><block var="points"/></block><script><block s="forward"><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="Pi"></custom-block><block s="reportQuotient"><block var="size"/><l>4</l></block></list></block><l>1800</l></block></block><block s="turnLeft"><l>.025</l></block></script></block><custom-block s="$dot Dot %s"><block var="dot size"/><variables><variable name="a"><l>0</l></variable></variables></custom-block><block s="doAddToList"><block s="xPosition"></block><block var="x list"/></block><block s="doAddToList"><block s="yPosition"></block><block var="y list"/></block><block s="down"></block></script></block><block s="doSetVar"><l>cord list</l><block s="reportCrossproduct"><list><block var="x list"/><block s="reportNewList"><list><l></l></list></block><block var="y list"/></list></block></block><block s="up"></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doFor"><l>i</l><l>1</l><block var="points"/><script><block s="doAddToList"><block s="reportRound"><block s="reportListItem"><block var="i"/><block s="reportListItem"><custom-block s="List values until end reached (starting value= %n ) (Remove= %n ) (Ending value= %n )"><block s="reportListAttribute"><l><option>length</option></l><block var="cord list"/></block><block s="reportVariadicSum"><list><block var="points"/><l>2</l></list></block><l>1</l></custom-block><block var="cord list"/></block></block></block><block var="Final list"/></block></script></block><block s="doReplaceInList"><l>1</l><block var="Final list"/><block s="reportListItem"><l>1</l><block var="cord list"/></block></block><block s="doShowVar"><l>Final list</l></block></script></block></script></block-definition><block-definition s="$dot Dot %&apos;size&apos;" type="command" category="pen"><variables><list struct="atomic" id="115983">a</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doSetVar"><l>a</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="doWarp"><script><block s="down"></block><block s="setSize"><block var="size"/></block><block s="forward"><l>0</l></block><block s="up"></block><block s="setSize"><block var="a"/></block></script></block></script></block-definition><block-definition s="Grid %&apos;A&apos; (fits square stage only)" type="command" category="Best custom blocks"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="doWarp"><script><block s="doDeclareVariables"><list><l>size</l><l>start cords</l><l>x</l><l>y</l></list></block><block s="doSetVar"><l>x</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>width</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>2</l></block></block><block s="doSetVar"><l>y</l><block s="reportQuotient"><block s="reportAttributeOf"><l><option>height</option></l><block s="reportGet"><l><option>stage</option></l></block></block><l>2</l></block></block><block s="doSetVar"><l>size</l><block var="A"/></block><block s="doSetVar"><l>start cords</l><block var="y"/></block><block s="setHeading"><l>90</l></block><block s="clear"></block><block s="setColor"><color>46,46,46,1</color></block><block s="setSize"><l>5</l></block><block s="gotoXY"><block s="reportMonadic"><l><option>neg</option></l><block var="x"/></block><block var="y"/></block><block s="down"></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block s="yPosition"></block><block s="reportMonadic"><l><option>neg</option></l><block var="y"/></block></list></block><script><block s="up"></block><block s="setXPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="x"/></block></block><block s="setYPosition"><block var="start cords"/></block><block s="down"></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="x"/><block var="y"/></list></block><script><block s="forward"><block s="reportVariadicProduct"><list><block var="y"/><l>2</l></list></block></block></script><list><l><bool>true</bool></l><script><block s="forward"><block s="reportVariadicProduct"><list><block var="x"/><l>2</l></list></block></block></script></list></block><block s="doChangeVar"><l>start cords</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="y"/><block var="size"/></block><l>2</l></list></block></block></block></script></block><block s="up"></block><block s="setHeading"><l>0</l></block><block s="gotoXY"><block s="reportMonadic"><l><option>neg</option></l><block var="x"/></block><block var="y"/></block><block s="doSetVar"><l>start cords</l><block s="reportVariadicSum"><list><block var="y"/><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="y"/><block var="size"/></block><l>2</l></list></block></list></block></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block s="xPosition"></block><block s="reportMonadic"><l><option>neg</option></l><block var="x"/></block></list></block><script><block s="up"></block><block s="setXPosition"><block var="start cords"/></block><block s="setYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="y"/></block></block><block s="down"></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="x"/><block var="y"/></list></block><script><block s="forward"><block s="reportVariadicProduct"><list><block var="y"/><l>2</l></list></block></block></script><list><l><bool>true</bool></l><script><block s="forward"><block s="reportVariadicProduct"><list><block var="x"/><l>2</l></list></block></block></script></list></block><block s="doChangeVar"><l>start cords</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="y"/><block var="size"/></block><l>2</l></list></block></block></block></script></block><block s="up"></block></script></block></script></block-definition><block-definition s="Pie Chart Size: %&apos;size&apos; Values: %&apos;val&apos; Names: %&apos;Names&apos;" type="command" category="Best custom blocks"><variables><list struct="atomic" id="116213">#,##</list></variables><header></header><code></code><translations></translations><inputs><input type="%n" initial="1">500</input><input type="%mult%n" initial="1"></input><input type="%mult%s" initial="1"></input></inputs><script><block s="hide"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="clear"></block><block s="setColor"><color>0,0,0,1</color></block><custom-block s="$circle circle Size: %s pen size: %s"><block var="size"/><l>20</l><variables><variable name="x"><l>0</l></variable><variable name="y"><l>0</l></variable><variable name="pen check"><l>0</l></variable></variables></custom-block><block s="setSize"><l>1</l></block><block s="doDeclareVariables"><list><l>VAL</l><l>TOL VAL</l></list></block><block s="doSetVar"><l>TOL VAL</l><l>0</l></block><block s="doSetVar"><l>VAL</l><block var="val"/></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="VAL"/></block><script><block s="doSetVar"><l>TOL VAL</l><block s="reportVariadicSum"><list><block var="TOL VAL"/><block s="reportListItem"><block var="i"/><block var="VAL"/></block></list></block></block></script></block><block s="setHeading"><l>0</l></block><block s="down"></block><block s="forward"><block var="size"/></block><block s="forward"><block s="reportMonadic"><l><option>neg</option></l><block var="size"/></block></block><block s="up"></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="VAL"/></block><script><block s="turn"><custom-block s="%n percent of %n"><custom-block s="%n is what percent of %n"><block s="reportListItem"><block var="i"/><block var="VAL"/></block><block var="TOL VAL"/></custom-block><l>360</l></custom-block></block><block s="down"></block><block s="forward"><block var="size"/></block><block s="forward"><block s="reportMonadic"><l><option>neg</option></l><block var="size"/></block></block><block s="up"></block></script></block><block s="setColor"><color>0,231,237,1</color></block><block s="up"></block><block s="setHeading"><l>0</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="VAL"/></block><script><block s="changePenColorDimension"><l><option>hue</option></l><block s="reportQuotient"><l>100</l><block s="reportListAttribute"><l><option>length</option></l><block var="VAL"/></block></block></block><block s="turn"><block s="reportQuotient"><custom-block s="%n percent of %n"><custom-block s="%n is what percent of %n"><block s="reportListItem"><block var="i"/><block var="VAL"/></block><block var="TOL VAL"/></custom-block><l>360</l></custom-block><l>2</l></block></block><block s="forward"><block s="reportQuotient"><block var="size"/><l>2</l></block></block><block s="floodFill"></block><block s="forward"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="size"/><l>2</l></block></block></block><block s="turn"><block s="reportQuotient"><custom-block s="%n percent of %n"><custom-block s="%n is what percent of %n"><block s="reportListItem"><block var="i"/><block var="VAL"/></block><block var="TOL VAL"/></custom-block><l>360</l></custom-block><l>2</l></block></block></script></block><block s="setColor"><color>0,0,0,1</color></block><block s="changeXPosition"><l>-100</l></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="VAL"/></block><script><block s="turn"><block s="reportQuotient"><custom-block s="%n percent of %n"><custom-block s="%n is what percent of %n"><block s="reportListItem"><block var="i"/><block var="VAL"/></block><block var="TOL VAL"/></custom-block><l>360</l></custom-block><l>2</l></block></block><block s="forward"><block s="reportVariadicProduct"><list><block var="size"/><l>1.3</l></list></block></block><block s="doSetVar"><l>#</l><block s="direction"></block></block><block s="doSetVar"><l>##</l><block s="xPosition"></block></block><block s="setHeading"><l>90</l></block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="xPosition"></block><l>0</l></list></block><script><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><block var="i"/><block var="Names"/></block></block><block s="reportQuotient"><block var="size"/><l>40</l></block></list></block></block></block><block s="write"><block s="reportListItem"><block var="i"/><block var="Names"/></block><block s="reportQuotient"><block var="size"/><l>5</l></block></block></script><script><block s="write"><block s="reportListItem"><block var="i"/><block var="Names"/></block><block s="reportQuotient"><block var="size"/><l>5</l></block></block></script></block><block s="setXPosition"><block var="##"/></block><block s="setHeading"><block var="#"/></block><block s="forward"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="size"/><l>1.3</l></list></block></block></block><block s="turn"><block s="reportQuotient"><custom-block s="%n percent of %n"><custom-block s="%n is what percent of %n"><block s="reportListItem"><block var="i"/><block var="VAL"/></block><block var="TOL VAL"/></custom-block><l>360</l></custom-block><l>2</l></block></block></script></block></script></block-definition><block-definition s="$circle circle Size: %&apos;size&apos; pen size: %&apos;pen size&apos;" type="command" category="pen"><variables><list struct="atomic" id="116485">x,y,pen check</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="getPenDown"></block><script><block s="up"></block><block s="doSetVar"><l>pen check</l><l>yes</l></block></script><list><l><bool>true</bool></l><script><block s="doSetVar"><l>pen check</l><l>no</l></block></script></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="setHeading"><l>90</l></block><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><custom-block s="%n percent of %n"><l>.833333333333333</l><l></l></custom-block></block></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="size"/></block></block><block s="down"></block><block s="setSize"><block var="pen size"/></block><block s="doRepeat"><l>360</l><script><block s="forward"><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="Pi"></custom-block><block s="reportQuotient"><block var="size"/><l>4</l></block></list></block><l>45</l></block></block><block s="turnLeft"><l>1</l></block></script></block><block s="up"></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="pen check"/><l>yes</l></list></block><script><block s="down"></block></script><list></list></block></script></block></script></block-definition><block-definition s="random tri" type="command" category="Best custom blocks"><comment x="0" y="0" w="90" collapsed="false">V3</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="hide"></block><block s="setColor"><color>0,245,242,1</color></block><block s="up"></block><block s="clear"></block><block s="setSize"><custom-block s="%n percent of %n"><l>.834</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="doDeclareVariables"><list><l>1X</l><l>2X</l><l>1Y</l><l>2Y</l><l>3X</l><l>3Y</l></list></block><block s="gotoXY"><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block><block s="reportDifference"><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block></block><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block><block s="reportDifference"><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block></block></block><block s="doSetVar"><l>1X</l><block s="xPosition"></block></block><block s="doSetVar"><l>1Y</l><block s="yPosition"></block></block><block s="gotoXY"><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block><block s="reportDifference"><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block></block><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block><block s="reportDifference"><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block></block></block><block s="doSetVar"><l>2X</l><block s="xPosition"></block></block><block s="doSetVar"><l>2Y</l><block s="yPosition"></block></block><block s="gotoXY"><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block><block s="reportDifference"><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block></block><block s="reportRandom"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block><block s="reportDifference"><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block><custom-block s="%n percent of %n"><l>8.34</l><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block></block></block><block s="doSetVar"><l>3X</l><block s="xPosition"></block></block><block s="doSetVar"><l>3Y</l><block s="yPosition"></block></block><block s="down"></block><block s="gotoXY"><block var="1X"/><block var="1Y"/></block><block s="gotoXY"><block var="2X"/><block var="2Y"/></block><block s="gotoXY"><block var="3X"/><block var="3Y"/></block><block s="up"></block><block s="setColor"><color>250,16,0,1</color></block><block s="setHeading"><custom-block s="direction to x: %n y: %n"><block var="1X"/><block var="1Y"/></custom-block></block><block s="forward"><block s="reportQuotient"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block><l>2</l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="direction"></block><l>180</l></list></block><script><block s="setHeading"><block s="reportDifference"><block s="direction"></block><l>180</l></block></block></script><list></list></block><block s="write"><custom-block s="round %n to the nearest tenth"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block></custom-block><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="gotoXY"><block var="1X"/><block var="1Y"/></block><block s="setHeading"><custom-block s="direction to x: %n y: %n"><block var="2X"/><block var="2Y"/></custom-block></block><block s="forward"><block s="reportQuotient"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block><l>2</l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="direction"></block><l>180</l></list></block><script><block s="setHeading"><block s="reportDifference"><block s="direction"></block><l>180</l></block></block></script><list></list></block><block s="write"><custom-block s="round %n to the nearest tenth"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block></custom-block><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="gotoXY"><block var="2X"/><block var="2Y"/></block><block s="setHeading"><custom-block s="direction to x: %n y: %n"><block var="3X"/><block var="3Y"/></custom-block></block><block s="forward"><block s="reportQuotient"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block><l>2</l></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="direction"></block><l>180</l></list></block><script><block s="setHeading"><block s="reportDifference"><block s="direction"></block><l>180</l></block></block></script><list></list></block><block s="write"><custom-block s="round %n to the nearest tenth"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></custom-block><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="gotoXY"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>4.17</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block><l>2</l></block></block><custom-block s="%n percent of %n"><l>4.17</l><block s="reportListItem"><l>2</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></list></block></block><block s="setHeading"><l>90</l></block><block s="write"><l>Area=</l><custom-block s="%n percent of %n"><l>4.17</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="write"><custom-block s="round %n to the nearest tenth"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportVariadicSum"><list><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></list></block><l>2</l></block><block s="reportDifference"><block s="reportQuotient"><block s="reportVariadicSum"><list><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></list></block><l>2</l></block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block></block><block s="reportDifference"><block s="reportQuotient"><block s="reportVariadicSum"><list><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></list></block><l>2</l></block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block></block><block s="reportDifference"><block s="reportQuotient"><block s="reportVariadicSum"><list><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></list></block><l>2</l></block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></block></list></block></block></custom-block><custom-block s="%n percent of %n"><l>4.17</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="gotoXY"><block var="1X"/><block var="1Y"/></block><block s="write"><custom-block s="round %n to the nearest tenth"><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicSum"><list><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block></custom-block><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block></custom-block></list></block><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></custom-block></block><block s="reportVariadicProduct"><list><l>2</l><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block></list></block></block></block></custom-block><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="write"><l>°</l><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="gotoXY"><block var="2X"/><block var="2Y"/></block><block s="write"><custom-block s="round %n to the nearest tenth"><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicSum"><list><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block></custom-block><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></custom-block></list></block><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block></custom-block></block><block s="reportVariadicProduct"><list><l>2</l><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></list></block></block></block></custom-block><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="write"><l>°</l><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="gotoXY"><block var="3X"/><block var="3Y"/></block><block s="write"><custom-block s="round %n to the nearest tenth"><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block s="reportDifference"><block s="reportVariadicSum"><list><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block></custom-block><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></custom-block></list></block><custom-block s="%n squared"><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="1X"/><block var="1Y"/><block var="2X"/><block var="2Y"/></custom-block></custom-block></block><block s="reportVariadicProduct"><list><l>2</l><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="3X"/><block var="3Y"/><block var="1X"/><block var="1Y"/></custom-block><custom-block s="distance from x: %n y: %n to x: %n y: %n"><block var="2X"/><block var="2Y"/><block var="3X"/><block var="3Y"/></custom-block></list></block></block></block></custom-block><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block><block s="write"><l>°</l><custom-block s="%n percent of %n"><l>3.125</l><block s="reportListItem"><l>1</l><block s="reportAttributeOf"><l><option>extent</option></l><block s="reportGet"><l><option>stage</option></l></block></block></block></custom-block></block></script></block></script></block-definition><block-definition s="reset variables" type="command" category="variables"><comment x="0" y="0" w="90" collapsed="false">Its inefficient, I know</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>1</l><l>0</l></block><block s="doSetVar"><l>2</l><l>0</l></block><block s="doSetVar"><l>3</l><l>0</l></block><block s="doSetVar"><l>4</l><l>0</l></block><block s="doSetVar"><l>5</l><l>0</l></block><block s="doSetVar"><l>6</l><l>0</l></block><block s="doSetVar"><l>7</l><l>0</l></block><block s="doSetVar"><l>8</l><l>0</l></block><block s="doSetVar"><l>n</l><l>0</l></block><block s="doSetVar"><l>c</l><l>0</l></block><block s="doSetVar"><l>m</l><l>0</l></block><block s="doSetVar"><l>w</l><l>0</l></block><block s="doHideVar"><l></l></block></script></block-definition><block-definition s="Repeat %&apos;#&apos; for %&apos;sec&apos; seconds" type="command" category="control"><variables><list struct="atomic" id="117681">ST</list></variables><header></header><code></code><translations></translations><inputs><input type="%cs" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doSetVar"><l>ST</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block s="reportVariadicSum"><list><block var="ST"/><block s="reportVariadicProduct"><list><block var="sec"/><l>1000</l></list></block></list></block><block s="reportDate"><l><option>time in milliseconds</option></l></block></list></block><script><block s="doRun"><block var="#"/><list></list></block></script></block></script><scripts><script x="10" y="220.33333333333337"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>ST</l><l>ET</l><l>Seconds</l><l>TTD</l><l>TPS</l></list></block><block s="doSetVar"><l>ST</l><l>0</l></block><block s="doSetVar"><l>ET</l><l>0</l></block><block s="doSetVar"><l>Seconds</l><l>0</l></block><block s="doSetVar"><l>TTD</l><l>0</l></block><block s="doSetVar"><l>TPS</l><l>0</l></block><block s="doSetVar"><l>Seconds</l><block var="sec"/></block><block s="doSetVar"><l>ST</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block var="#"/><list></list></block><block s="doWait"><l>.01</l></block><block s="doSetVar"><l>ET</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doSetVar"><l>TTD</l><block s="reportDifference"><block var="ET"/><block var="ST"/></block></block><block s="doSetVar"><l>TPS</l><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="Seconds"/><l>1000</l></list></block><block var="TTD"/></block></block><block s="doSetVar"><l>TPS</l><block s="reportQuotient"><block var="TPS"/><l>1000</l></block></block><block s="doRepeat"><block var="TPS"/><script><block s="doRun"><block var="#"/><list></list></block></script></block></script><list></list><comment w="90" collapsed="false">Old version that doesn&apos;t work</comment></block></script></scripts></block-definition><block-definition s="$trash reset all" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doStopThis"><l><option>all but this script</option></l></block><custom-block s="reset variables"></custom-block><custom-block s="reset looks"></custom-block><custom-block s="reset pen"></custom-block><block s="doStopAllSounds"></block><custom-block s="delete all clones"></custom-block><block s="setHeading"><l>90</l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doStopThis"><l><option>all</option></l></block></script></block></script></block-definition><block-definition s="reset pen" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="up"></block><block s="setColor"><color>0,248,246,1</color></block><block s="setPenColorDimension"><l><option>hue</option></l><l>50</l></block><block s="setSize"><l>1</l></block><block s="clear"></block></script></block-definition><block-definition s="reset looks" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="setEffect"><l><option>color</option></l><l>0</l></block><block s="setEffect"><l><option>saturation</option></l><l>0</l></block><block s="setEffect"><l><option>brightness</option></l><l>0</l></block><block s="setEffect"><l><option>ghost</option></l><l>0</l></block><block s="setEffect"><l><option>fisheye</option></l><l>0</l></block><block s="setEffect"><l><option>whirl</option></l><l>0</l></block><block s="setEffect"><l><option>pixelate</option></l><l>0</l></block><block s="setEffect"><l><option>mosaic</option></l><l>0</l></block><block s="setEffect"><l><option>negative</option></l><l>0</l></block><block s="clearEffects"></block><block s="setScale"><l>100</l></block><block s="show"></block><block s="goToLayer"><l><option>front</option></l></block></script></block-definition><block-definition s="$square Square Size: %&apos;size&apos; pen size: %&apos;pen size&apos;" type="command" category="pen"><variables><list struct="atomic" id="117859">x,y,pen check</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="getPenDown"></block><script><block s="up"></block><block s="doSetVar"><l>pen check</l><l>yes</l></block></script><list><l><bool>true</bool></l><script><block s="doSetVar"><l>pen check</l><l>no</l></block></script></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="reportQuotient"><block var="size"/><l>2</l></block></block></block><block s="changeYPosition"><block s="reportQuotient"><block var="size"/><l>2</l></block></block><block s="down"></block><block s="setSize"><block var="pen size"/></block><block s="doRepeat"><l>4</l><script><block s="forward"><block var="size"/></block><block s="turn"><l>90</l></block></script></block><block s="up"></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="pen check"/><l>yes</l></list></block><script><block s="down"></block></script><list></list></block></script></block></script></block-definition><block-definition s="secure pick random %&apos;number1&apos; to %&apos;number2&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">For cryptography.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="number1"/><l><option>list</option></l></block><block s="reportIsA"><block var="number2"/><l><option>list</option></l></block></list></block><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="number1"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="number2"/></block></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="secure pick random %n to %n"><block s="reportListItem"><block var="index"/><block var="number1"/></block><block var="value"/></custom-block></autolambda><list><l>value</l><l>index</l></list></block><block var="number2"/></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="secure pick random %n to %n"><block var="value"/><block s="reportListItem"><block var="index"/><block var="number2"/></block></custom-block></autolambda><list><l>value</l><l>index</l></list></block><block var="number1"/></block></block><block s="reportIfElse"><block s="reportIsA"><block var="number1"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="secure pick random %n to %n"><l></l><block var="number2"/></custom-block></autolambda><list></list></block><block var="number1"/></block><block s="reportIfElse"><block s="reportIsA"><block var="number2"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="secure pick random %n to %n"><block var="number1"/><l></l></custom-block></autolambda><list></list></block><block var="number2"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="number1"/><block var="number2"/></list></block><block var="number1"/><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="number1"/><l>1</l></block><l>0</l></list></block><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="number2"/><l>1</l></block><l>0</l></list></block></list></block><block s="reportRound"><block var="number"/></block><block var="number"/></block></autolambda><list><l>number</l></list></block><list><block s="reportVariadicSum"><list><block s="reportVariadicMin"><list><block var="number1"/><block var="number2"/></list></block><block s="reportModulus"><block s="reportVariadicProduct"><list><block s="reportModulus"><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><block s="reportMouseX"></block><l>0.8397844</l></list></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportMouseY"></block><l>1.2987</l></list></block><l>0.526</l></block></list></block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportDate"><l><option>time in milliseconds</option></l></block><l>324895.219831</l></block><block s="reportVariadicProduct"><list><block s="getTimer"></block><l>1.3728646</l></list></block></list></block></list></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="number2"/><block var="number1"/></block></block></block><block s="reportRandom"><block var="number1"/><block var="number2"/></block></list></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportDifference"><block var="number2"/><block var="number1"/></block></block></block></list></block></list></block></block></block></block></block></block></script></block-definition><block-definition s="for each %&apos;item&apos; %&apos;index&apos; in %&apos;list&apos; %&apos;command&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">Same as for each item but with a index upvar.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="index"/><block var="list"/></block></block><block s="doRun"><block var="command"/><list></list></block></script></block></script></block-definition><block-definition s="for each %&apos;item&apos; %&apos;index&apos; %&apos;list&apos; in %&apos;data&apos; %&apos;command&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">Same as for each item but with a index and a list upvar.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>list</l><block var="data"/></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="index"/><block var="data"/></block></block><block s="doRun"><block var="command"/><list></list></block></script></block></script></block-definition><block-definition s="hypervized pen %&apos;which&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>size&#xD;hue&#xD;saturation&#xD;brightness&#xD;transparency</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="which"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="hypervized pen %s"><l></l></custom-block></autolambda><list></list></block><block var="which"/></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><list><block var="which"/></list></block></block></block></script></block-definition><block-definition s="hypervized microphone %&apos;which&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">volume<options>volume&#xD;note&#xD;frequency&#xD;samples&#xD;sample rate&#xD;spectrum&#xD;resolution</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="which"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="hypervized microphone %s"><l></l></custom-block></autolambda><list></list></block><block var="which"/></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportAudio"><l></l></block></autolambda><list></list></block><list><block var="which"/></list></block></block></block></script></block-definition><block-definition s="hypervized current %&apos;which&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">date<options>year&#xD;month&#xD;date&#xD;day of week&#xD;hour&#xD;minute&#xD;second&#xD;time in milliseconds</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="which"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="hypervized current %s"><l></l></custom-block></autolambda><list></list></block><block var="which"/></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportDate"><l></l></block></autolambda><list></list></block><list><block var="which"/></list></block></block></block></script></block-definition><block-definition s="reverse channels in sound %&apos;which sound?&apos;" type="reporter" category="sound"><comment x="0" y="0" w="127" collapsed="false">Reverses channels, making channel 1 will be in what the channel 2 will be and vice versa.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_soundsMenu</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="which sound?"/></block></block><l>1</l></list></block><block var="which sound?"/><block s="reportNewSoundFromSamples"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="which sound?"/></block></block><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="which sound?"/></block></block></block></block></script></block-definition><block-definition s="days since 2000" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Reports the number of days since 2000.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportDifference"><block s="reportQuotient"><block s="reportDate"><l><option>time in milliseconds</option></l></block><l>86400000</l></block><l>10957.2</l></block></block></script></block-definition><block-definition s="Scratch days" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportDifference"><block s="reportQuotient"><block s="reportDate"><l><option>time in milliseconds</option></l></block><l>86400000</l></block><l>13648.88</l></block></block></script></block-definition><block-definition s="hypervized my %&apos;which&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">neighbors<options>neighbors&#xD;self&#xD;other sprites&#xD;clones&#xD;other clones&#xD;parts&#xD;anchor&#xD;stage&#xD;children&#xD;parent&#xD;temporary?&#xD;name&#xD;costume&#xD;costumes&#xD;sounds&#xD;dangling?&#xD;draggable?&#xD;width&#xD;height&#xD;left&#xD;right&#xD;top&#xD;bottom&#xD;rotation style&#xD;rotation x&#xD;rotation y&#xD;center x&#xD;center y</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="which"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="hypervized my %s"><l></l></custom-block></autolambda><list></list></block><block var="which"/></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportGet"><l></l></block></autolambda><list></list></block><list><block var="which"/></list></block></block></block></script></block-definition><block-definition s="stretch costume %&apos;costume&apos; to width: %&apos;width&apos; height: %&apos;height&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%n">50</input><input type="%n">70</input></inputs><script><block s="doReport"><block s="reportNewCostumeStretched"><block var="costume"/><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block var="width"/><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block></block></list></block><block s="reportVariadicProduct"><list><l>100</l><block s="reportQuotient"><block var="height"/><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block></block></list></block></block></block></script></block-definition><block-definition s="hypervized ask %&apos;which sprite&apos; for %&apos;reporter&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="which sprite"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="hypervized ask %s for %repRing"><l></l><block var="reporter"/></custom-block></autolambda><list></list></block><block var="which sprite"/></block><block s="reportAskFor"><block var="which sprite"/><block var="reporter"/><list></list></block></block></block></script></block-definition><block-definition s="generate primes with numbers from %&apos;start number&apos; to %&apos;end number&apos;" type="reporter" category="lists"><comment x="0" y="0" w="165" collapsed="false">Generates a list with prime numbers from the start number to the end number.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>startNumber</l><l>endNumber</l></list><l>function isprime(num){&#xD;    if ((num === 2)) {&#xD;        return true;&#xD;    }&#xD;    if ((num &lt; 2 || num % 2 === 0)) {&#xD;        return false;&#xD;    }&#xD;    for (var i = 3; i &lt;= (Math.sqrt(num)); i += 2) {&#xD;        if (((num % i) === 0)) {&#xD;            return false;&#xD;        }&#xD;    }&#xD;    return true;&#xD;}&#xD;&#xD;function getListOfPrimes(startnum,endnum) {&#xD;    if(startnum instanceof List &amp;&amp; endnum instanceof List) {&#xD;        startnum = startnum.asArray();&#xD;        endnum = endnum.asArray();&#xD;        if(startnum.length &gt; endnum.length) {&#xD;            return new List(endnum.map((value, index) =&gt; getListOfPrimes(startnum[index],value)));&#xD;        } else {&#xD;            return new List(startnum.map((value, index) =&gt; getListOfPrimes(value,endnum[index])));&#xD;        }&#xD;    }&#xD;    if(startnum instanceof List) {&#xD;        return new List(startnum.asArray().map((value) =&gt; getListOfPrimes(value,endnum)));&#xD;    }&#xD;    if(endnum instanceof List) {&#xD;        return new List(endnum.asArray().map((value) =&gt; getListOfPrimes(startnum,value)));&#xD;    }&#xD;    var primes = [];&#xD;    if (startnum &gt; endnum) {&#xD;        for (var number = endnum; number &gt;= startnum; number--) {&#xD;            if ((isprime(number))) {&#xD;                primes.push(number);&#xD;            }&#xD;        }&#xD;    }&#xD;    else {&#xD;        for (var number = startnum; number &lt;= endnum; number++) {&#xD;            if ((isprime(number))) {&#xD;                primes.push(number);&#xD;            }&#xD;        }&#xD;    }&#xD;    return new List(primes);&#xD;}&#xD;&#xD;return getListOfPrimes(startNumber,endNumber);</l></block><list><block var="start number"/><block var="end number"/></list></block></block></script></block-definition><block-definition s="hypervized %&apos;which effect&apos; effect" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">ghost<options>color&#xD;saturation&#xD;brightness&#xD;ghost&#xD;fisheye&#xD;whirl&#xD;pixelate&#xD;mosaic&#xD;negative</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="which effect"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="hypervized %s effect"><l></l></custom-block></autolambda><list></list></block><block var="which effect"/></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="getEffect"><l></l></block></autolambda><list></list></block><list><block var="which effect"/></list></block></block></block></script></block-definition><block-definition s="%&apos;data&apos; .asArray()" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>return list.asArray()</l></block><list><block var="data"/></list></block></block></script></block-definition><block-definition s="Javascript shuffle %&apos;old list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">Javascript version.&#xD;Creates a list with out of order items.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>oldarray</l></list><l>var newarray = [];&#xD;var oldarray = oldarray.asArray(); &#xD;var item,index;&#xD;while((oldarray.length) !== 0) {&#xD;    index = Math.floor(Math.random() * oldarray.length);&#xD;    item = oldarray[index]&#xD;    newarray.push(item);&#xD;    oldarray.splice(index, 1)&#xD;}&#xD;return new List(newarray);</l></block><list><block var="old list"/></list></block></block></script></block-definition><block-definition s="compress %&apos;uncompressed list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>old item</l><l>index</l><l>new list</l><l>index zipped</l></list></block><block s="doSetVar"><l>new list</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doSetVar"><l>index zipped</l><l>0</l></block><block s="doForEach"><l>item</l><block var="uncompressed list"/><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportVariadicNotEquals"><list><block var="item"/><block var="old item"/></list></block></list></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="item"/><l>1</l></list></block><block var="new list"/></block><block s="doChangeVar"><l>index zipped</l><l>1</l></block></script><script><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="index zipped"/><block var="new list"/></block><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="index zipped"/><block var="new list"/></block></block><l>1</l></list></block></block></script></block><block s="doSetVar"><l>old item</l><block var="item"/></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block var="new list"/></block></script></block></script></block-definition><block-definition s="decompress %&apos;compressed list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><block var="value"/></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block s="reportListItem"><l>2</l><block var="value"/></block></block></block></autolambda><list><l>value</l></list></block><block var="compressed list"/></block></block></block></script></block-definition><block-definition s="deep %&apos;data&apos; .asArray()" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>function deepAsArray(array){&#xD;    if(array instanceof List){&#xD;        return array.asArray().map(deepAsArray);&#xD;    }&#xD;    return array;&#xD;}&#xD;&#xD;&#xD;return deepAsArray(list)</l></block><list><block var="data"/></list></block></block></script></block-definition><block-definition s="freeze for %&apos;seconds&apos; seconds" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Freezes Snap! for the specified amount of seconds.</comment><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>milliseconds</l></list><l>var timeToEnd = Date.now() + milliseconds;&#xD;while(Date.now() &lt; timeToEnd) {&#xD;}</l></block><list><block s="reportVariadicProduct"><list><block var="seconds"/><l>1000</l></list></block></list></block></script></block-definition><block-definition s="get prime tree of %&apos;number&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">20</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>number</l></list><l>function primeTree(num){&#xD;    if(num instanceof List){&#xD;        return new List(num.asArray().map(primeTree))&#xD;    }&#xD;    if(num &lt;= 3){&#xD;        return num&#xD;    }&#xD;    &#xD;    if(num % 2 === 0){&#xD;        return "2*" + primeTree(num / 2)&#xD;    }&#xD;&#xD;    for(i = 3; i &lt; num; i += 2){&#xD;        if(num % i === 0){&#xD;            return i + "*" + primeTree(num / i)&#xD;        }&#xD;    }&#xD;    return num&#xD;}&#xD;return primeTree(number)</l></block><list><block var="number"/></list></block></block></script></block-definition><block-definition s="throw new %&apos;error&apos; ( %&apos;input text&apos; )" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">Error<options>Error&#xD;TypeError&#xD;RangeError&#xD;ReferenceError&#xD;SyntaxError&#xD;EvalError&#xD;URIError</options></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>throw new </l><block var="error"/><l>("</l><block var="input text"/><l>")</l></list></block></block><list></list></block></script></block-definition><block-definition s="pause all sounds" type="command" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>stage</l></list><l>stage.pauseAllActiveSounds()</l></block><list><block s="reportGet"><l><option>stage</option></l></block></list></block></script></block-definition><block-definition s="resume all sounds" type="command" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>stage</l></list><l>stage.resumeAllActiveSounds()</l></block><list><block s="reportGet"><l><option>stage</option></l></block></list></block></script></block-definition><block-definition s="%&apos;percentage&apos; % of %&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="reportVariadicProduct"><list><block s="reportQuotient"><block var="percentage"/><l>100</l></block><block var="num"/></list></block></block></script></block-definition><block-definition s="cube root of %&apos;number&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="doReport"><block s="reportPower"><block var="number"/><l>0.3333333333333333</l></block></block></script></block-definition><block-definition s="is %&apos;number&apos; a perfect square?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">9</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>number</l></list><l>function hyperIsPerfectSquare(num){&#xD;    if(num instanceof List){&#xD;        return new List(num.asArray().map(hyperIsPerfectSquare));&#xD;    }&#xD;    return Math.sqrt(num) % 1 === 0;&#xD;}&#xD;return hyperIsPerfectSquare(number);</l></block><list><block var="number"/></list></block></block></script><scripts><script x="10" y="210.49999999999994"><block s="reportIfElse"><block s="reportIsA"><block var="number"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="is %n a perfect square?"><l></l></custom-block></autolambda><list></list></block><block var="number"/></block><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportMonadic"><l><option>sqrt</option></l><block var="number"/></block><l>1</l></block><l>0</l></list></block></block></script></scripts></block-definition><block-definition s="mean of %&apos;numbers&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportCombine"><block var="numbers"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="numbers"/></block></block></block></script></block-definition><block-definition s="median of %&apos;numbers&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportListAttribute"><l><option>length</option></l><block var="numbers"/></block><l>2</l></block><l>0</l></list></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportListItem"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="numbers"/></block><l>2</l></block><block var="numbers"/></block><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="numbers"/></block><l>2</l></block><l>1</l></list></block><block var="numbers"/></block></list></block><l>2</l></block><block s="reportListItem"><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="numbers"/></block><l>2</l></block><block var="numbers"/></block></block></block></script></block-definition><block-definition s="ratio percentages of %&apos;numbers&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportQuotient"><block var="numbers"/><block s="reportCombine"><block var="numbers"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block><l>100</l></list></block></block></script></block-definition><block-definition s="console. %&apos;console function&apos; ( %&apos;message input&apos; )" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">log<options>log&#xD;warn&#xD;error&#xD;debug&#xD;info</options></input><input type="%s">hello world</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>console.</l><block var="console function"/><l>("</l><block var="message input"/><l>")</l></list></block></block><list></list></block></script></block-definition><block-definition s="am a clone?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicNotEquals"><list><block s="reportGet"><l><option>parent</option></l></block><l></l></list></block></block></script><scripts><script x="22" y="213.16666666666686"><block s="reportIfElse"><l/><l></l><l></l></block></script></scripts></block-definition><block-definition s="Change item %&apos;item number&apos; of %&apos;input list&apos; by %&apos;what number&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n">1<options>1&#xD;last&#xD;random</options></input><input type="%l"></input><input type="%n">1</input></inputs><script><block s="doReplaceInList"><block var="item number"/><block var="input list"/><block s="reportVariadicSum"><list><block s="reportListItem"><block var="item number"/><block var="input list"/></block><block var="what number"/></list></block></block></script></block-definition><block-definition s="filled costume %&apos;width&apos; × %&apos;height&apos; colored %&apos;color&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">80</input><input type="%n">100</input><input type="%clr"></input></inputs><script><block s="doReport"><block s="reportNewCostumeStretched"><block s="reportNewCostume"><block s="reportNewList"><list><block s="evaluate"><block s="reportJSFunction"><list><l>color</l></list><l>return new List([&#xD; color.r,&#xD; color.g,&#xD; color.b,&#xD;     255]);</l></block><list><block var="color"/></list></block></list></block><l>1</l><l>1</l></block><block s="reportVariadicProduct"><list><block var="width"/><l>100</l></list></block><block s="reportVariadicProduct"><list><block var="height"/><l>100</l></list></block></block></block></script></block-definition><block-definition s="alter speed of sound %&apos;sound&apos; by %&apos;percent&apos; %" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_soundsMenu</options></input><input type="%n">50</input></inputs><script><custom-block s="let %upvar be %s"><l>result</l><block s="reportNewSoundFromSamples"><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="sound"/></block><block s="reportVariadicProduct"><list><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="sound"/></block><block s="reportQuotient"><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="percent"/><l>100</l></list></block><l>100</l></block><l>1</l></block><block s="reportPower"><l>10</l><l>15</l></block></list></block></block><block s="reportPower"><l>10</l><l>15</l></block></block></list></block></block></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>snd</l><l>name</l></list><l>snd.name = name;</l></block><list><block var="result"/><block s="reportGetSoundAttribute"><l><option>name</option></l><block var="sound"/></block></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="current os" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var userAgent = navigator.userAgent,&#xD;      platform = navigator.platform,&#xD;      macosPlatforms = [&apos;Macintosh&apos;, &apos;MacIntel&apos;, &apos;MacPPC&apos;, &apos;Mac68K&apos;],&#xD;      windowsPlatforms = [&apos;Win32&apos;, &apos;Win64&apos;, &apos;Windows&apos;, &apos;WinCE&apos;],&#xD;      iosPlatforms = [&apos;iPhone&apos;, &apos;iPad&apos;, &apos;iPod&apos;],&#xD;      os = null;&#xD;&#xD;  if (macosPlatforms.indexOf(platform) !== -1) {&#xD;    os = &apos;Mac OS&apos;;&#xD;  } else if (iosPlatforms.indexOf(platform) !== -1) {&#xD;    os = &apos;iOS&apos;;&#xD;  } else if (windowsPlatforms.indexOf(platform) !== -1) {&#xD;    os = &apos;Windows&apos;;&#xD;  } else if (/Android/.test(userAgent)) {&#xD;    os = &apos;Android&apos;;&#xD;  } else if (!os &amp;&amp; /Linux/.test(platform)) {&#xD;    os = &apos;Linux&apos;;&#xD;  }&#xD;&#xD;  return os;</l></block><list></list></block></block></script></block-definition><block-definition s="right mouse down?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="mouse button"></custom-block><l>2</l></list><comment w="90" collapsed="false">You can modify this script to 1, 3, or 4 to detect different buttons.</comment></block></block></script></block-definition><block-definition s="mouse button" type="reporter" category="sensing"><comment x="0" y="0" w="274" collapsed="false">Reports the currently pressed mouse button&apos;s ID (i.e. middle click is 1, right-click is 2). If no buttons are currently being pressed, it will report -1. If multiple are pressed at once, it will report the ID of the button most recently pressed. This doesn&apos;t work for left clicks, however. For that you need to use &apos;mouse down?&apos;.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (!window.buttonClicked){&#xD;window.buttonClicked = -1;&#xD;window.onmousedown = e =&gt; buttonClicked = e.button;&#xD;window.onmouseup = e =&gt; buttonClicked = -1;&#xD;}&#xD;return buttonClicked || -1;</l></block><list></list></block></block></script></block-definition><block-definition s="export costume %&apos;costume&apos; named %&apos;name&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%s">costume</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>costume</l></list><l>if (costume instanceof List) throw new Error(`Costume exporting does&#xD;not currently support lists`);&#xD;if (costume == &apos;&apos; || (!(costume instanceof Costume) &amp;&amp; !(this.costumes&#xD;.itemsArray().map(e =&gt; e.name).includes(costume)))) throw new Error("Not a Costume");</l></block><list><block var="costume"/></list></block><block s="doSetVar"><l>costume</l><block s="reportNewCostumeStretched"><block var="costume"/><l>100</l><l>100</l></block></block><block s="doRun"><block s="reportJSFunction"><list><l>costume, name</l></list><l>if (!(costume instanceof Costume)) throw new Error("Not a Costume");&#xD;&#xD;var data = costume.contents.toDataURL(),&#xD;    lnk = document.createElement("a");&#xD;lnk.download = name;&#xD;lnk.href = data;&#xD;lnk.click();</l></block><list><block var="costume"/><block var="name"/></list></block></script></block-definition><block-definition s="export sound %&apos;sound&apos; named %&apos;name&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_soundsMenu</options></input><input type="%s">sound</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>sound, name</l></list><l>var lnk = document.createElement("a");&#xD;lnk.href = sound.audio.src;&#xD;lnk.download = name;&#xD;lnk.click();</l></block><list><block s="reportIfElse"><block s="reportIsA"><block var="sound"/><l><option>sound</option></l></block><block var="sound"/><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetSoundAttribute"><l><option>name</option></l><l></l></block><block var="sound"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>sounds</option></l></block></block></block><block var="name"/></list></block></script></block-definition><block-definition s="my scripts" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Reports all the current sprite&apos;s scripts in a list.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return new List(this.scripts.children.map(&#xD;function (e) {if (e instanceof RingMorph){&#xD;return new Context(null,[e]);&#xD;} else {&#xD;return new Context(null,e.fullCopy());}&#xD;}).filter(function (e) {&#xD;return !(e.expression instanceof CommentMorph);}));</l></block><list></list></block></block></script></block-definition><block-definition s="$flag-1.3-0-200-15 restart all" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doStopThis"><l><option>all but this script</option></l></block><block s="doBroadcast"><l><option>__shout__go__</option></l><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block-definition><block-definition s="file save prompt name: %&apos;filename&apos; $nl contents: %&apos;body&apos; extension: %&apos;extension&apos;" type="command" category="other"><comment x="0" y="0" w="260.350692471591" collapsed="false">Downloads a file onto the user&apos;s computer.&#xD;URLs are supported, and required for PNG images and possibly other extensions.&#xD;&#xD;Update: Now supports backslashing of URLs to instead get a file with the URL as its binary contents.</comment><header></header><code></code><translations></translations><inputs><input type="%s">filename</input><input type="%mlt">body</input><input type="%s">.txt<options>.txt&#xD;.png&#xD;.rtf&#xD;.sb2&#xD;.sb3&#xD;.xml&#xD;.html</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>contents</l><l>filename</l><l>ext</l></list><l>var pattern = new RegExp(&apos;^(https?:\\/\\/)?&apos;+ // protocol&#xD;    &apos;((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|&apos;+ // domain name&#xD;    &apos;((\\d{1,3}\\.){3}\\d{1,3}))&apos;+ // OR ip (v4) address&#xD;    &apos;(\\:\\d+)?(\\/[-a-z\\d%_.&#126;+]*)*&apos;+ // port and path&#xD;    &apos;(\\?[;&amp;a-z\\d%_.&#126;+=-]*)?&apos;+ // query string&#xD;    &apos;(\\#[-a-z\\d_]*)?$&apos;,&apos;i&apos;); // fragment locator&#xD;if (ext[0] != &apos;.&apos;)&#xD;ext = &apos;.&apos;+ext;&#xD;var lnk = document.createElement(&apos;a&apos;),&#xD;    blob = new Blob([contents]);&#xD;if (pattern.test(contents) || (pattern.test(contents.slice(1)) &amp;&amp;&#xD;pattern[0] == &apos;\\&apos;)){&#xD;lnk.href = contents;&#xD;} else {&#xD;lnk.href = (window.URL||window.webkitURL).createObjectURL(blob);}&#xD;lnk.download = filename + ext;&#xD;lnk.click();</l></block><list><block var="body"/><block var="filename"/><block var="extension"/></list></block></script></block-definition><block-definition s="%&apos;w&apos; flip costume %&apos;cos&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">horizontal<options>horizontal&#xD;vertical</options></input><input type="%s" readonly="true">current<options>§_costumesMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>costume</l></list></block><block s="doSetVar"><l>costume</l><l></l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="w"/><l>horizontal</l></list></block><script><block s="doSetVar"><l>costume</l><block s="reportNewCostumeStretched"><block var="cos"/><l>-100</l><l>100</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="w"/><l>vertical</l></list></block><script><block s="doSetVar"><l>costume</l><block s="reportNewCostumeStretched"><block var="cos"/><l>100</l><l>-100</l></block></block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>cst</l><l>n</l></list><l>cst.name = n;</l></block><list><block var="costume"/><block s="reportGetImageAttribute"><l><option>name</option></l><block var="cos"/></block></list></block><block s="doReport"><block var="costume"/></block></script></block-definition><block-definition s="speech bubble contents" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if(this instanceof StageMorph){&#xD;throw new TypeError("Cannot read property \&#xD;&apos;apply&apos; of undefined");}&#xD;var contents = this.talkBubble();&#xD;if (!contents) return &apos;&apos;;&#xD;contents = contents.contentsMorph;&#xD;if (!(contents instanceof TextMorph))&#xD;return contents;&#xD;return contents.text;</l></block><list></list></block></block></script></block-definition><block-definition s="send notification $nl $- title: %&apos;title&apos; $nl $- text: %&apos;text&apos; $nl $- icon: %&apos;costume&apos; $nl $- image: %&apos;img&apos; $nl $- onclick: %&apos;code&apos;" type="command" category="sensing"><comment x="0" y="0" w="198" collapsed="false">Sends a notification to the user&apos;s device.&#xD;The icon/image parameters take a costume as input and the onclick parameter takes a JavaScript or Snap! function.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Hi there!</input><input type="%txt">How are you today?</input><input type="%s" readonly="true">current<options>§_costumesMenu</options></input><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%cmdRing">this.close();</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>title</l><l>body</l><l>icon</l><l>img</l><l>onclick</l></list><l>if (!("Notification" in window)) console.error("\&#xD;Error", "The notification API is not supported on\n\&#xD;your browser!");&#xD;icon = icon.contents.toDataURL();&#xD;img = img.contents.toDataURL();&#xD;var noti = new Notification(title || "Hi there!",&#xD;{body: body || "How are you today?",&#xD;icon: icon || null,&#xD;image: img || null});&#xD;if (onclick instanceof Function){&#xD;noti.onclick = onclick;&#xD;} else {&#xD;noti.onclick = function () {&#xD;invoke(onclick, new List);&#xD;}}</l></block><list><block var="title"/><block var="text"/><block s="reportNewCostumeStretched"><block var="costume"/><l>100</l><l>100</l></block><block s="reportNewCostumeStretched"><block var="img"/><l>100</l><l>100</l></block><block var="code"/></list></block></script></block-definition><block-definition s="# %&apos;comment&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%mlt">comment...</input></inputs></block-definition><block-definition s="notifications allowed?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return Notification.permission&#xD; == "granted";</l></block><list></list></block></block></script></block-definition><block-definition s="root object" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="clone?"></custom-block><block s="reportAskFor"><block s="reportGet"><l><option>parent</option></l></block><block s="reifyReporter"><autolambda><custom-block s="root object"></custom-block></autolambda><list></list></block><list></list></block><block s="reportObject"><l><option>myself</option></l></block></block></block></script></block-definition><block-definition s="costume from url %&apos;url&apos;" type="reporter" category="looks"><comment x="0" y="0" w="96.36363636363625" collapsed="false">Credit to @programmer_user and @jens</comment><header></header><code></code><translations></translations><inputs><input type="%s">Costumes/alonzo.png<options>function () {&#xD;var obj = {};&#xD;world.children[0].getMediaList(&apos;Costumes&apos;).forEach(image =&gt; {&#xD;obj[image.name] = &apos;Costumes/&apos; + image.fileName;&#xD;})&#xD;return obj;&#xD;}</options></input></inputs><script><custom-block s="let %upvar be %s"><l>costume</l><block s="evaluate"><block s="reportJSFunction"><list><l>url</l></list><l>var img = new Image(),&#xD;    cst = null,&#xD;    canvas;&#xD;img.onload = function() {&#xD;    canvas = document.createElement(&apos;canvas&apos;);&#xD;    canvas.width = img.width;&#xD;    canvas.height = img.height;&#xD;    canvas.getContext(&apos;2d&apos;).drawImage(img, 0, 0);&#xD;    cst = new Costume(canvas);&#xD;}&#xD;img.crossOrigin = &apos;anonymous&apos;;&#xD;img.src = url;&#xD;return () =&gt; cst;</l></block><list><block var="url"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block var="costume"/><list></list></block></block><block s="doReport"><block s="evaluate"><block var="costume"/><list></list></block></block></script></block-definition><block-definition s="set window %&apos;which&apos; to %&apos;data&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">title<options>title&#xD;location</options></input><input type="%s">Snap!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>which</l><l>data</l></list><l>switch (which) {&#xD;case &apos;title&apos;:&#xD;document.title = data;&#xD;break;&#xD;case &apos;location&apos;:&#xD;location.href = data;&#xD;break;&#xD;}</l></block><list><block var="which"/><block var="data"/></list></block></script></block-definition><block-definition s="inform %&apos;body&apos; titled %&apos;title&apos;" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Informs something AND waits until the user has pressed OK.</comment><header></header><code></code><translations></translations><inputs><input type="%s">This is some content!</input><input type="%s">!</input></inputs><script><custom-block s="let %upvar be %s"><l>test</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.inform(title, body, this.world());&#xD;return () =&gt; (isDone);</l></block><list><block var="body"/><block var="title"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block var="test"/><list></list></block></block></script></block-definition><block-definition s="confirm %&apos;body&apos; titled %&apos;title&apos;" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">These blocks are obsolete, use the CUSTOM DIALOG block instead.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Are you sure?</input><input type="%s">?</input></inputs><script><custom-block s="let %upvar be %s"><l>accessors</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function() {&#xD;    isDone = true;&#xD;    result = this.buttons.children[0].userState &#xD;    != &apos;normal&apos;;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.askYesNo(title, body, this.world());&#xD;return new List([() =&gt; isDone, () =&gt; result]);</l></block><list><block var="body"/><block var="title"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="accessors"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="accessors"/></block><list></list></block></block></script></block-definition><block-definition s="prompt %&apos;title&apos; default %&apos;default&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">These blocks are obsolete, use the EDIT BOX block instead.</comment><header></header><code></code><translations></translations><inputs><input type="%s">What&apos;s your name?</input><input type="%s">John Doe</input></inputs><script><custom-block s="let %upvar be %s"><l>accessors</l><block s="evaluate"><block s="reportJSFunction"><list><l>origin</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    result = this.buttons.children[1].userState&#xD;    == &apos;highlight&apos;? false:this.getInput();&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.prompt(title, origin, this.world());&#xD;return new List([() =&gt; isDone, () =&gt; result]);</l></block><list><block var="default"/><block var="title"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="accessors"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="accessors"/></block><list></list></block></block></script></block-definition><block-definition s="%&apos;type&apos; string %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="256" collapsed="false">UPPERCASE:&#xD;Turns the whole string capitalized&#xD;LOWERCASE:&#xD;Turns the whole string decapitalized&#xD;CAPITALIZE:&#xD;Turns the first letter of the string capitalized &#xD;LINED CAPITALIZE:&#xD;Turns the first letter of every line capitalized&#xD;FULL CAPITALIZE:&#xD;Turns the first letter every word of every line capitalized</comment><header></header><code></code><translations>el:_ κειμένου _&#xD;de:_ zeichenfolge _&#xD;</translations><inputs><input type="%s" readonly="true">uppercase<options>uppercase&#xD;lowercase</options></input><input type="%s">Pink girl</input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%s string %s"><block var="type"/><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doWarp"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>uppercase</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return text.toLocaleUpperCase();</l></block><list><block var="string"/></list></block></block></script><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="type"/><l>lowercase</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return text.toLocaleLowerCase();</l></block><list><block var="string"/></list></block></block></script><list></list></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="all but %&apos;fl&apos; %&apos;which&apos; of %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">first<options>first&#xD;last</options></input><input type="%s" readonly="true">letter<options>letter&#xD;word</options></input><input type="%s">world</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="fl"/><l>first</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="which"/><l>word</l></list></block><script><block s="doReport"><custom-block s="combine %l with delimiter %s"><block s="reportCDR"><block s="reportTextSplit"><block var="data"/><block var="which"/></block></block><l> </l></custom-block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportCDR"><block s="reportTextSplit"><block var="data"/><block var="which"/></block></block></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="fl"/><l>last</l></list></block><script><block s="doDeclareVariables"><list><l>res</l></list></block><block s="doSetVar"><l>res</l><custom-block s="copy of %l"><block s="reportTextSplit"><block var="data"/><block var="which"/></block></custom-block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="res"/></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="which"/><l>word</l></list></block><script><block s="doReport"><custom-block s="combine %l with delimiter %s"><block var="res"/><l> </l></custom-block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block var="res"/></list></block></block></script><list></list></block><block s="doReport"><block var="data"/></block></script></block-definition><block-definition s="combine %&apos;data&apos; with delimiter %&apos;delim&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s">,</input></inputs><script><block s="doReport"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block var="delim"/><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="is %&apos;text&apos; %&apos;case&apos; ?" type="predicate" category="operators"><comment x="0" y="0" w="201.66666666666669" collapsed="false">This block checks if the text is upper case, lower case or mixed.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true">upper case<options>upper case&#xD;lower case&#xD;mixed</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="case"/><l>upper case</l></list></block><script><block s="doReport"><block s="reportVariadicIsIdentical"><list><custom-block s="upper case %s"><block var="text"/></custom-block><block var="text"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="case"/><l>lower case</l></list></block><script><block s="doReport"><block s="reportVariadicIsIdentical"><list><custom-block s="lower case %s"><block var="text"/></custom-block><block var="text"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="case"/><l>mixed</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportVariadicIsIdentical"><list><custom-block s="upper case %s"><block var="text"/></custom-block><block var="text"/></list></block></block><block s="reportNot"><block s="reportVariadicIsIdentical"><list><custom-block s="lower case %s"><block var="text"/></custom-block><block var="text"/></list></block></block></list></block></block></script><script><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid input!</l></custom-block></block></script></block></script></block></script></block></script></block-definition><block-definition s="copy of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>id</option></l><block var="data"/></block></block></script></block-definition><block-definition s="latin %&apos;latin&apos; as number" type="reporter" category="operators"><comment x="0" y="0" w="211" collapsed="false">Returns the roman number as actual number&#xD;e.g.&#xD;IV = 4&#xD;XL = 40&#xD;CD = 400&#xD;CLM = 1050&#xD;MMMM = 4000</comment><header></header><code></code><translations>el:λατίνα _ ως νούμερο&#xD;de:Latein _ als zahl&#xD;</translations><inputs><input type="%s">MDCLXVI</input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="setting %s"><l>hyper blocks support</l></custom-block><block s="reportIsA"><block var="latin"/><l><option>list</option></l></block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="latin %s as number"><l></l></custom-block></autolambda><list></list></block><block var="latin"/></block></block></script><list></list></block><block s="doReport"><custom-block s="reduce list %l using %repRing"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><block s="reportCDR"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="each pair"/></block><block var="each letter"/></list></block></autolambda><list><l>each pair</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>I</l><l>1</l></list></block><block s="reportNewList"><list><l>V</l><l>5</l></list></block><block s="reportNewList"><list><l>X</l><l>10</l></list></block><block s="reportNewList"><list><l>L</l><l>50</l></list></block><block s="reportNewList"><list><l>C</l><l>100</l></list></block><block s="reportNewList"><list><l>D</l><l>500</l></list></block><block s="reportNewList"><list><l>M</l><l>1000</l></list></block></list></block></block></block></block></autolambda><list><l>each letter</l></list></block><block s="reportTextSplit"><block var="latin"/><l><option>letter</option></l></block></block><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="#1"/><block var="next"/></list></block><block s="reportVariadicSum"><list><block s="reportDifference"><block var="next"/><block var="#1"/></block><block s="reportDifference"><block var="#2"/><block var="next"/></block></list></block><block s="reportVariadicSum"><list><block var="#1"/><block var="#2"/></list></block></block></autolambda><list><l>#1</l><l>#2</l><l>next</l></list></block></custom-block></block></script></block-definition><block-definition s="number %&apos;number&apos; as latin" type="reporter" category="operators"><comment x="0" y="0" w="318" collapsed="false">Returns the actual number as roman number, Can be slow for large operations.&#xD;e.g.&#xD;4 = IV&#xD;40 = XL&#xD;400 = CD&#xD;1050 = CLM&#xD;4000 = MMMM</comment><header></header><code></code><translations>el:νούμερο _ ως λατίνα&#xD;de:Zahl _ als Latein&#xD;</translations><inputs><input type="%n">1666</input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="setting %s"><l>hyper blocks support</l></custom-block><block s="reportIsA"><block var="number"/><l><option>list</option></l></block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="number %n as latin"><l></l></custom-block></autolambda><list></list></block><block var="number"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="number"/><l>0</l></list></block><script><custom-block s="error %s"><l>Cannot get latin for negative numbers</l></custom-block></script><list></list></block><block s="doDeclareVariables"><list><l>symbols</l><l>output</l></list></block><block s="doSetVar"><l>symbols</l><block s="reportNewList"><list><block s="reportNewList"><list><l>I</l><l>1</l></list></block><block s="reportNewList"><list><l>V</l><l>5</l></list></block><block s="reportNewList"><list><l>X</l><l>10</l></list></block><block s="reportNewList"><list><l>L</l><l>50</l></list></block><block s="reportNewList"><list><l>C</l><l>100</l></list></block><block s="reportNewList"><list><l>D</l><l>500</l></list></block><block s="reportNewList"><list><l>M</l><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>output</l><l></l></block><block s="doUntil"><block s="reportVariadicEquals"><list><block var="number"/><l>0</l></list></block><script><block s="doDeclareVariables"><list><l>symbol</l><l>higher</l></list></block><block s="doSetVar"><l>symbol</l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="symbols"/></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="value"/></block><block var="number"/></list></block><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>2</l><block s="reportListItem"><block s="reportVariadicSum"><list><block var="index"/><l>1</l></list></block><block var="symbols"/></block></block><block var="number"/></list></block></list></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block var="symbols"/></block></block><block s="doSetVar"><l>higher</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportListIndex"><block var="symbol"/><block var="symbols"/></block><l>1</l></list></block><block var="symbols"/></block></block><block s="doIf"><block var="higher"/><script><block s="doFor"><l>i</l><l>1</l><block s="reportListIndex"><block var="symbol"/><block var="symbols"/></block><script><block s="doIf"><block var="higher"/><script><block s="doDeclareVariables"><list><l>sn</l><l>hn</l></list></block><block s="doSetVar"><l>sn</l><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="i"/><block var="symbols"/></block></block></block><block s="doSetVar"><l>hn</l><block s="reportListItem"><l>2</l><block var="higher"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicNotEquals"><list><block s="reportDifference"><block var="hn"/><block var="sn"/></block><block var="sn"/></list></block><block s="reportVariadicEquals"><list><block s="reportDifference"><block var="hn"/><block var="sn"/></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="number"/><block var="sn"/></block></block><block var="sn"/></list></block></list></block></list></block><script><block s="doSetVar"><l>output</l><block s="reportJoinWords"><list><block var="output"/><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="symbols"/></block></block><block s="reportListItem"><l>1</l><block var="higher"/></block></list></block></block><block s="doChangeVar"><l>number</l><block s="reportDifference"><l></l><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="number"/><block var="sn"/></block></block><block var="sn"/></list></block></block></block><block s="doSetVar"><l>higher</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>i</l><block s="reportVariadicSum"><list><block s="reportListAttribute"><l><option>length</option></l><block var="symbols"/></block><l>1</l></list></block></block></script><list></list></block></script><list></list></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicNotEquals"><list><block var="higher"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doSetVar"><l>output</l><block s="reportJoinWords"><list><block var="output"/><block s="reportListItem"><l>1</l><block var="symbol"/></block></list></block></block><block s="doChangeVar"><l>number</l><block s="reportDifference"><l></l><block s="reportListItem"><l>2</l><block var="symbol"/></block></block></block></script><list></list></block></script></block><block s="doReport"><block var="output"/></block></script></block></script></block-definition><block-definition s="%&apos;first&apos; $- %&apos;option&apos; $- %&apos;second&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">raincoat</input><input type="%s" readonly="true">contains<options>contains&#xD;starts with&#xD;ends with</options></input><input type="%s">coat</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="option"/><l>contains</l></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return a.includes(b);</l></block><list><block var="first"/><block var="second"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="option"/><l>starts with</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="letters %n - %n of %txt"><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="second"/></block><block var="first"/></custom-block><block var="second"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="option"/><l>ends with</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="reverse string %s"><custom-block s="letters %n - %n of %txt"><block s="reportTextAttribute"><l><option>length</option></l><block var="first"/></block><block s="reportVariadicSum"><list><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="first"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="second"/></block></block><l>1</l></list></block><block var="first"/></custom-block></custom-block><block var="second"/></list></block></block></script><list></list></block><block s="doReport"><l></l></block></script><scripts><script x="85.46191406250003" y="72.66666666666666"><block var="which"/></script><script x="134.2822265625" y="166.16666666666669"><block var="which"/></script></scripts></block-definition><block-definition s="letters %&apos;a&apos; - %&apos;b&apos; of %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">3</input><input type="%txt">world</input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><custom-block s="setting %s"><l>hyper blocks support</l></custom-block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="letters %n - %n of %txt"><block var="a"/><block var="b"/><l></l></custom-block></autolambda><list></list></block><block var="text"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportLetter"><block s="reportNumbers"><block var="a"/><block var="b"/></block><block var="text"/></block></list></block></block></script></block-definition><block-definition s="reverse string %&apos;string&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">world</input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l></l></list></block></block></script></block-definition><block-definition s="scramble string %&apos;str&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">world</input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportTextSplit"><block var="str"/><l><option>letter</option></l></block><block s="reifyReporter"><autolambda><block s="reportIfElse"><custom-block s="%n % chance true"><l>50</l></custom-block><block s="reportJoinWords"><list><block var="#2"/><block var="#1"/></list></block><block s="reportJoinWords"><list><block var="#1"/><block var="#2"/></list></block></block></autolambda><list><l>#1</l><l>#2</l></list></block></block></block></script></block-definition><block-definition s="shuffle %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCombine"><block var="data"/><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportIfElse"><block s="reportNot"><block s="reportRandom"><l>0</l><l>1</l></block></block><block s="reportNewList"><list><block var="#2"/><block var="#1"/></list></block><block s="reportNewList"><list><block var="#1"/><block var="#2"/></list></block></block></block></autolambda><list><l>#1</l><l>#2</l></list></block></block></block></script></block-definition><block-definition s="write %&apos;txt&apos; size %&apos;size&apos; with wrapping" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%mlt">Hello!&#xD;How are you?&#xD;Are you okay?</input><input type="%n">12</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>origin</l><l>newline</l><l>sbl</l><l>offset</l><l>prev</l></list></block><block s="doSetVar"><l>origin</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block><block s="direction"></block></list></block></block><block s="doSetVar"><l>newline</l><block s="reifyScript"><script><block s="doSetVar"><l>prev</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="origin"/></block></block><block s="turn"><l>90</l></block><block s="forward"><block s="reportVariadicProduct"><list><block var="x"/><block var="size"/></list></block></block><block s="turnLeft"><l>90</l></block><block s="doIfElse"><block var="prev"/><script><block s="down"></block></script><script><block s="up"></block></script></block></script><list><l>x</l></list></block></block><block s="doSetVar"><l>sbl</l><block s="reportTextSplit"><block var="txt"/><l><option>line</option></l></block></block><custom-block s="for %upvar %upvar in %l %ca"><l>index</l><l>line</l><block var="sbl"/><script><custom-block s="for %upvar %upvar in %l %ca"><l>idx</l><l>word</l><block s="reportTextSplit"><block var="line"/><l> </l></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportVariadicSum"><list><block s="xPosition"></block><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportQuotient"><l>7</l><l>12</l></block><block var="size"/></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block></list></block></list></block><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block></list></block><script><block s="doRun"><block var="newline"/><list><block s="reportVariadicSum"><list><block var="index"/><block var="offset"/></list></block></list></block><block s="doChangeVar"><l>offset</l><l>1</l></block></script><list></list></block><block s="write"><block var="word"/><block var="size"/></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="idx"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="line"/><l> </l></block></block></list></block></block><script><block s="write"><l> </l><block var="size"/></block></script><list></list></block></script></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="sbl"/></block></list></block></block><script><block s="doRun"><block var="newline"/><list><block s="reportVariadicSum"><list><block var="index"/><block var="offset"/></list></block></list></block></script><list></list></block></script></custom-block><block s="setHeading"><block s="reportListItem"><l>2</l><block var="origin"/></block></block></script></block></script></block-definition><block-definition s="for %&apos;index&apos; %&apos;value&apos; in %&apos;data&apos; %&apos;function&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doForEach"><l>item</l><block var="data"/><script><block s="doSetVar"><l>value</l><block var="item"/></block><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doRun"><block var="function"/><list></list></block></script></block></script></block-definition><block-definition s="all %&apos;which&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="227.9876302083336" collapsed="false">Sprites: All the sprites (not including the stage).&#xD;Clones: Every clone from every sprite.&#xD;Objects: Both sprites and clones.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">sprites<options>sprites&#xD;clones&#xD;objects</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>sprites</l></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportAskFor"><l></l><block s="reifyReporter"><autolambda><block s="reportVariadicEquals"><list><block s="reportGet"><l><option>parent</option></l></block><l></l></list></block></autolambda><list></list></block><list></list></block></autolambda><list></list></block><block s="reportAskFor"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>other sprites</option></l></block></autolambda><list></list></block><list></list></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>clones</l></list></block><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportAskFor"><l></l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>clones</option></l></block></autolambda><list></list></block><list></list></block></autolambda><list></list></block><custom-block s="all %s"><l>sprites</l></custom-block></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>objects</l></list></block><block s="reportConcatenatedLists"><list><custom-block s="all %s"><l>sprites</l></custom-block><custom-block s="all %s"><l>clones</l></custom-block></list></block><block s="reportNewList"><list></list></block></block></block></block></block></script></block-definition><block-definition s="am I a clone?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIsA"><block s="reportGet"><l><option>parent</option></l></block><l><option>sprite</option></l></block></block></script></block-definition><block-definition s="pos %&apos;n&apos; in %&apos;small&apos; - %&apos;large&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">11</input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><custom-block s="%s %s %s"><block var="small"/><l>max</l><custom-block s="%s %s %s"><block var="n"/><l>min</l><block var="large"/></custom-block></custom-block></block></script></block-definition><block-definition s="indices of %&apos;small&apos; in text %&apos;large&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">o</input><input type="%txt">hello world</input></inputs><script><block s="doDeclareVariables"><list><l>total</l></list></block><block s="doReport"><custom-block s="all but %n of %l"><l>last</l><block s="reportMap"><block s="reifyScript"><script><block s="doChangeVar"><l>total</l><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="x"/></block><l>1</l></list></block></block><block s="doReport"><block var="total"/></block></script><list><l>x</l></list></block><block s="reportTextSplit"><block var="large"/><block var="small"/></block></block></custom-block></block></script></block-definition><block-definition s="all but %&apos;which&apos; of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n">first<options>first&#xD;last</options></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>which</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>first</l></list></block><l>1</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>last</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><block var="which"/></block></block></block><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicNotEquals"><list><block var="index"/><block var="which"/></list></block></autolambda><list><l>value</l><l>index</l></list></block><block var="list"/></block></block></script></block-definition><block-definition s="unpause all $pointRight-1.1-255-220-0" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Unpause each paused process.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>world.children[0].stage.threads.processes.forEach(&#xD;function (proc) {&#xD;proc.isPaused = false;&#xD;})</l></block><list></list></block></script></block-definition><block-definition s="$flash indices of %&apos;item&apos; in %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s">thing</input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><l></l><block s="reportMonadic"><l><option>sqrt</option></l><l>577</l></block></list></block></block></autolambda><list></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="x"/><block var="item"/></list></block><block var="y"/><block s="reportMonadic"><l><option>sqrt</option></l><l>577</l></block></block></autolambda><list><l>x</l><l>y</l></list></block><block var="data"/></block></block></block></script></block-definition><block-definition s="my resolution" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>function fix(n) {&#xD;return (Math.round((n * (10 ^ 15)))) / (10 ^ 15);&#xD;}&#xD;return new List([&#xD;      fix(this.bounds.width()),&#xD;           fix(this.bounds.height())&#xD;]);</l></block><list></list></block></block></script></block-definition><block-definition s="index of %&apos;small&apos; in text %&apos;large&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">a</input><input type="%s">cat</input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="large"/><block var="small"/></block></block></block><l>1</l></list></block></block></script></block-definition><block-definition s="directory item %&apos;indices&apos; of %&apos;array&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="indices"/></block><l>1</l></list></block><script><block s="doReport"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="indices"/></block><block var="array"/></block></block></script><script><block s="doReport"><custom-block s="directory item %l of %l"><block s="reportCDR"><block var="indices"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="indices"/></block><block var="array"/></block></custom-block></block></script></block></script></block-definition><block-definition s="constant %&apos;which&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">pi<options>e&#xD;pi&#xD;phi&#xD;weekdays&#xD;months&#xD;latin alphabet</options></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block var="which"/><block s="reportNewList"><list><l>pi</l><l>phi</l><l>e</l><l>weekdays</l><l>months</l><l>latin alphabet</l></list></block></block><block s="reportNewList"><list><l>3.14159265358</l><l>1.61803398875</l><l>2.71828182845</l><block s="reportNewList"><list><l>Sunday</l><l>Monday</l><l>Tuesday</l><l>Wednesday</l><l>Thursday</l><l>Friday</l><l>Saturday</l></list></block><block s="reportNewList"><list><l>January</l><l>February</l><l>March</l><l>April</l><l>May</l><l>June</l><l>July</l><l>August</l><l>September</l><l>October</l><l>November</l><l>December</l></list></block><block s="reportTextSplit"><l>abcdefghijklmnopqrstuvwxyz</l><l><option>letter</option></l></block></list></block></block></block></script></block-definition><block-definition s="set pen to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos; a: %&apos;a&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n">255</input><input type="%n">220</input><input type="%n">0</input><input type="%n">255</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>r,g,b,a</l></list><l>this.color = new Color(&#xD;r, g, b, a);</l></block><list><block var="r"/><block var="g"/><block var="b"/><block var="a"/></list></block></script></block-definition><block-definition s="glide %&apos;n&apos; secs to %&apos;object&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%s" readonly="true">mouse-pointer<options>function () {&#xD;var object = {&#xD;&quot;random position&quot; : &quot;random position&quot;,&#xD;&quot;mouse-pointer&quot; : &quot;mouse-pointer&quot;,&#xD;&quot;center&quot; : &quot;center&quot;,&#xD;&quot;&#126;&quot;: &quot;&#126;&quot;,&#xD;};&#xD;var spritesObj = {},&#xD;homeSprite = world.children[0].currentSprite || {name:null};&#xD;world.children[0].sprites.itemsArray().map(e=&gt;e.name).forEach(&#xD;function (spriteName){&#xD;if (spriteName != homeSprite.name){&#xD;spritesObj[spriteName] = spriteName;&#xD;}})&#xD;if (Object.keys(spritesObj).length &lt; 1){&#xD;delete object[&quot;&#126;&quot;];&#xD;}&#xD;return Object.assign(object, spritesObj);&#xD;}</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="object"/><l>mouse-pointer</l></list></block><script><block s="doSetVar"><l>object</l><block s="reportNewList"><list><block s="reportMouseX"></block><block s="reportMouseY"></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="object"/><l>random position</l></list></block><script><block s="doSetVar"><l>object</l><block s="reportNewList"><list><block s="reportRandom"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block></block><block s="reportRandom"><block s="reportAttributeOf"><l><option>bottom</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="object"/><l>center</l></list></block><script><block s="doSetVar"><l>object</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></block></script><script><block s="doIfElse"><block s="reportNot"><block s="reportListContainsItem"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportAskFor"><l></l><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>name</option></l></block></autolambda><list></list></block><list></list></block></autolambda><list></list></block><block s="reportCONS"><block s="reportObject"><l><option>myself</option></l></block><block s="reportGet"><l><option>other sprites</option></l></block></block></block><block var="object"/></block></block><script><block s="doSetVar"><l>object</l><custom-block s="my coordinates"></custom-block></block></script><script><block s="doSetVar"><l>object</l><block s="evaluate"><block s="reportAttributeOf"><block s="reifyReporter"><autolambda><custom-block s="my coordinates"></custom-block></autolambda><list></list></block><block var="object"/></block><list></list></block></block></script></block></script></block></script></block></script></block><block s="doGlide"><block var="n"/><block s="reportListItem"><l>1</l><block var="object"/></block><block s="reportListItem"><l>2</l><block var="object"/></block></block></script></block-definition><block-definition s="replace %&apos;find&apos; in %&apos;text&apos; with %&apos;replace&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">apples</input><input type="%txt">I like apples</input><input type="%s">bananas</input></inputs><script><block s="doReport"><custom-block s="combine %l with delimiter %s"><block s="reportTextSplit"><block var="text"/><block var="find"/></block><block var="replace"/></custom-block></block></script></block-definition><block-definition s="remove all %&apos;thing&apos; in %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">a</input><input type="%s">steam</input></inputs><script><block s="doReport"><custom-block s="replace %s in %txt with %s"><block var="thing"/><block var="text"/><l></l></custom-block></block></script></block-definition><block-definition s="reverse sound %&apos;snd&apos;" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_soundsMenu</options></input></inputs><script><block s="doReport"><block s="reportNewSoundFromSamples"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="s"/></block><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListAttribute"><l><option>reverse</option></l><l/></block></autolambda><list></list></block><block var="s"/></block><block s="reportListAttribute"><l><option>reverse</option></l><block var="s"/></block></block></autolambda><list><l>s</l></list></block><list><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="snd"/></block></list></block><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="snd"/></block></block></block></script></block-definition><block-definition s="sound from url %&apos;url&apos;" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s">Sounds/Chord.wav<options>function () {&#xD;var obj = {};&#xD;world.children[0].getMediaList(&apos;Sounds&apos;).forEach(audio =&gt; {&#xD;obj[audio.name] = &apos;Sounds/&apos; + audio.fileName;&#xD;})&#xD;return obj;&#xD;}</options></input></inputs><script><custom-block s="let %upvar be %s"><l>sound</l><block s="evaluate"><block s="reportJSFunction"><list><l>src</l></list><l>var audio = new Audio(src),&#xD;    sound = null;&#xD;audio.addEventListener(&apos;loadeddata&apos;, () =&gt; {&#xD; sound = new Sound(audio);&#xD;})&#xD;return () =&gt; sound;</l></block><list><block var="url"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block var="sound"/><list></list></block></block><block s="doReport"><block s="evaluate"><block var="sound"/><list></list></block></block></script></block-definition><block-definition s="point resize costume %&apos;costume&apos; by factor %&apos;factor&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">current<options>§_costumesMenu</options></input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>height</l><l>width</l><l>old pixels</l></list></block><block s="doSetVar"><l>height</l><block s="reportGetImageAttribute"><l><option>height</option></l><block var="costume"/></block></block><block s="doSetVar"><l>width</l><block s="reportGetImageAttribute"><l><option>width</option></l><block var="costume"/></block></block><block s="doSetVar"><l>old pixels</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block></block><block s="doSetVar"><l>factor</l><block var="factor"/></block><block s="doReport"><block s="reportNewCostume"><block s="reportReshape"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportReshape"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportReshape"><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><block var="width"/></list></block><block var="w"/></list></block><block var="old pixels"/></block><list><block var="factor"/><l>4</l></list></block></autolambda><list><l>w</l></list></block><block s="reportNumbers"><l>1</l><block var="width"/></block></block><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block var="width"/><block var="factor"/></list></block><block var="factor"/></list></block><l>4</l></list></block></autolambda><list><l>h</l></list></block><block s="reportNumbers"><l>0</l><block s="reportDifference"><block var="height"/><l>1</l></block></block></block><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block var="height"/><block var="width"/></list></block><block s="reportVariadicProduct"><list><block var="factor"/><block var="factor"/></list></block></list></block><l>4</l></list></block><block s="reportVariadicProduct"><list><block var="factor"/><block var="width"/></list></block><block s="reportVariadicProduct"><list><block var="factor"/><block var="height"/></list></block></block></block></script></block-definition><block-definition s="matrix %&apos;rows&apos; × %&apos;cols&apos; with: %&apos;fill&apos;" type="reporter" category="lists"><comment x="0" y="0" w="178.10225497159078" collapsed="false">Improved block from @wunder_wulfe using reshape and with italic dropdown option</comment><header></header><code></code><translations></translations><inputs><input type="%n">4</input><input type="%n">3</input><input type="%n">0<options>function() {&#xD;return {&#xD;&quot;identity&quot;: [&quot;identity&quot;]&#xD;};&#xD;}</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><block var="fill"/></block><l>identity</l></list></block><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyPredicate"><autolambda><block s="reportDifference"><block s="reportVariadicEquals"><list><block var="x"/><block var="y"/></list></block><l>0</l></block></autolambda><list><l>x</l></list></block><block s="reportNumbers"><l>1</l><block var="cols"/></block></block></autolambda><list><l>y</l></list></block><block s="reportNumbers"><l>1</l><block var="rows"/></block></block></block></script><list></list></block><block s="doReport"><block s="reportReshape"><block var="fill"/><list><block var="rows"/><block var="cols"/></list></block></block></script></block-definition><block-definition s="set font to %&apos;name&apos; $nl bold? %&apos;bold&apos; italic? %&apos;italic&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s">monospace<options>arial&#xD;cursive&#xD;monospace</options></input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l><l>bold</l><l>italic</l></list><l>if (!this.loadedFontsAPI){&#xD; this.loadedFontsAPI = true;&#xD; this.font = &apos;monospace&apos;;&#xD; this.bold = "";&#xD; this.italic = "";&#xD; SpriteMorph.prototype.write = function (text, size) {&#xD;    // thanks to Michael Ball for contributing this code!&#xD;    if (typeof text !== &apos;string&apos; &amp;&amp; typeof text !== &apos;number&apos;) {&#xD;        throw new Error(&#xD;            &apos;LABEL can only draw text or numbers, not a &apos; +&#xD;            typeof text&#xD;        );&#xD;    }&#xD;&#xD;    var stage = this.parentThatIsA(StageMorph),&#xD;        context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;        rotation = radians(this.direction() - 90),&#xD;        trans = new Point(&#xD;            this.rotationCenter().x - stage.left(),&#xD;            this.rotationCenter().y - stage.top()&#xD;        ),&#xD;        len,&#xD;        pos;&#xD;&#xD;    context.save();&#xD;    context.font = this.italic + "normal " + this.bold + size + &apos;px &apos; + this.font;&#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;    );&#xD;    pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;    this.gotoXY(pos.x, pos.y, false);&#xD;    this.changed();&#xD;    stage.changed();&#xD;}}&#xD;this.font = name;&#xD;this.bold = bold? "bold ":"normal "&#xD;this.italic = italic? "italic ":"normal ";</l></block><list><block var="name"/><block var="bold"/><block var="italic"/></list></block></script></block-definition><block-definition s="font %&apos;which&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">name<options>name&#xD;bold?&#xD;italic?</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l></list><l>if (!this.loadedFontsAPI){&#xD; this.font = &apos;monospace&apos;;&#xD; this.loadedFontsAPI = true;&#xD; SpriteMorph.prototype.write = function (text, size) {&#xD;    // thanks to Michael Ball for contributing this code!&#xD;    if (typeof text !== &apos;string&apos; &amp;&amp; typeof text !== &apos;number&apos;) {&#xD;        throw new Error(&#xD;            &apos;LABEL can only draw text or numbers, not a &apos; +&#xD;            typeof text&#xD;        );&#xD;    }&#xD;&#xD;    var stage = this.parentThatIsA(StageMorph),&#xD;        context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;        rotation = radians(this.direction() - 90),&#xD;        trans = new Point(&#xD;            this.rotationCenter().x - stage.left(),&#xD;            this.rotationCenter().y - stage.top()&#xD;        ),&#xD;        len,&#xD;        pos;&#xD;&#xD;    context.save();&#xD;    context.font = this.bold + this.italic + size + &apos;px &apos; + this.font;&#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;    );&#xD;    pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;    this.gotoXY(pos.x, pos.y, false);&#xD;    this.changed();&#xD;    stage.changed();&#xD;}}&#xD;switch (which){&#xD; case "bold?":&#xD;  return this.bold === &apos;bold &apos;;&#xD; case "italic?":&#xD;  return this.italic === &apos;italic &apos;;&#xD; default:&#xD;  return this.font;&#xD;}</l></block><list><block var="which"/></list></block></block></script></block-definition><block-definition s="clipboard %&apos;which&apos;" type="reporter" category="control"><comment x="0" y="0" w="117.27272727272727" collapsed="false">Fetch clipboard contents as costume or plaintext.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">text<options>text&#xD;image</options></input></inputs><script><block s="doDeclareVariables"><list><l>clip</l></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="which"/><l>image</l></list></block><script><block s="doSetVar"><l>clip</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var item = null,&#xD;    thing = null;&#xD;&#xD;function error(txt){done = true; console.error(txt);}&#xD;&#xD;function loadImage(url){&#xD;  return new Promise((resolve, reject) =&gt; {&#xD;    var img = new Image();&#xD;    img.onload = () =&gt; resolve( img);&#xD;    img.onerror = reject;&#xD;    img.src = url;&#xD;  })&#xD;}&#xD;&#xD;(async () =&gt; {&#xD;  if("clipboard" in navigator) {&#xD;	try{	&#xD;        var clipData = await navigator.clipboard.read();&#xD;        console.log(clipData);&#xD;	&#xD;&#xD;		const item = clipData.find(v =&gt; v.types.includes("image/png"));&#xD;		if(!item)&#xD;   thing = "";&#xD;			error("No image data");&#xD;&#xD;		blob = await item.getType("image/png");&#xD;		var url = (window.URL || window.webkitURL).createObjectURL(blob);&#xD;		var img = await loadImage(url);&#xD;		canvas = newCanvas(new Point(img.width, img.height), true);&#xD;		canvas.getContext(&apos;2d&apos;).drawImage(img, 0, 0);&#xD;		thing = new Costume(canvas, "clipboard");&#xD;    }&#xD;    catch(err){thing="";error("Can&apos;t get PNG data: "+err.message)};&#xD;  }&#xD; else {thing="";error("Cannot access clipboard")}&#xD;})();&#xD;return () =&gt; thing;</l></block><list></list></block></block></script><script><block s="doSetVar"><l>clip</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var result = null;&#xD;navigator.clipboard.readText().then(&#xD;e=&gt;result=e,e=&gt;result=&apos;&apos;);&#xD;return () =&gt; result;</l></block><list></list></block></block></script></block><block s="doWaitUntil"><block s="reportVariadicOr"><list><block s="evaluate"><block var="clip"/><list></list></block><block s="reportVariadicEquals"><list><block s="evaluate"><block var="clip"/><list></list></block><l></l></list></block></list></block></block><block s="doReport"><block s="evaluate"><block var="clip"/><list></list></block></block></script></block-definition><block-definition s="custom dialog, title %&apos;title&apos; costume %&apos;cst&apos; body %&apos;body&apos; $nl button names %&apos;variadic&apos; on button clicks %&apos;cvariadic&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%mlt"></input><input type="%mult%txt"></input><input type="%mult%cmdRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>title,body,names,actions,cst,proc</l></list><l>let _txt;&#xD;&#xD; function autoscroll(textString) {&#xD;   _txt = new TextMorph(&#xD;           textString&#xD;           ,box.fontSize&#xD;           ,box.fontStyle&#xD;           ,true&#xD;           ,false&#xD;           ,&apos;center&apos;&#xD;           ,null&#xD;           ,null&#xD;           ,MorphicPreferences.isFlat ? null : new Point(1, 1)&#xD;           ,WHITE&#xD;     )&#xD;     let maxHeight, scroller;&#xD;      &#xD;     maxHeight = Math.min( world.height() - box.titleFontSize * 30, _txt.height());&#xD;     _txt.enableLinks = true;&#xD;       &#xD;     scroller = new ScrollFrameMorph();&#xD;     scroller.acceptsDrops = false;&#xD;     scroller.contents.acceptsDrops = false;&#xD;     scroller.bounds.setWidth(_txt.width());&#xD;     scroller.bounds.setHeight(maxHeight);&#xD;     scroller.addContents( _txt);&#xD;     scroller.color = new Color(0, 0, 0, 0);&#xD;     return scroller;&#xD;    }&#xD;&#xD;names = names.asArray();&#xD;let scs = actions.asArray();&#xD;actions = actions.asArray().map(_=&gt;function doAction(){if(doAction.e==&apos;close&apos;){this.destroy();}else{invoke(doAction.e,new List());this.destroy()}});&#xD;actions.forEach((e,f)=&gt;{e.e=scs[f];e.f=proc})&#xD;var box = new DialogBoxMorph();&#xD;box.labelString = title;&#xD;box.createLabel();&#xD;box.label.isBold = true;&#xD;if(cst !== ""){&#xD;  box.setPicture(proc.reportNewCostumeStretched(cst,100,100).contents);&#xD;};&#xD;box.addBody(autoscroll( body));&#xD;box.body.fixLayout();&#xD;names.forEach((e, f) =&gt; {&#xD;box.addButton(actions[f], e);&#xD;})&#xD;box.fixLayout();&#xD;box.popUp(this.world());</l></block><list><block var="title"/><block var="body"/><block var="variadic"/><block var="cvariadic"/><block var="cst"/></list></block></script></block-definition><block-definition s="edit box title %&apos;title&apos; pic %&apos;cst&apos; $nl body %&apos;body&apos; desc %&apos;desc&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%mlt"></input><input type="%mlt"></input></inputs><script><block s="doDeclareVariables"><list><l>res</l><l>result</l></list></block><block s="doSetVar"><l>res</l><block s="evaluate"><block s="reportJSFunction"><list><l>title,cst,body,desc,proc</l></list><l>let res = false,&#xD;    cancel = false;&#xD;&#xD;var box = new DialogBoxMorph();&#xD;box.ok = body=&gt;{res = box.getInput(); box.destroy()};&#xD;box.cancel = body=&gt;{cancel = true; res = true; box.destroy()};&#xD;box.destroy = body=&gt;{if (!cancel) {res = box.getInput();}else{res=true;}&#xD;    (function() {&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;    }).call(box);}&#xD;box.promptCode(&#xD;    title,&#xD;    body,&#xD;    this.world(),&#xD;    (cst !== "")?&#xD;    proc.reportNewCostumeStretched(cst, 100, 100).contents&#xD;    :undefined,&#xD;    desc&#xD;);&#xD;&#xD;return () =&gt; res;</l></block><list><block var="title"/><block var="cst"/><block var="body"/><block var="desc"/></list></block></block><block s="doUntil"><block s="reportVariadicOr"><list><block var="result"/><block s="reportVariadicEquals"><list><block var="result"/><l></l></list></block></list></block><script><block s="doSetVar"><l>result</l><block s="evaluate"><block var="res"/><list></list></block></block></script></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="result"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportBoolean"><l><bool>false</bool></l></block><block var="result"/></block></block></script></block-definition><block-definition s="%&apos;kind&apos; of %&apos;list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="194" collapsed="false">Based on the [ v] of [=] block but not only has the size option but also allows you to put an input into the left slot</comment><header></header><code></code><translations>el:_ του _&#xD;de:_ von _&#xD;</translations><inputs><input type="%s" readonly="true">length<options>length&#xD;size&#xD;rank&#xD;shape&#xD;ravel&#xD;transpose&#xD;csv&#xD;json&#xD;lines</options></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="kind"/><l>lines</l></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><custom-block s="%s of %l"><l>rank</l><l/></custom-block><l>1</l></list></block><block s="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block s="reportUnicodeAsLetter"><l>10</l></block><l></l></list></block></autolambda><list></list></block></block><custom-block s="report error %s"><l>unable to convert to lines</l></custom-block></block><block s="evaluate"><block s="reportJSFunction"><list><l>list</l><l>option</l></list><l>    switch (option) {&#xD;    case &apos;length&apos;:&#xD;        return list.length();&#xD;    case &apos;size&apos;:&#xD;        return list.size();&#xD;    case &apos;rank&apos;:&#xD;        return list.rank();&#xD;    case &apos;shape&apos;:&#xD;        return list.shape();&#xD;    case &apos;ravel&apos;:&#xD;        return list.ravel();&#xD;    case &apos;transpose&apos;:&#xD;        return list.transpose();&#xD;    case &apos;csv&apos;:&#xD;        if (list.canBeCSV()) {&#xD;            return list.asCSV();&#xD;        }&#xD;        throw new Error(&apos;unable to convert to CSV&apos;);&#xD;    case &apos;json&apos;:&#xD;        if (list.canBeJSON()) {&#xD;            return list.asJSON();&#xD;        }&#xD;        throw new Error(&apos;unable to convert to JSON&apos;);&#xD;    default:&#xD;        return 0;&#xD;    }</l></block><list><block var="list"/><block var="kind"/></list></block></block></block></script></block-definition><block-definition s="is %&apos;list&apos; %&apos;which&apos; ?" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s" readonly="true">empty<options>circular&#xD;scalar&#xD;empty&#xD;flat</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>prop</l><l>list</l><l>proc</l></list><l>if (!(list instanceof List)){&#xD; throw new Error("expecting list but getting " +&#xD; ((list === 0)? "nothing":proc.reportTypeOf(list)));&#xD;}&#xD;switch (prop) {&#xD; case "empty":&#xD;  return list.isEmpty();&#xD; case "flat":&#xD;  try {&#xD;   return list.rank() &lt; 2;&#xD;  } catch (e) {&#xD;   return false;&#xD;  }&#xD; case "circular":&#xD;  return list.itemsArray().some(i =&gt; list === i);&#xD; case "scalar":&#xD;  const isScalar = function(x) {&#xD;                    if (!(x instanceof List)){&#xD;                     return true;&#xD;                    } else {&#xD;                     return x.length() == 1&#xD;                     &amp;&amp; isScalar(x.at(1));&#xD;                    }}&#xD;  return isScalar(list);&#xD; default:&#xD;  return "";&#xD;}</l></block><list><block var="which"/><block var="list"/></list></block></block></script></block-definition><block-definition s="is %&apos;txt&apos; valid JSON?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mlt">{"foo":"bar"}</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>txt</l></list><l>try {&#xD; let tmp = JSON.parse(txt);&#xD; return true;&#xD;} catch (e) {&#xD; return false;&#xD;}</l></block><list><block var="txt"/></list></block></block></script></block-definition><block-definition s="costume %&apos;cst&apos; made %&apos;p&apos; % as opaque" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">current<options>§_costumesMenu</options></input><input type="%n">50</input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportListItem"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><l/></block><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block s="reportListItem"><l>4</l><l/></block><block s="reportQuotient"><block var="p"/><l>100</l></block></list></block></list></block></list></block></autolambda><list></list></block><block s="reportGetImageAttribute"><l><option>pixels</option></l><l><option>current</option></l></block></block><block s="reportGetImageAttribute"><l><option>width</option></l><l><option>current</option></l></block><block s="reportGetImageAttribute"><l><option>height</option></l><l><option>current</option></l></block></block></block></script></block-definition><block-definition s="symbol %&apos;type&apos; at size %&apos;size&apos; color %&apos;color&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">Notes<options>function() {&#xD;var obj = {};&#xD;Object.keys(SymbolMorph.prototype)&#xD;.filter(e =&gt; e.includes(&quot;renderSymbol&quot;))&#xD;.map(e =&gt; e.replace(&quot;renderSymbol&quot;, &quot;&quot;))&#xD;.filter(e =&gt; e !== &quot;ClosedBrushPath&quot; &amp;&amp; e !== &quot;Stop&quot;)&#xD;.sort()&#xD;.forEach(e =&gt; obj[e] = e);&#xD;return obj;&#xD;}</options></input><input type="%n">50</input><input type="%clr">rgba(0,0,0,255)</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>type</l><l>size</l><l>color</l></list><l>if ("renderSymbol" + type in SymbolMorph.prototype){&#xD; return new Costume((new SymbolMorph(type.charAt(0).toLowerCase() +&#xD;                                     type.slice(1), size, color)).fullImage(), type);&#xD;} else {return false;}</l></block><list><block var="type"/><block var="size"/><block var="color"/></list></block></block></script></block-definition><block-definition s="clamp %&apos;num&apos; between %&apos;low&apos; and %&apos;high&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">-1</input><input type="%n">1</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="clamp %n between %n and %n"><l></l><block var="low"/><block var="high"/></custom-block></autolambda><list></list></block><block var="num"/></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicMax"><list><block var="low"/><block s="reportVariadicMin"><list><block var="num"/><block var="high"/></list></block></list></block></block></script></block-definition><block-definition s="lerp from: %&apos;from&apos; to: %&apos;to&apos; by %&apos;percent&apos; %" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">10</input><input type="%n">75</input></inputs><script><block s="doReport"><block s="evaluate"><custom-block s="hyperize function %repRing"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block var="from"/><block s="reportVariadicProduct"><list><block s="reportDifference"><block var="to"/><block var="from"/></block><block s="reportQuotient"><block var="percent"/><l>100</l></block></list></block></list></block></autolambda><list><l>from</l><l>to</l></list></block></custom-block><list><block var="from"/><block var="to"/></list></block></block></script></block-definition><block-definition s="hyperize function %&apos;func&apos;" type="reporter" category="control"><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><l>scalar?</l><l>scalar-value</l></list></block><block s="doSetVar"><l>scalar?</l><block s="reifyScript"><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><list></list></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportCombine"><block s="reportListAttribute"><l><option>dimensions</option></l><block var="x"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>1</l></list></block></block></script><list><l>x</l></list></block></block><block s="doSetVar"><l>scalar-value</l><block s="reifyScript"><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><list></list></block><block s="doReport"><block s="evaluate"><block var="scalar-value"/><list><block s="reportListItem"><l>1</l><block var="x"/></block></list></block></block></script><list><l>x</l></list></block></block><block s="doSetVar"><l>hyper func</l><block s="reifyScript"><script><block s="doWarp"><script><block s="doIfElse"><block s="evaluate"><block var="scalar?"/><list><block var="a"/></list></block><script><block s="doIfElse"><block s="evaluate"><block var="scalar?"/><list><block var="b"/></list></block><script><block s="doReport"><block s="evaluate"><block var="func"/><list><block s="evaluate"><block var="scalar-value"/><list><block var="a"/></list></block><block s="evaluate"><block var="scalar-value"/><list><block var="b"/></list></block></list></block></block></script><script><block s="doSetVar"><l>scalarized</l><block s="evaluate"><block var="scalar-value"/><list><block var="a"/></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="b"/></block></list></block><script><block s="doReport"><block s="reportMap"><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><list></list></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"><block s="evaluate"><block var="scalar?"/><list><block var="b"/></list></block><script><block s="doSetVar"><l>scalarized</l><block s="evaluate"><block var="scalar-value"/><list><block var="b"/></list></block></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="a"/></block></list></block><script><block s="doReport"><block s="reportMap"><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><list></list></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="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><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></list></block><block s="reportVariadicEquals"><list><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></list></block></list></block><script><block s="doReport"><custom-block s="multimap %repRing over %mult%l"><block var="func"/><list><block var="a"/><block var="b"/></list></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="multimap %repRing over %mult%l"><block var="hyper func"/><list><block var="a"/><block var="b"/></list></custom-block></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="sound %&apos;sound&apos; exists?" type="predicate" category="sound"><header></header><code></code><translations>el:υπάρχει ο ήχος _ ;&#xD;de:existiert Klang _ ?&#xD;</translations><inputs><input type="%s">pop<options>§_soundsMenu</options></input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="setting %s"><l>Hyper blocks support</l></custom-block><block s="reportIsA"><block var="sound"/><l><option>list</option></l></block></list></block><script><block s="doReport"><block s="reportMap"><block s="reifyPredicate"><autolambda><custom-block s="sound %s exists?"><l></l></custom-block></autolambda><list></list></block><block var="sound"/></block></block></script><list></list></block><block s="doReport"><block s="reportListContainsItem"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportGetSoundAttribute"><l><option>name</option></l><l></l></block></autolambda><list></list></block><block s="reportGet"><l><option>sounds</option></l></block></block><block var="sound"/></block></block></script></block-definition><block-definition s="glide %&apos;x&apos; secs to random position" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doGlide"><block var="x"/><block s="reportRandom"><l>-240</l><l>240</l></block><block s="reportRandom"><l>-180</l><l>180</l></block></block></script></block-definition><block-definition s="bounce %&apos;x&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="setHeading"><block s="reportDifference"><block s="direction"></block><block var="x"/></block></block></script></block-definition><block-definition s="%&apos;x&apos; ^^ %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><custom-block s="is %s a positive integer?"><block var="y"/></custom-block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="y"/><l>0</l></list></block><script><block s="doSetVar"><l>a</l><block s="reportPower"><block var="x"/><block var="x"/></block></block></script><script><block s="doSetVar"><l>a</l><block var="x"/></block><block s="doReport"><block var="a"/></block></script></block><block s="doRepeat"><block s="reportDifference"><block var="y"/><l>1</l></block><script><block s="doSetVar"><l>a</l><block s="reportPower"><block var="x"/><block var="a"/></block></block></script></block><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><l>Error: Can only tetrate positive integers at the moment. Please deal with it and add the functionality if possible.</l></block></script></block></script></block-definition><block-definition s="is %&apos;num&apos; a positive integer?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="num"/><block s="reportRound"><block var="num"/></block></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="num"/><l>0</l></list></block></list></block><block s="reportIsA"><block var="num"/><l><option>number</option></l></block></list></block></block></script></block-definition><block-definition s="-Infinity" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportDifference"><l>0</l><custom-block s="%s ^^ %s"><l>10</l><l>3</l></custom-block></block></block></script></block-definition><block-definition s="play frequency %&apos;frequency&apos; for %&apos;time&apos; secs" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doWait"><block var="time"/></block><block s="stopFreq"></block></script><list></list></block><list></list></block><block s="playFreq"><block var="frequency"/></block></script></block-definition><block-definition s="%&apos;x&apos; !" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doIfElse"><custom-block s="is %s a positive integer?"><block var="x"/></custom-block><script><block s="doSetVar"><l>a</l><l>1</l></block><block s="doFor"><l>i</l><l>1</l><block var="x"/><script><block s="doSetVar"><l>a</l><block s="reportVariadicProduct"><list><block var="a"/><block var="i"/></list></block></block></script></block><block s="doReport"><block var="a"/></block></script><script><block s="doReport"><l>Error: You can only find the factorial of positive integers</l></block></script></block></script></block></script></block-definition><block-definition s="enter key pressed?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportKeyPressed"><block s="reportJoinWords"><list><l></l><l>enter</l></list></block></block></block></script></block-definition><block-definition s="true" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><l>1</l><l>1</l></list></block></block></script></block-definition><block-definition s="false" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><l>1</l><l>2</l></list></block></block></script></block-definition><block-definition s="sign of %&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="x"/><l>0</l></list></block></block><script><block s="doReport"><block s="reportQuotient"><block var="x"/><block s="reportMonadic"><l><option>abs</option></l><block var="x"/></block></block></block></script><script><block s="doReport"><l>0</l></block></script></block></script></block-definition><block-definition s="glide %&apos;time&apos; secs to mouse pointer" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doGlide"><block var="time"/><block s="reportMouseX"></block><block s="reportMouseY"></block></block></script></block-definition><block-definition s="set pitch effect to %&apos;x&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>pitch</l><block s="reportVariadicProduct"><list><block s="reportVariadicSum"><list><l>100</l><custom-block s="max %s %s"><l>-93.75</l><custom-block s="min %s %s"><l>700</l><block var="x"/></custom-block></custom-block></list></block><l>480</l></list></block></block></script></block-definition><block-definition s="min %&apos;x&apos; %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="x"/><block var="y"/></list></block><script><block s="doReport"><block var="x"/></block></script><script><block s="doReport"><block var="y"/></block></script></block></script></block-definition><block-definition s="max %&apos;x&apos; %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block var="x"/><block var="y"/></list></block><script><block s="doReport"><block var="y"/></block></script><script><block s="doReport"><block var="x"/></block></script></block></script></block-definition><block-definition s="change pitch effect by %&apos;x&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>pitch</l><block s="reportVariadicSum"><list><block var="pitch"/><block s="reportVariadicProduct"><list><l>480</l><block var="x"/></list></block></list></block></block></script></block-definition><block-definition s="set drag mode %&apos;option&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">draggable<options>draggable&#xD;not draggable</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="option"/><l>not draggable</l></list></block><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="option"/><l>draggable</l></list></block><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>draggable?</option></l></block></autolambda><list></list></block></list></block></script><list></list></block></script></block-definition><block-definition s="change center x by %&apos;x&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block var="x"/></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>rotation x</option></l></block></autolambda><list></list></block></list></block></script></block-definition><block-definition s="change center y by %&apos;y&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block var="y"/></block></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>rotation y</option></l></block></autolambda><list></list></block></list></block></script></block-definition><block-definition s="tell parent to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doTellTo"><block s="reportGet"><l><option>parent</option></l></block><block var="action"/><list></list></block></script></block-definition><block-definition s="%&apos;input&apos; %&apos;letter&apos; combo pressed?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">ctrl<options>ctrl&#xD;alt&#xD;shift&#xD;backspace</options></input><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="input"/><l>ctrl</l></list></block><script><block s="doReport"><block s="reportKeyPressed"><block s="reportJoinWords"><list><block var="input"/><l> </l><block var="letter"/></list></block></block></block></script><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportKeyPressed"><block var="input"/></block><block s="reportKeyPressed"><block var="letter"/></block></list></block></block></script></block></script></block-definition><block-definition s="key %&apos;key&apos; pressed?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Key pressed block with more options plus text space for any other keys.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">space<options>any key&#xD;space&#xD;a&#xD;b&#xD;c&#xD;d&#xD;e&#xD;f&#xD;g&#xD;h&#xD;i&#xD;j&#xD;k&#xD;l&#xD;m&#xD;n&#xD;o&#xD;p&#xD;q&#xD;r&#xD;s&#xD;t&#xD;u&#xD;v&#xD;w&#xD;x&#xD;y&#xD;z&#xD;1&#xD;2&#xD;3&#xD;4&#xD;5&#xD;6&#xD;7&#xD;8&#xD;9&#xD;0&#xD;-&#xD;+&#xD;tab&#xD;shift</options></input></inputs><script><block s="doReport"><block s="reportKeyPressed"><block var="key"/></block></block></script></block-definition><block-definition s="html %&apos;url&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">snap.berkeley.edu</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="url"/><l>https://</l></block></block><l>2</l></list></block><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://api.allorigins.win/raw?url=</l><block var="url"/></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="url"/><l>https://</l></block></block><l>1</l></list></block><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://api.allorigins.win/raw?url=</l><block s="reportJoinWords"><list><l>https://</l><block var="url"/></list></block></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="url"/><l>https://</l></block></block><l>2</l></list></block><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://api.allorigins.win/raw?url=</l><block s="reportJoinWords"><list><l>https://</l><block var="url"/></list></block></list></block></block></block></script><list></list></block></script></block-definition><block-definition s="all but %&apos;letter&apos; in text %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">b</input><input type="%txt">bapple</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>list</l></list></block><block s="doSetVar"><l>list</l><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block></block><block s="doUntil"><block s="reportNot"><block s="reportListContainsItem"><block var="list"/><block var="letter"/></block></block><script><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="item"/><block var="letter"/></list></block><script><block s="doDeleteFromList"><block s="reportListIndex"><block var="item"/><block var="list"/></block><block var="list"/></block></script><list></list></block></script></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block var="item"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="play sounds %&apos;sounds&apos; in parallel" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%mult%txt" readonly="true"><options>§_soundsMenu</options></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>item</l><block var="sounds"/><script><block s="playSound"><block var="item"/></block></script></block></script></block></script></block-definition><block-definition s="go to layer %&apos;#&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="goToLayer"><l><option>front</option></l></block><block s="goBack"><block s="reportDifference"><block var="#"/><l>1</l></block></block></script></block-definition><block-definition s="delete all empty items in %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListContainsItem"><block var="list"/><l></l></block><script><block s="doUntil"><block s="reportNot"><block s="reportListContainsItem"><block var="list"/><l></l></block></block><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="item"/><l></l></list></block><script><block s="doDeleteFromList"><block var="a"/><block var="list"/></block></script><list></list></block><block s="doChangeVar"><l>a</l><l>1</l></block></script></block></script></block></script><list></list></block></script></block></script></block-definition><block-definition s="play windows vista/7 &quot;mystify&quot; screen $nl saver for %&apos;#&apos; seconds" type="command" category="Project"><variables><list struct="atomic" id="122963">seconds played,flat line ends?,shown?,pos,sdir</list></variables><header></header><code></code><translations></translations><inputs><input type="%n">60</input></inputs><script><block s="doSetVar"><l>pos</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block><block s="doSetVar"><l>shown?</l><block s="reportShown"></block></block><block s="doSetVar"><l>sdir</l><block s="direction"></block></block><block s="hide"></block><block s="doSetVar"><l>flat line ends?</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><l><bool>true</bool></l></block><block s="setColor"><color>0,5,0,1</color></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><block s="setSize"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block></block><block s="down"></block><block s="changeXPosition"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block></block><block s="up"></block><block s="doSetVar"><l>seconds played</l><l>0</l></block><block s="setPenColorDimension"><l><option>hue</option></l><l>1</l></block><block s="setPenColorDimension"><l><option>saturation</option></l><l>100</l></block><block s="setPenColorDimension"><l><option>brightness</option></l><l>100</l></block><block s="fork"><block s="reifyScript"><script><block s="doRepeat"><block var="#"/><script><block s="doWait"><l>1</l></block><block s="doChangeVar"><l>seconds played</l><l>1</l></block></script></block></script><list></list></block><list></list></block><block s="doDeclareVariables"><list><l>speed</l><l>dir</l><l>repeat</l><l>type</l></list></block><block s="setSize"><l>1</l></block><block s="doUntil"><block s="reportVariadicEquals"><list><block var="seconds played"/><block var="#"/></list></block><script><block s="doSetVar"><l>type</l><block s="reportRandom"><l>1</l><l>2</l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>1</l></list></block><script><block s="setHeading"><l>90</l></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportRandom"><block s="reportAttributeOf"><l><option>bottom</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></block></block></script><script><block s="setHeading"><l>180</l></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block><block s="reportRandom"><block s="reportAttributeOf"><l><option>bottom</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></block></block></script></block><block s="setPenColorDimension"><l><option>hue</option></l><block s="reportRandom"><l>1</l><l>100</l></block></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>0</l></block><block s="setPenColorDimension"><l><option>brightness</option></l><l>100</l></block><block s="doSetVar"><l>speed</l><block s="reportRandom"><l>100</l><l>400</l></block></block><block s="down"></block><block s="doSetVar"><l>repeat</l><block s="reportRandom"><l>0</l><l>360</l></block></block><block s="doRepeat"><block var="repeat"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="seconds played"/><block var="#"/></list></block><script><block s="doIfElse"><block var="shown?"/><script><block s="show"></block></script><script><block s="hide"></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends?"/></block><block s="clear"></block><block s="doGotoObject"><block var="pos"/></block><block s="setHeading"><block var="sdir"/></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="forward"><block var="speed"/></block><block s="forward"><block s="reportDifference"><l>0</l><block var="speed"/></block></block><block s="turn"><l>1</l></block><block s="changePenColorDimension"><l><option>hue</option></l><l>.1</l></block><block s="changePenColorDimension"><l><option>transparency</option></l><l>1</l></block></script></block><block s="up"></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>1</l></list></block><script><block s="setHeading"><l>90</l></block></script><script><block s="setHeading"><l>180</l></block></script></block><block s="setPenColorDimension"><l><option>brightness</option></l><l>0</l></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>0</l></block><block s="down"></block><block s="doRepeat"><block var="repeat"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="seconds played"/><block var="#"/></list></block><script><block s="doIfElse"><block var="shown?"/><script><block s="show"></block></script><script><block s="hide"></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends?"/></block><block s="clear"></block><block s="doGotoObject"><block var="pos"/></block><block s="setHeading"><block var="sdir"/></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="forward"><block var="speed"/></block><block s="forward"><block s="reportDifference"><l>0</l><block var="speed"/></block></block><block s="turn"><l>1</l></block><block s="changePenColorDimension"><l><option>hue</option></l><l>.1</l></block><block s="changePenColorDimension"><l><option>transparency</option></l><l>1</l></block></script></block><block s="up"></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="seconds played"/><block var="#"/></list></block><script><block s="doIfElse"><block var="shown?"/><script><block s="show"></block></script><script><block s="hide"></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends?"/></block><block s="clear"></block><block s="doGotoObject"><block var="pos"/></block><block s="setHeading"><block var="sdir"/></block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="up"></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>1</l></list></block><script><block s="setHeading"><l>90</l></block></script><script><block s="setHeading"><l>180</l></block></script></block><block s="setPenColorDimension"><l><option>brightness</option></l><l>0</l></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>0</l></block><block s="down"></block><block s="doRepeat"><block var="repeat"/><script><block s="forward"><block var="speed"/></block><block s="forward"><block s="reportDifference"><l>0</l><block var="speed"/></block></block><block s="turn"><l>1</l></block><block s="changePenColorDimension"><l><option>hue</option></l><l>.1</l></block><block s="changePenColorDimension"><l><option>transparency</option></l><l>1</l></block></script></block><block s="up"></block></script></block></script></block><block s="doIfElse"><block var="shown?"/><script><block s="show"></block></script><script><block s="hide"></block></script></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat line ends?"/></block><block s="doGotoObject"><block var="pos"/></block><block s="setHeading"><block var="sdir"/></block><block s="clear"></block></script></block-definition><block-definition s="ask %&apos;prompt&apos; and report with default %&apos;default&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>promptStr</l><l>defaultStr</l></list><l>return(prompt(promptStr, defaultStr));</l></block><list><block var="prompt"/><block var="default"/></list></block></block></script></block-definition><block-definition s="Notification (title,text,icon link,image link) %&apos;Title&apos; %&apos;text&apos; %&apos;icon link&apos; %&apos;image link&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>title</l><l>text</l><l>icon</l><l>image</l></list><l>if (!("Notification" in window)) {}&#xD;  else if (Notification.permission === "granted") {&#xD;    var notification = new Notification(title, {body:text, icon:icon, image:image});&#xD;  }&#xD;  else if (Notification.permission !== "denied") {&#xD;    Notification.requestPermission().then(function (permission) {&#xD;    if (permission === "granted") {&#xD;        var notification = new Notification(text);&#xD;      }&#xD;    });&#xD;  }</l></block><list><block var="Title"/><block var="text"/><block var="icon link"/><block var="image link"/></list></block></script></block-definition><block-definition s="setCookie (name, value, expiry date) %&apos;name&apos; %&apos;value&apos; %&apos;expiration_date&apos;" type="command" category="variables"><comment x="0" y="0" w="90" collapsed="false">Adds a cookie, with a name, a value and an expiration date in days.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>cname</l><l>cvalue</l><l>exdays</l></list><l>const d = new Date();&#xD;  d.setTime(d.getTime() + (exdays*24*60*60*1000));&#xD;  let expires = "expires=" + d.toGMTString();&#xD;  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";</l></block><list><block var="name"/><block var="value"/><block var="expiration_date"/></list></block></script></block-definition><block-definition s="getCookie (name) %&apos;name&apos;" type="reporter" category="variables"><comment x="0" y="0" w="90" collapsed="false">Gets a cookie with it&apos;s name.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>cname</l></list><l>let name = cname + "=";&#xD;  let decodedCookie = decodeURIComponent(document.cookie);&#xD;  let ca = decodedCookie.split(&apos;;&apos;);&#xD;  for(let i = 0; i &lt; ca.length; i++) {&#xD;    let c = ca[i];&#xD;    while (c.charAt(0) == &apos; &apos;) {&#xD;      c = c.substring(1);&#xD;    }&#xD;    if (c.indexOf(name) == 0) {&#xD;      return c.substring(name.length, c.length);&#xD;    }&#xD;  }&#xD;  return "";</l></block><list><block var="name"/></list></block></block></script></block-definition><block-definition s="setData" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>name</l><custom-block s="ask %txt and report with default %txt"><l>Name?</l><l></l></custom-block></block><custom-block s="setCookie (name, value, expiry date) %txt %txt %txt"><l>username</l><block var="name"/><l>365</l></custom-block><block s="doSetVar"><l>tab_name</l><custom-block s="ask %txt and report with default %txt"><l>Tab name?</l><l>JavaScript Blocks</l></custom-block></block><custom-block s="setCookie (name, value, expiry date) %txt %txt %txt"><l>tab_name</l><block var="tab_name"/><l>365</l></custom-block><custom-block s="Change Tab Name %txt"><block var="tab_name"/></custom-block><custom-block s="Notification (title,text,icon link,image link) %txt %txt %txt %txt"><block s="reportJoinWords"><list><l>Hello </l><block var="name"/><l>!</l></list></block><block s="reportJoinWords"><list><l>Thank you for looking at my project, </l><block var="name"/><l>! It&apos;s cool that you named it "</l><block var="tab_name"/><l>"!</l></list></block><l></l><l></l></custom-block></script></block-definition><block-definition s="Stringify %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Adds quotes to the given text.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><custom-block s="%txt contains %s ?"><block var="text"/><l>"</l></custom-block><script><block s="doReport"><block s="reportJoinWords"><list><l>&apos;</l><block var="text"/><l>&apos;</l></list></block></block></script><script><block s="doReport"><block s="reportJoinWords"><list><l>"</l><block var="text"/><l>"</l></list></block></block></script></block></script></block-definition><block-definition s="%&apos;text&apos; contains %&apos;text2&apos; ?" type="predicate" category="operators"><comment x="0" y="0" w="90" collapsed="false">Reports weather a string contains another string.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="text"/><block var="text2"/></block></block><l>1</l></list></block></block></script></block-definition><block-definition s="Set Cursor %&apos;cursor&apos;" type="command" category="looks"><comment x="0" y="0" w="90" collapsed="false">Changes the image of the cursor.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">default<options>alias&#xD;all-scroll&#xD;auto&#xD;cell&#xD;context-menu&#xD;col-resize&#xD;copy&#xD;crosshair&#xD;default&#xD;e-resize&#xD;ew-resize&#xD;grab&#xD;grabbing&#xD;help&#xD;move&#xD;n-resize&#xD;ne-resize&#xD;nesw-resize&#xD;ns-resize&#xD;nw-resize&#xD;nwse-resize&#xD;no-drop&#xD;none&#xD;not-allowed&#xD;pointer&#xD;progress&#xD;row-resize&#xD;s-resize&#xD;se-resize&#xD;sw-resize&#xD;text&#xD;url(myBall.cur),auto&#xD;vertical-text&#xD;w-resize&#xD;wait&#xD;zoom-in&#xD;zoom-out&#xD;initial</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l></list><l>document.body.style.cursor = name;</l></block><list><block var="cursor"/></list></block></script></block-definition><block-definition s="Save File (file name, contents, ext.) %&apos;name&apos; %&apos;contents&apos; %&apos;ext.&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%txt" readonly="true">txt<options>txt&#xD;py&#xD;js&#xD;rtf&#xD;xml&#xD;html&#xD;sb2&#xD;plain&#xD;png</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>file_name</l><l>file_contents</l><l>file_ext</l></list><l>var ide=this.parentThatIsA(IDE_Morph);&#xD;ide.saveFileAs(file_contents, &apos;text/&apos; + file_ext + &apos;;charset=utf-8&apos;, file_name);</l></block><list><block var="name"/><block var="contents"/><block var="ext."/></list></block></script><scripts><script x="182.1640625" y="191.49999999999994"><custom-block s="Stringify %txt"><l></l></custom-block></script></scripts></block-definition><block-definition s="URL %&apos;url&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Get the HTML code from ANY website.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">snap.berkeley.edu</input></inputs><script><block s="doIfElse"><custom-block s="%txt contains %s ?"><block var="url"/><l>https://</l></custom-block><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://api.allorigins.win/raw?url=</l><block var="url"/></list></block></block></block></script><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://api.allorigins.win/raw?url=</l><block s="reportJoinWords"><list><l>https://</l><block var="url"/></list></block></list></block></block></block></script></block></script><scripts><script x="481" y="26.16666666666646"><custom-block s="if %s = %s then %cs else %cs"><block s="reportURL"><block s="reportJoinWords"><list><l>https://cors-anywhere.herokuapp.com/</l><block var="url"/></list></block></block><l>The origin "https://snap.berkeley.edu" has sent too many requests.&#xD;The number of requests is limited to 50 per 60 minutes. Please self-host CORS Anywhere if you need more quota. See https://github.com/Rob--W/cors-anywhere#demo-server</l><script></script><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://cors-anywhere.herokuapp.com/</l><block var="url"/></list></block></block></block></script></custom-block></script></scripts></block-definition><block-definition s="Cloud ID %&apos;id&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>id</l></list><l>cloudid = id</l></block><list><block var="id"/></list></block></script></block-definition><block-definition s="Set %&apos;cloud var&apos; to %&apos;val&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><custom-block s="ignore %s"><custom-block s="URL %txt"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=write&amp;content=</l><block var="val"/><l>&amp;filename=./textfiles/</l><block var="cloud var"/><l>_id_</l><custom-block s="Cloud ID"></custom-block><l>.txt</l></list></block></custom-block></custom-block></script></block-definition><block-definition s="Cloud ID" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return cloudid;</l></block><list></list></block></block></script></block-definition><block-definition s="Get Cloud Var %&apos;var&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><custom-block s="substr %txt"><custom-block s="URL %txt"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block var="var"/><l>_id_</l><custom-block s="Cloud ID"></custom-block><l>.txt</l></list></block></custom-block></custom-block></block></script></block-definition><block-definition s="substr %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return text.substring(0, text.length - 1);</l></block><list><block var="text"/></list></block></block></script></block-definition><block-definition s="hidden?" type="predicate" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNot"><block s="reportShown"></block></block></block></script></block-definition><block-definition s="right of center?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="xPosition"></block><l>0</l></list></block></block></script></block-definition><block-definition s="left of center?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicLessThan"><list><block s="xPosition"></block><l>0</l></list></block></block></script></block-definition><block-definition s="up of center?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="yPosition"></block><l>0</l></list></block></block></script></block-definition><block-definition s="down of center?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportVariadicLessThan"><list><block s="yPosition"></block><l>0</l></list></block></block></script></block-definition><block-definition s="make a square with size of %&apos;size&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRepeat"><l>4</l><script><block s="forward"><block var="size"/></block><block s="turn"><l>90</l></block></script></block></script></block-definition><block-definition s="new counter" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>count</l></list></block><block s="doReport"><block s="reifyReporter"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="message"/><l>reset</l></list></block><script><block s="doSetVar"><l>count</l><l>0</l></block></script><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="message"/><l>increment</l></list></block><block s="reportVariadicEquals"><list><block var="message"/><l>next</l></list></block></list></block><script><block s="doChangeVar"><l>count</l><l>1</l></block></script><script></script></block></script></block><block s="doReport"><block var="count"/></block></script><list><l>message</l></list></block></block></script></block-definition><block-definition s="make a circle with size of %&apos;size&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRepeat"><l>24</l><script><block s="forward"><block var="size"/></block><block s="turn"><l>15</l></block></script></block></script></block-definition><block-definition s="%&apos;a&apos; &lt;= %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="b"/><block var="a"/></list></block><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;= %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="b"/><block var="a"/></list></block><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="move %&apos;a&apos; steps %&apos;b&apos; times" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRepeat"><block var="b"/><script><block s="forward"><block var="a"/></block></script></block></script></block-definition><block-definition s="turn $turnLeft %&apos;a&apos; degrees %&apos;b&apos; times" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRepeat"><block var="b"/><script><block s="turnLeft"><block var="a"/></block></script></block></script></block-definition><block-definition s="turn $turnRight %&apos;a&apos; degrees %&apos;b&apos; times" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRepeat"><block var="b"/><script><block s="turn"><block var="a"/></block></script></block></script></block-definition><block-definition s="reporter error %&apos;msg&apos;" type="reporter" 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="safely try %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="209.45690104166658" collapsed="false">This block will catch errors and ignore them.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><block var="action"/><l>error</l><script><custom-block s="ignore %mult%s"><list><block var="error"/></list></custom-block></script></custom-block></script></block-definition><block-definition s="ignore %&apos;variables&apos;" type="command" category="Useless"><comment x="0" y="0" w="232.5" collapsed="false">This block ignores everything and does nothing.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs></block-definition><block-definition s="ignore %&apos;variables&apos; (reporter)" type="reporter" category="Useless"><comment x="0" y="0" w="228.33333333333334" collapsed="false">This block works like the command version.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs></block-definition><block-definition s="ignore %&apos;variables&apos; (predicate)" type="predicate" category="Useless"><comment x="0" y="0" w="228.33333333333334" collapsed="false">This block works like the command version.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs></block-definition><block-definition s="example %&apos;script&apos;" type="command" category="Useless"><comment x="0" y="0" w="176.66666666666669" collapsed="false">In this block you can add an example and it will not run.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs></block-definition><block-definition s="examples %&apos;script&apos;" type="command" category="Useless"><comment x="0" y="0" w="176.66666666666669" collapsed="false">In this block you can add examples and it will not run.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%cs"></input></inputs></block-definition><block-definition s="try %&apos;action&apos; does it give an error?" type="predicate" category="control"><comment x="0" y="0" w="165" collapsed="false">This block will try to do something and it will report if an error accured.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><block var="action"/><l>error</l><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;s1&apos; ≠ %&apos;s2&apos;" type="predicate" category="operators"><comment x="0" y="0" w="211" collapsed="false">Not equals block</comment><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="reportVariadicEquals"><list><block var="s1"/><block var="s2"/></list></block></block></block></script></block-definition><block-definition s="%&apos;1&apos; ≈ %&apos;2&apos;" type="predicate" category="operators"><comment x="0" y="0" w="205" collapsed="false">This block checks if a number is very similar to the other number</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="is %n between %n and %n ?"><block var="1"/><block s="reportDifference"><block var="2"/><l>5</l></block><block s="reportVariadicSum"><list><block var="2"/><l>5</l></list></block></custom-block></block></script></block-definition><block-definition s="is %&apos;num&apos; between %&apos;num2&apos; and %&apos;num3&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="num"/><block var="num2"/></list></block><block s="reportVariadicLessThan"><list><block var="num"/><block var="num3"/></list></block></list></block></block></script></block-definition><block-definition s="if %&apos;if&apos; add %&apos;add&apos; to %&apos;to&apos;" type="reporter" category="operators"><comment x="0" y="0" w="213.33333333333334" collapsed="false">This block adds a number to the other number under a contition.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block var="if"/><block s="reportVariadicSum"><list><block var="to"/><block var="add"/></list></block><block var="to"/></block></block></script></block-definition><block-definition s="if %&apos;if&apos; subtract %&apos;subtract&apos; from %&apos;from&apos;" type="reporter" category="operators"><comment x="0" y="0" w="247.5" collapsed="false">This block subtracts a number from the other number under a contition.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block var="if"/><block s="reportDifference"><block var="from"/><block var="subtract"/></block><block var="from"/></block></block></script></block-definition><block-definition s="%&apos;TEXT1&apos; contains %&apos;TEXT2&apos; ?" type="predicate" category="operators"><comment x="0" y="0" w="245" collapsed="false">This block works like the &lt;= contains [thing]?&gt; block, but with strings instead of lists.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>1</l><l>2</l></list></block><block s="doSetVar"><l>1</l><block s="reportJoinWords"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block s="reportListIndex"><l></l><block s="reportTextSplit"><l>&#126;!@#$%^&amp;*()_+`1234567890-=qwertyuiop[]\{}|&apos;;lkjhgfdsa:"zxcvbnm,./?&gt;&lt;</l><l><option>letter</option></l></block></block><block s="reportTextSplit"><l>&#126;!@#$%^&amp;*()_+`1234567890-=qwertyuiop[]\{}|&apos;;lkjhgfdsa:"zxcvbnm,./?&gt;&lt;</l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block s="reportTextSplit"><l>&#126;!@#$%^&amp;*()_+`1234567890-=QWERTYUIOP{}|\][poiuytrewqASDFGHJKL:"&apos;;lkjhgfdsaZXCVBNM&lt;&gt;?/.,mnbvcxz </l><l><option>letter</option></l></block><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="TEXT1"/><l><option>letter</option></l></block></block></block></block></block><block s="doSetVar"><l>2</l><block s="reportJoinWords"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block s="reportListIndex"><l></l><block s="reportTextSplit"><l>&#126;!@#$%^&amp;*()_+`1234567890-=qwertyuiop[]\{}|&apos;;lkjhgfdsa:"zxcvbnm,./?&gt;&lt;</l><l><option>letter</option></l></block></block><block s="reportTextSplit"><l>&#126;!@#$%^&amp;*()_+`1234567890-=qwertyuiop[]\{}|&apos;;lkjhgfdsa:"zxcvbnm,./?&gt;&lt;</l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block s="reportTextSplit"><l>&#126;!@#$%^&amp;*()_+`1234567890-=QWERTYUIOP{}|\][poiuytrewqASDFGHJKL:"&apos;;lkjhgfdsaZXCVBNM&lt;&gt;?/.,mnbvcxz </l><l><option>letter</option></l></block><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="TEXT2"/><l><option>letter</option></l></block></block></block></block></block><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="1"/><block var="2"/></block></block><l>1</l></list></block></block></script></block-definition><block-definition s="show message $nl title: %&apos;title&apos; message: %&apos;message&apos;" type="command" category="Special"><comment x="0" y="0" w="172" collapsed="false">Shows the message with headline in the middle of the window.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello</input><input type="%txt">Hello World!</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doApplyExtension"><l>SciS_showmessage(title,message)</l><list><block s="reportJoinWords"><list><block var="title"/><l></l></list></block><block s="reportJoinWords"><list><block var="message"/><l></l></list></block></list></block></script></block-definition><block-definition s="write %&apos;data&apos; to CSV-file %&apos;filename&apos;" type="command" category="Special"><comment x="0" y="0" w="170.1791359325606" collapsed="false">Stores a list in a CSV file.</comment><header></header><code></code><translations></translations><inputs><input type="%l">list</input><input type="%txt">filename</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doApplyExtension"><l>SciS_writetoCSVfile(data,filename)</l><list><block var="data"/><block var="filename"/></list></block></script></block-definition><block-definition s="write text %&apos;theText&apos; to TXT-file %&apos;filename&apos;" type="command" category="Special"><comment x="0" y="0" w="116.14677103718192" collapsed="false">Stores a string in a file. </comment><header></header><code></code><translations></translations><inputs><input type="%txt">hello world</input><input type="%txt">filename</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doApplyExtension"><l>SciS_writeToFile(data,filename)</l><list><block var="theText"/><block var="filename"/></list></block></script></block-definition><block-definition s="date and time" type="reporter" category="sensing"><comment x="0" y="0" w="206" collapsed="false">Reports date and time in standard notation.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>month</l><l>hour</l><l>minute</l><l>second</l><l>day</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>month</l><block s="reportDate"><l><option>month</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="month"/><l>10</l></list></block><script><block s="doSetVar"><l>month</l><block s="reportJoinWords"><list><l>0</l><block var="month"/></list></block></block></script><list></list></block><block s="doSetVar"><l>day</l><block s="reportDate"><l><option>date</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="day"/><l>10</l></list></block><script><block s="doSetVar"><l>day</l><block s="reportJoinWords"><list><l>0</l><block var="day"/></list></block></block></script><list></list></block><block s="doSetVar"><l>hour</l><block s="reportDate"><l><option>hour</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="hour"/><l>10</l></list></block><script><block s="doSetVar"><l>hour</l><block s="reportJoinWords"><list><l>0</l><block var="hour"/></list></block></block></script><list></list></block><block s="doSetVar"><l>minute</l><block s="reportDate"><l><option>minute</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="minute"/><l>10</l></list></block><script><block s="doSetVar"><l>minute</l><block s="reportJoinWords"><list><l>0</l><block var="minute"/></list></block></block></script><list></list></block><block s="doSetVar"><l>second</l><block s="reportDate"><l><option>second</option></l></block></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="second"/><l>10</l></list></block><script><block s="doSetVar"><l>second</l><block s="reportJoinWords"><list><l>0</l><block var="second"/></list></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportDate"><l><option>year</option></l></block><l>-</l><block var="month"/><l>-</l><block var="day"/><l> </l><block var="hour"/><l>:</l><block var="minute"/><l>:</l><block var="second"/></list></block></block></script></block></script></block-definition><block-definition s="date and time: %&apos;dt&apos; $arrowRight %&apos;time&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="269.1666666666667" collapsed="false">Enter the date and time and get how many time passed.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt" readonly="true">seconds today<options>Julian Date&#xD;decimal years&#xD;days this year&#xD;hours this year&#xD;minutes this year&#xD;seconds this year&#xD;hours today&#xD;minutes today&#xD;seconds today</options></input></inputs><script><block s="doDeclareVariables"><list><l>h</l><l>m</l><l>s</l><l>hms</l><l>separator</l><l>YYYY</l><l>MM</l><l>DD</l><l>YMD</l><l>monthdays</l><l>days</l><l>JD</l><l>jm</l><l>jy</l><l>i</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>monthdays</l><block s="reportNewList"><list><l>31</l><l>28</l><l>31</l><l>30</l><l>31</l><l>30</l><l>31</l><l>31</l><l>30</l><l>31</l><l>30</l><l>31</l></list></block></block><block s="doSetVar"><l>separator</l><l></l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="separator"/><l>0</l></list></block><script><block s="doSetVar"><l>separator</l><l></l></block></script><list></list></block><block s="doSetVar"><l>YYYY</l><l></l></block><block s="doSetVar"><l>MM</l><l></l></block><block s="doSetVar"><l>DD</l><l></l></block><block s="doSetVar"><l>h</l><l></l></block><block s="doSetVar"><l>m</l><l></l></block><block s="doSetVar"><l>s</l><l></l></block><block s="doSetVar"><l>days</l><block var="DD"/></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="i"/><block s="reportDifference"><block var="MM"/><l>1</l></block></list></block><script><block s="doChangeVar"><l>days</l><block s="reportListItem"><block var="i"/><block var="monthdays"/></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="YYYY"/><l>4</l></block><l>0</l></list></block><block s="reportVariadicGreaterThan"><list><block var="MM"/><l>2</l></list></block></list></block><script><block s="doChangeVar"><l>days</l><l>1</l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>Julian Date</l></list></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="YYYY"/><l>0</l></list></block><script><block s="doChangeVar"><l>YYYY</l><l>1</l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="MM"/><l>2</l></list></block><script><block s="doSetVar"><l>jy</l><block var="YYYY"/></block><block s="doSetVar"><l>jm</l><block s="reportVariadicSum"><list><block var="MM"/><l>1</l></list></block></block></script><script><block s="doSetVar"><l>jy</l><block s="reportDifference"><block var="YYYY"/><l>1</l></block></block><block s="doSetVar"><l>jm</l><block s="reportVariadicSum"><list><block var="MM"/><l>13</l></list></block></block></script></block><block s="doSetVar"><l>JD</l><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>365.25</l><block var="jy"/></list></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>30.6001</l><block var="jm"/></list></block></block></list></block><block s="reportVariadicSum"><list><block var="DD"/><l>1720995</l></list></block></list></block></block><block s="doIf"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportVariadicSum"><list><block var="DD"/><block s="reportVariadicProduct"><list><l>31</l><block s="reportVariadicSum"><list><block var="MM"/><block s="reportVariadicProduct"><list><l>12</l><block var="YYYY"/></list></block></list></block></list></block></list></block><block s="reportVariadicSum"><list><l>15</l><block s="reportVariadicProduct"><list><l>31</l><block s="reportVariadicSum"><list><l>10</l><block s="reportVariadicProduct"><list><l>12</l><l>1582</l></list></block></list></block></list></block></list></block></list></block><script><block s="doChangeVar"><l>JD</l><block s="reportVariadicSum"><list><block s="reportDifference"><l>2</l><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><l>0.01</l><block var="jy"/></list></block></block></block><block s="reportMonadic"><l><option>floor</option></l><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>0.01</l><l>0.25</l></list></block><block var="jy"/></list></block></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicSum"><list><block var="JD"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportDifference"><block var="h"/><l>12</l></block><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>decimal years</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="YYYY"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="days"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block><l>365.252199</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>days this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block var="days"/><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block><l>24</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>hours this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><l>24</l><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>minutes this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>24</l><l>60</l></list></block><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>60</l></list></block><block var="m"/></list></block><block s="reportQuotient"><block var="s"/><l>60</l></block></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>seconds this year</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>24</l><l>3600</l></list></block><block var="days"/></list></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>3600</l></list></block><block s="reportVariadicProduct"><list><block var="m"/><l>60</l></list></block></list></block><block var="s"/></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>hours today</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="h"/><block s="reportQuotient"><block var="m"/><l>60</l></block></list></block><block s="reportQuotient"><block var="s"/><l>3600</l></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="time"/><l>minutes today</l></list></block><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>60</l></list></block><block var="m"/></list></block><block s="reportQuotient"><block var="s"/><l>60</l></block></list></block></block></script><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block var="h"/><l>3600</l></list></block><block s="reportVariadicProduct"><list><block var="m"/><l>60</l></list></block></list></block><block var="s"/></list></block></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="upper case %&apos;aString&apos;" type="reporter" category="operators"><comment x="0" y="0" w="140.83333333333334" collapsed="false">Reports a string in upper case.</comment><header></header><code></code><translations></translations><inputs><input type="%s">hello</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_uppercase(txt)</l><list><block var="aString"/></list></block></block></script></block-definition><block-definition s="lower case %&apos;aString&apos;" type="reporter" category="operators"><comment x="0" y="0" w="144.16666666666669" collapsed="false">Reports a string in lower case.</comment><header></header><code></code><translations></translations><inputs><input type="%s">HELLO</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>SciS_lowercase(txt)</l><list><block var="aString"/></list></block></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;</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><list></list></block><block s="doReport"><block s="reportVariadicAnd"><list><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></list></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;</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><list></list></block><block s="doReport"><block s="reportVariadicOr"><list><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></list></block></block></script></block-definition><block-definition s="‏‏‎ ‏‏‏‏‎ ‎ $nl" type="command" category="Useless"><comment x="0" y="0" w="195.83333333333334" collapsed="false">This is a &quot;spacer&quot; block that does nothing. It&apos;s in the useless category, but it&apos;s usefull for making space between other blocks</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="‏‏‎ ‎ $nl $nl" type="reporter" category="Useless"><comment x="0" y="0" w="160.83333333333334" collapsed="false">Reports nothing. More information in the blank command block.</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="‏‏‎ ‎ $nl $nl $nl" type="predicate" category="Useless"><comment x="0" y="0" w="160.83333333333334" collapsed="false">Reports nothing. More information in the blank command block.</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="is %&apos;text&apos; multiline?" type="predicate" category="operators"><comment x="0" y="0" w="185" collapsed="false">This block checks if the text is multiline (has multiple lines of text).</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doDeclareVariables"><list><l>list</l></list></block><block s="doSetVar"><l>list</l><block s="reportTextSplit"><block var="text"/><l><option>line</option></l></block></block><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block><l>1</l></list></block></block></block></script></block-definition><block-definition s="value of %&apos;num&apos;" type="reporter" category="operators"><comment x="0" y="0" w="210" collapsed="false">You can get the value of Pi, Euler&apos;s number, Infinity and -Infinity.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">π<options>π&#xD;e&#xD;∞&#xD;-∞</options></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="num"/><l>π</l></list></block><l>3.141592653589793</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="num"/><l>e</l></list></block><block s="reportMonadic"><l><option>e^</option></l><l>1</l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="num"/><l>∞</l></list></block><l>Infinity</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="num"/><l>-∞</l></list></block><l>-Infinity</l><custom-block s="reporter error %txt"><l>Invalid input!</l></custom-block></block></block></block></block></block></script></block-definition><block-definition s="random item of %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="160.83333333333334" collapsed="false">Reports a random item of the list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l><option>random</option></l><block var="list"/></block></block></script></block-definition><block-definition s="random item of %&apos;values&apos;" type="reporter" category="operators"><comment x="0" y="0" w="160.83333333333334" collapsed="false">Reports a random item of the list.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l><option>random</option></l><block var="values"/></block></block></script></block-definition><block-definition s="table/list (csv) %&apos;table&apos;" type="reporter" category="lists"><comment x="0" y="0" w="175" collapsed="false">You can make tables or lists in CSV (this block supports multiline).</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">hello;world</input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="table"/><l><option>csv</option></l></block></block></script></block-definition><block-definition s="table/list (json) %&apos;table&apos;" type="reporter" category="lists"><comment x="0" y="0" w="175" collapsed="false">You can make tables or lists in JSON (this block supports multiline).</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">["hello","world"]</input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="table"/><l><option>json</option></l></block></block></script></block-definition><block-definition s="does %&apos;text&apos; mach the %&apos;keyboard&apos;" type="predicate" category="sensing"><comment x="0" y="0" w="210.83333333333334" collapsed="false">This block is used to detect if the text maches any of the options.</comment><header></header><code></code><translations></translations><inputs><input type="%s">abc</input><input type="%s" readonly="true">alphabet<options>alphabet&#xD;QWERTY keyboard&#xD;QWERTZ keyboard&#xD;AZERTY keyboard</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="keyboard"/><l>alphabet</l></list></block><script><block s="doReport"><custom-block s="%s contains %s ?"><l>abcdefghijlmnopqrstuvwxyz</l><block var="text"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="keyboard"/><l>QWERTY keyboard</l></list></block><script><block s="doReport"><custom-block s="%s contains %s ?"><l>qwertyuiopasdfghjklzxcvbnm</l><block var="text"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="keyboard"/><l>QWERTZ keyboard</l></list></block><script><block s="doReport"><custom-block s="%s contains %s ?"><l>qwertzuiopasdfghjklyxcvbnm</l><block var="text"/></custom-block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="keyboard"/><l>AZERTY keyboard</l></list></block><script><block s="doReport"><custom-block s="%s contains %s ?"><l>azertyuiopqsdfghjklmwxcvbn</l><block var="text"/></custom-block></block></script><script><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid value!</l></custom-block></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="is json: %&apos;json&apos; correct?" type="predicate" category="lists"><comment x="0" y="0" w="217.5" collapsed="false">This block checks if the given JSON is correct.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><script><custom-block s="ignore %mult%s"><list><custom-block s="table/list (json) %mlt"><block var="json"/></custom-block></list></custom-block></script><l>error</l><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="%&apos;1&apos; %&apos;gate&apos; %&apos;2&apos;" type="predicate" category="operators"><comment x="0" y="0" w="176.66666666666669" collapsed="false">This block works like logic gates.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%s" readonly="true">XOR<options>AND&#xD;NAND&#xD;OR&#xD;NOR&#xD;XOR&#xD;XNOR</options></input><input type="%b"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>AND</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block var="1"/><block var="2"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>NAND</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportVariadicAnd"><list><block var="1"/><block var="2"/></list></block></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>OR</l></list></block><script><block s="doReport"><block s="reportVariadicOr"><list><block var="1"/><block var="2"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>NOR</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportVariadicOr"><list><block var="1"/><block var="2"/></list></block></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>XOR</l></list></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block var="1"/><block var="2"/></list></block><block s="reportNot"><block s="reportVariadicAnd"><list><block var="1"/><block var="2"/></list></block></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="gate"/><l>XNOR</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block var="1"/><block var="2"/></list></block><block s="reportNot"><block s="reportVariadicAnd"><list><block var="1"/><block var="2"/></list></block></block></list></block></block></block></script><script><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid value!</l></custom-block></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="key %&apos;key&apos; %&apos;action&apos; ?" type="predicate" category="sensing"><comment x="0" y="0" w="322.5000000000001" collapsed="false">This block is an advanced vesion of the &lt;key [space] pressed?&gt; block.&#xD;It features more options, mouse click detection and more keys.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">space<options>0&#xD;1&#xD;2&#xD;3&#xD;4&#xD;5&#xD;6&#xD;7&#xD;8&#xD;9&#xD;any key&#xD;up arrow&#xD;down arrow&#xD;right arrow&#xD;left arrow&#xD;enter&#xD;space&#xD;click&#xD;+&#xD;-&#xD;*&#xD;/&#xD;a&#xD;b&#xD;c&#xD;d&#xD;e&#xD;f&#xD;g&#xD;h&#xD;i&#xD;j&#xD;k&#xD;l&#xD;m&#xD;n&#xD;o&#xD;p&#xD;q&#xD;r&#xD;s&#xD;t&#xD;u&#xD;v&#xD;w&#xD;x&#xD;y&#xD;z</options></input><input type="%s" readonly="true">pressed<options>pressed&#xD;released&#xD;not pressed</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>pressed</l></list></block><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="key"/><l>click</l></list></block><block s="reportMouseDown"></block><block s="reportKeyPressed"><block var="key"/></block></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>released</l></list></block><script><block s="doIfElse"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="key"/><l>click</l></list></block><block s="reportMouseDown"></block><block s="reportKeyPressed"><block var="key"/></block></block><script><block s="doWaitUntil"><block s="reportNot"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="key"/><l>click</l></list></block><block s="reportMouseDown"></block><block s="reportKeyPressed"><block var="key"/></block></block></block></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>not pressed</l></list></block><script><block s="doReport"><block s="reportNot"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="key"/><l>click</l></list></block><block s="reportMouseDown"></block><block s="reportKeyPressed"><block var="key"/></block></block></block></block></script><script><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid value!</l></custom-block></block></script></block></script></block></script></block></script></block-definition><block-definition s="repeat until %&apos;break&apos; %&apos;loop&apos;" type="command" category="control"><comment x="0" y="0" w="226.66666666666657" collapsed="false">This block will repeat something until the &quot;break&quot; variable is set to true. You can also do it esier by using the break [name] block.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>break</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doUntil"><block var="break"/><script><block s="doRun"><block var="loop"/><list></list></block></script></block></script></block-definition><block-definition s="say/think nothing" type="command" category="looks"><comment x="0" y="0" w="114.16666666666667" collapsed="false">Says or thinks nothing.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="bubble"><l></l></block></script></block-definition><block-definition s="do %&apos;script&apos; before reporting %&apos;value&apos;" type="reporter" category="control"><comment x="0" y="0" w="141.66666666666669" collapsed="false">This block will report it&apos;s value after running a script.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input><input type="%s"></input></inputs><script><block s="doRun"><block var="script"/><list></list></block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="do %&apos;script&apos; before reporting %&apos;value&apos;" type="predicate" category="control"><comment x="0" y="0" w="200" collapsed="false">This block works like the reporter version.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input><input type="%b"></input></inputs><script><block s="doRun"><block var="script"/><list></list></block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="add %&apos;2&apos; to %&apos;1&apos; %&apos;3&apos; times" type="reporter" category="operators"><comment x="0" y="0" w="215" collapsed="false">This block adds a number to the other number a certain amount of times.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="doRepeat"><block var="3"/><script><block s="doSetVar"><l>1</l><block s="reportVariadicSum"><list><block var="1"/><block var="2"/></list></block></block></script></block><block s="doReport"><block var="1"/></block></script></block></script></block-definition><block-definition s="subtract %&apos;2&apos; from %&apos;1&apos; %&apos;3&apos; times" type="reporter" category="operators"><comment x="0" y="0" w="242.5" collapsed="false">This block subtracts a number from the other number a certain amount of times.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="doRepeat"><block var="3"/><script><block s="doSetVar"><l>1</l><block s="reportDifference"><block var="1"/><block var="2"/></block></block></script></block><block s="doReport"><block var="1"/></block></script></block></script></block-definition><block-definition s="wait %&apos;1&apos; secs before reporting %&apos;value&apos;" type="reporter" category="Special"><comment x="0" y="0" w="162.5" collapsed="false">This block will report it&apos;s value after a certain amount of time.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="do %cs before reporting %s"><script><block s="doWait"><block var="1"/></block></script><block var="value"/></custom-block></block></script></block-definition><block-definition s="wait %&apos;1&apos; secs before reporting %&apos;value&apos;" type="predicate" category="Special"><comment x="0" y="0" w="200" collapsed="false">This block works like the reporter version.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%b"></input></inputs><script><block s="doReport"><custom-block s="do %cs before reporting %b"><script><block s="doWait"><block var="1"/></block></script><block var="value"/></custom-block></block></script></block-definition><block-definition s="pause before reporting %&apos;value&apos;" type="reporter" category="Special"><comment x="0" y="0" w="194.16666666666669" collapsed="false">The program will pause before reporting it&apos;s value.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="do %cs before reporting %s"><script><block s="doPauseAll"></block></script><block var="value"/></custom-block></block></script></block-definition><block-definition s="pause before reporting %&apos;value&apos;" type="predicate" category="Special"><comment x="0" y="0" w="194.16666666666669" collapsed="false">This block works like the reporter version.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doReport"><custom-block s="do %cs before reporting %b"><script><block s="doPauseAll"></block></script><block var="value"/></custom-block></block></script></block-definition><block-definition s="break %&apos;var&apos;" type="command" category="control"><comment x="0" y="0" w="118.33333333333329" collapsed="false">This block works with the repeat until break block.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">name<options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></script></block-definition><block-definition s="mix %&apos;text&apos; with %&apos;type&apos;" type="reporter" category="operators"><comment x="0" y="0" w="279.1666666666667" collapsed="false">This block allows you to make the text mixed with 2 methods.&#xD;&#xD;1. Randomizing: &#xD;The 1st method makes each letter lower case or upper case.&#xD;It&apos;s random like the name.&#xD;2. Inverting:&#xD;The 2nd method makes each letter have an opposite case.&#xD;&#xD;You can detect if the text is mixed or not&#xD;with the &lt;is [] [uppercase]?&gt; block.</comment><variables><list struct="atomic" id="125560">result</list></variables><header></header><code></code><translations></translations><inputs><input type="%s">text</input><input type="%s" readonly="true">random<options>random&#xD;invert</options></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block><block s="doSetVar"><l>result</l><l></l></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>random</l></list></block><script><block s="doForEach"><l>item</l><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><custom-block s="choose between %s and %s"><custom-block s="upper case %s"><block var="item"/></custom-block><custom-block s="lower case %s"><block var="item"/></custom-block></custom-block></list></block></block></script></block><block s="doReport"><block var="result"/></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>invert</l></list></block><script><block s="doForEach"><l>item</l><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportIfElse"><custom-block s="is %s %s ?"><block var="item"/><l>upper case</l></custom-block><custom-block s="lower case %s"><block var="item"/></custom-block><custom-block s="upper case %s"><block var="item"/></custom-block></block></list></block></block></script></block><block s="doReport"><block var="result"/></block></script><script><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid value!</l></custom-block></block></script></block></script></block></script></block-definition><block-definition s="choose between %&apos;1&apos; and %&apos;2&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.33333333333334" collapsed="false">This block picks a random value and reports it</comment><header></header><code></code><translations></translations><inputs><input type="%s">hello</input><input type="%s">hi</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportRandom"><l>1</l><l>2</l></block><l>1</l></list></block><block var="1"/><block var="2"/></block></block></script></block-definition><block-definition s="make %&apos;var&apos; %&apos;action&apos;" type="command" category="operators"><comment x="0" y="0" w="189.16666666666669" collapsed="false">With this block you can change variables in a specific way.</comment><variables><list struct="atomic" id="125667">get var</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input><input type="%s" readonly="true"><options>upper case&#xD;lower case&#xD;mixed (random)&#xD;mixed (invert)&#xD;inverted (boolean)&#xD;inverted (number)&#xD;nothing</options></input></inputs><script><block s="doSetVar"><l>get var</l><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="var"/></list></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>upper case</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><custom-block s="upper case %s"><block var="get var"/></custom-block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>lower case</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><custom-block s="lower case %s"><block var="get var"/></custom-block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>mixed (random)</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><custom-block s="mix %s with %s"><block var="get var"/><l>random</l><variables><variable name="result"><l>0</l></variable></variables></custom-block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>mixed (invert)</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><custom-block s="mix %s with %s"><block var="get var"/><l>invert</l><variables><variable name="result"><l>0</l></variable></variables></custom-block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>inverted (boolean)</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportNot"><block var="get var"/></block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>inverted (number)</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportVariadicProduct"><list><block var="get var"/><l>-1</l></list></block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="action"/><l>nothing</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><l></l></list></block></script><script><custom-block s="error %txt"><l>Invalid value!</l></custom-block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="create %&apos;_scope&apos; variable %&apos;_names&apos;" type="command" category="Special"><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 variable %&apos;_names&apos;" type="command" category="Special"><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><l></l></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="does variable %&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="%&apos;var&apos; %&apos;option&apos; %&apos;num&apos;" type="command" category="operators"><comment x="0" y="0" w="205" collapsed="false">With this block you can do math operations with variables.</comment><variables><list struct="atomic" id="125893">get var</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input><input type="%s" readonly="true">+<options>+&#xD;-&#xD;*&#xD;/&#xD;^</options></input><input type="%n"></input></inputs><script><block s="doSetVar"><l>get var</l><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="var"/></list></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>+</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportVariadicSum"><list><block var="get var"/><block var="num"/></list></block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>-</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportDifference"><block var="get var"/><block var="num"/></block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>*</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportVariadicProduct"><list><block var="get var"/><block var="num"/></list></block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>/</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportQuotient"><block var="get var"/><block var="num"/></block></list></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>^</l></list></block><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><block s="reportPower"><block var="get var"/><block var="num"/></block></list></block></script><script><custom-block s="error %txt"><l>Invalid value!</l></custom-block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="custom reporter %&apos;code&apos;" type="reporter" category="control"><comment x="0" y="0" w="185.83333333333334" collapsed="false">With this block you can program blocks like would you do in the Block Editor.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="code"/><list></list></block></script></block-definition><block-definition s="custom predicate %&apos;code&apos;" type="predicate" category="control"><comment x="0" y="0" w="243.33333333333334" collapsed="false">This block works like the reporter version.</comment><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="code"/><list></list></block></script></block-definition><block-definition s="wait forever" type="command" category="Useless"><comment x="0" y="0" w="90" collapsed="false">Wait forever.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWait"><custom-block s="value of %s"><l>∞</l></custom-block></block></script></block-definition><block-definition s="wait forever (reporter)" type="reporter" category="Useless"><comment x="0" y="0" w="90" collapsed="false">Wait forever.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWait"><custom-block s="value of %s"><l>∞</l></custom-block></block></script></block-definition><block-definition s="wait forever (predicate)" type="predicate" category="Useless"><comment x="0" y="0" w="90" collapsed="false">Wait forever.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWait"><custom-block s="value of %s"><l>∞</l></custom-block></block></script></block-definition><block-definition s="%&apos;1&apos; / %&apos;2&apos; as %&apos;type&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%s" readonly="true">decimal<options>decimal&#xD;fraction</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>decimal</l></list></block><script><block s="doReport"><block s="reportQuotient"><block var="1"/><block var="2"/></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>fraction</l></list></block><script><block s="doReport"><block s="reportJoinWords"><list><block var="1"/><l>/</l><block var="2"/></list></block></block></script><script><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid value!</l></custom-block></block></script></block></script></block></script></block-definition><block-definition s="move %&apos;dircetion&apos; for %&apos;time&apos; secs with speed %&apos;speed&apos;" type="command" category="motion"><comment x="0" y="0" w="235.83333333333334" collapsed="false">Move the sprite for a specific number of seconds with a specific speed. You can set the direction.</comment><variables><list struct="atomic" id="126081">stop</list></variables><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">forwards<options>forwards&#xD;backwards</options></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doSetVar"><l>stop</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="dircetion"/><l>forwards</l></list></block><script><block s="fork"><block s="reifyScript"><script><block s="doWait"><block var="time"/></block><block s="doSetVar"><l>stop</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block><block s="doUntil"><block var="stop"/><script><block s="forward"><block var="speed"/></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="dircetion"/><l>backwards</l></list></block><script><block s="fork"><block s="reifyScript"><script><block s="doWait"><block var="time"/></block><block s="doSetVar"><l>stop</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block><block s="doUntil"><block var="stop"/><script><block s="forward"><custom-block s="invert %n"><block var="speed"/></custom-block></block></script></block></script><script><custom-block s="error %txt"><l>Invalid value!</l></custom-block></script></block></script></block></script></block-definition><block-definition s="invert %&apos;number&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Inverts a number.&#xD;&#xD;invert 1 = -1&#xD;invert -1 = 1</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block var="number"/><l>-1</l></list></block></block></script></block-definition><block-definition s="using %&apos;value&apos; as %&apos;data&apos; $nl do %&apos;script&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">You can use data.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>data</l><block var="value"/></block><block s="doRun"><block var="script"/><list></list></block></script></block-definition><block-definition s="activate $flag-1-0-200-0" type="command" category="control"><comment x="0" y="0" w="233.33333333333334" collapsed="false">This block works like you would click the green flag.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doBroadcast"><l><option>__shout__go__</option></l><list></list></block></script></block-definition><block-definition s="set draggable to %&apos;boolean&apos;" type="command" category="sensing"><comment x="0" y="0" w="158.33333333333334" collapsed="false">Works like the Scratch 3 block.</comment><header></header><code></code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doSetVar"><l><option>my draggable?</option></l><block var="boolean"/></block></script></block-definition><block-definition s="smart say %&apos;TEXT&apos;" type="command" category="looks"><comment x="0" y="0" w="171" collapsed="false">Says the defined text for a calculated amount of seconds.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="TEXT"/></block><l>5</l></list></block><script><block s="doSayFor"><block var="TEXT"/><l>1</l></block></script><script><block s="doSayFor"><block var="TEXT"/><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="TEXT"/></block><l>.1</l></list></block></block></block></script></block></script></block-definition><block-definition s="smart think %&apos;TEXT&apos;" type="command" category="looks"><comment x="0" y="0" w="145" collapsed="false">Thinks the defined text for a calculated amount of seconds.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="TEXT"/></block><l>5</l></list></block><script><block s="doThinkFor"><block var="TEXT"/><l>1</l></block></script><script><block s="doThinkFor"><block var="TEXT"/><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="TEXT"/></block><l>.1</l></list></block></block></block></script></block></script></block-definition><block-definition s="while %&apos;boolean&apos; %&apos;loop&apos;" type="command" category="control"><comment x="0" y="0" w="146.66666666666669" collapsed="false">It&apos;s something like repeat until.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%ca"></input></inputs><script><block s="doUntil"><block s="reportNot"><block var="boolean"/></block><script><block s="doRun"><block var="loop"/><list></list></block></script></block></script></block-definition><block-definition s="JavaScript extensions on?" type="predicate" category="JavaScript"><comment x="0" y="0" w="215" collapsed="false">Checks if JavaScript extensions are turned on.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return true;</l></block><list></list></block><l>error</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block></block></script></block-definition><block-definition s="run %&apos;code&apos; in JavaScript" type="command" category="JavaScript"><comment x="0" y="0" w="105.83333333333334" collapsed="false">Run JavaScript code.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block var="code"/></block><list></list></block></script></block-definition><block-definition s="run %&apos;code&apos; in JavaScript (reporter)" type="reporter" category="JavaScript"><comment x="0" y="0" w="155" collapsed="false">Run JavaScript code and report.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block var="code"/></block><list></list></block></block></script></block-definition><block-definition s="my stats" type="reporter" category="motion"><comment x="0" y="0" w="120" collapsed="false">Reports the x, y, and direction of the sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>x position</l><block s="xPosition"></block></list></block><block s="reportNewList"><list><l>y position</l><block s="yPosition"></block></list></block><block s="reportNewList"><list><l>direction</l><block s="direction"></block></list></block></list></block></block></script></block-definition><block-definition s="stats of %&apos;object&apos;" type="reporter" category="motion"><comment x="0" y="0" w="120" collapsed="false">Reports the x, y, and direction of the sprite.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>x position</l><block s="reportAttributeOf"><l><option>x position</option></l><block var="object"/></block></list></block><block s="reportNewList"><list><l>y position</l><block s="reportAttributeOf"><l><option>y position</option></l><block var="object"/></block></list></block><block s="reportNewList"><list><l>direction</l><block s="reportAttributeOf"><l><option>direction</option></l><block var="object"/></block></list></block></list></block></block></script></block-definition><block-definition s="opposite %&apos;num&apos;" type="reporter" category="operators"><comment x="0" y="0" w="233.33333333333334" collapsed="false">If the input is big the output will be small,&#xD;but of the input will be small the output will be big.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportQuotient"><l>1</l><block var="num"/></block><l>100</l></list></block></block></script></block-definition><block-definition s="is %&apos;1&apos; %&apos;option&apos; %&apos;2&apos; = %&apos;3&apos;" type="predicate" category="operators"><comment x="0" y="0" w="247.5" collapsed="false">Checks if a math operation gives the excepted result.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s" readonly="true"><options>+&#xD;-&#xD;*&#xD;/&#xD;^</options></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>+</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportVariadicSum"><list><block var="1"/><block var="2"/></list></block><block var="3"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>-</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportDifference"><block var="1"/><block var="2"/></block><block var="3"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>*</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportVariadicProduct"><list><block var="1"/><block var="2"/></list></block><block var="3"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>/</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportQuotient"><block var="1"/><block var="2"/></block><block var="3"/></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="option"/><l>^</l></list></block><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportPower"><block var="1"/><block var="2"/></block><block var="3"/></list></block></block></script><script><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid value!</l></custom-block></block></script></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="draw polygon sides: %&apos;sides&apos; size: %&apos;squaresize&apos;" type="command" category="pen"><comment x="0" y="0" w="136.66666666666669" collapsed="false">This block draws a polygon.</comment><header></header><code></code><translations></translations><inputs><input type="%n">4</input><input type="%n">50</input></inputs><script><block s="doWarp"><script><block s="down"></block><block s="doRepeat"><block var="sides"/><script><block s="forward"><block var="squaresize"/></block><block s="turn"><block s="reportQuotient"><l>360</l><block var="sides"/></block></block></script></block><block s="up"></block></script></block></script></block-definition><block-definition s="set %&apos;name&apos; to %&apos;value&apos;" type="command" category="JavaScript"><comment x="0" y="0" w="210" collapsed="false">You can set JavaScript variables to a value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><block s="reportJoinWords"><list><block var="name"/><l> = a;</l></list></block></block><list><block var="value"/></list></block></script></block-definition><block-definition s="get %&apos;name&apos;" type="reporter" category="JavaScript"><comment x="0" y="0" w="210" collapsed="false">You can get JavaScript variables.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return </l><block var="name"/><l>;</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="delete %&apos;name&apos;" type="command" category="JavaScript"><comment x="0" y="0" w="210" collapsed="false">You can delete JavaScript variables.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>delete </l><block var="name"/><l>;</l></list></block></block><list></list></block></script></block-definition><block-definition s="undefined" type="reporter" category="Other"><comment x="0" y="0" w="90" collapsed="false">Undefined!</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="errorObsolete"></block></block></script></block-definition><block-definition s="undefined $nl" type="command" category="Other"><comment x="0" y="0" w="90" collapsed="false">Undefined!</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="errorObsolete"></block></script></block-definition><block-definition s="Pop-Up %&apos;text&apos;" type="command" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>alert(msg);</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="%&apos;chance&apos; % chance" type="predicate" category="operators"><comment x="0" y="0" w="130.83333333333334" collapsed="false">Random, but with chances.</comment><header></header><code></code><translations></translations><inputs><input type="%n">50</input></inputs><script><block s="doReport"><custom-block s="%s ≤ %s"><block s="reportRandom"><l>1</l><l>100</l></block><block var="chance"/></custom-block></block></script></block-definition><block-definition s="Pop-Up %&apos;text&apos; $nl" type="predicate" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>msg</l></list><l>return (confirm(msg));</l></block><list><block var="text"/></list></block></block></script></block-definition><block-definition s="Pop-Up %&apos;text&apos; default: %&apos;default&apos;" type="reporter" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>promptText</l><l>promptDefault</l></list><l>return(prompt(promptText, promptDefault));</l></block><list><block var="text"/><block var="default"/></list></block></block></script></block-definition><block-definition s="show message $nl title: %&apos;title&apos; message: %&apos;message&apos; $nl" type="command" category="JavaScript"><comment x="0" y="0" w="172" collapsed="false">Shows the message with headline in the middle of the window.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello</input><input type="%txt">Hello World!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.inform(title, body, this.world());&#xD;return () =&gt; (isDone);</l></block><list><block var="message"/><block var="title"/></list></block></script></block-definition><block-definition s="ask $nl title: %&apos;title&apos; message: %&apos;message&apos; $nl" type="predicate" category="JavaScript"><comment x="0" y="0" w="172" collapsed="false">Shows the message with headline in the middle of the window.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello</input><input type="%txt">Hello World!</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    result = this.buttons.children[0].userState == &apos;highlight&apos;;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.askYesNo(title, body, this.world());&#xD;return new List([() =&gt; (isDone), () =&gt; (result)]);</l></block><list><block var="message"/><block var="title"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="input $nl title: %&apos;title&apos; default: %&apos;default&apos; $nl" type="reporter" category="JavaScript"><comment x="0" y="0" w="172" collapsed="false">Shows the message with headline in the middle of the window.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello</input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list><l>origin</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    result = this.buttons.children[1].userState&#xD;    == &apos;highlight&apos; ? false:this.getInput();&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.prompt(title, origin, this.world());&#xD;return new List([() =&gt; (isDone), () =&gt; (result)]);</l></block><list><block var="default"/><block var="title"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="copy %&apos;text&apos; to clipboard" type="command" category="JavaScript"><comment x="0" y="0" w="108.33333333333334" collapsed="false">Copies text clipboard.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>txt</l></list><l> navigator.clipboard.writeText(txt);</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="%&apos;1&apos; %&apos;2&apos; %&apos;3&apos; %&apos;4&apos; %&apos;5&apos; %&apos;6&apos; %&apos;7&apos; %&apos;8&apos; in decimal" type="predicate" category="operators"><comment x="0" y="0" w="220" collapsed="false">You can represent 256 numbers with this block.</comment><variables><list struct="atomic" id="126727">result</list></variables><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input><input type="%b"></input></inputs><script><block s="doSetVar"><l>result</l><l>0</l></block><block s="doIf"><block var="1"/><script><block s="doChangeVar"><l>result</l><l>1</l></block></script><list></list></block><block s="doIf"><block var="2"/><script><block s="doChangeVar"><l>result</l><l>2</l></block></script><list></list></block><block s="doIf"><block var="3"/><script><block s="doChangeVar"><l>result</l><l>4</l></block></script><list></list></block><block s="doIf"><block var="4"/><script><block s="doChangeVar"><l>result</l><l>8</l></block></script><list></list></block><block s="doIf"><block var="5"/><script><block s="doChangeVar"><l>result</l><l>16</l></block></script><list></list></block><block s="doIf"><block var="6"/><script><block s="doChangeVar"><l>result</l><l>32</l></block></script><list></list></block><block s="doIf"><block var="7"/><script><block s="doChangeVar"><l>result</l><l>64</l></block></script><list></list></block><block s="doIf"><block var="8"/><script><block s="doChangeVar"><l>result</l><l>128</l></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="set title to %&apos;text&apos;" type="command" category="JavaScript"><comment x="0" y="0" w="165" collapsed="false">Sets the website title to something.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Snap!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l></list><l>document.title = text;</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="return %&apos;text&apos;" type="reporter" category="JavaScript"><comment x="0" y="0" w="90" collapsed="false">Returns a value.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">"Hello World!"</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return </l><block var="text"/><l>;</l></list></block></block><list></list></block></block></script></block-definition><block-definition s="using %&apos;input&apos; as %&apos;data&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">You can use data.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>data</l><block var="input"/></block><block s="doReport"><block var="input"/></block></script></block-definition><block-definition s="play frequency %&apos;frequency&apos; Hz for %&apos;time&apos; secs" type="command" category="sound"><comment w="232.5" collapsed="false">When you need help,&#xD;get some help with the play frequency block.</comment><header></header><code></code><translations></translations><inputs><input type="%n">440</input><input type="%n">1</input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="playFreq"><block var="frequency"/></block><block s="doWait"><block var="time"/></block><block s="stopFreq"></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="play frequency %&apos;frequency&apos; Hz for %&apos;time&apos; secs until done" type="command" category="sound"><comment w="232.5" collapsed="false">When you need help,&#xD;get some help with the play frequency block.</comment><header></header><code></code><translations></translations><inputs><input type="%n">440</input><input type="%n">1</input></inputs><script><block s="playFreq"><block var="frequency"/></block><block s="doWait"><block var="time"/></block><block s="stopFreq"></block></script></block-definition><block-definition s="console.log %&apos;text&apos;" type="command" category="JavaScript"><comment x="0" y="0" w="195" collapsed="false">Displays a message on the console.&#xD;Used for developers.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Hello World!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l></list><l>console.log(text);</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="reset %&apos;timer&apos;" type="command" category="sensing"><comment x="0" y="0" w="239.16666666666669" collapsed="false">Before reseting the timer set up-var timer to timer.</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>timer</l><block s="getTimer"></block></block><block s="doResetTimer"></block></script></block-definition><block-definition s="reset my stats" type="command" category="motion"><comment x="0" y="0" w="140" collapsed="false">Resets position and direction.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block></script></block-definition><block-definition s="reset stats of %&apos;object&apos;" type="command" category="motion"><comment x="0" y="0" w="140" collapsed="false">Resets position and direction.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doTellTo"><block var="object"/><block s="reifyScript"><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="call %&apos;block&apos; without reporting" type="command" category="Special"><comment x="0" y="0" w="138.33333333333334" collapsed="false">Call blocks without reporting.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doRun"><block s="evaluate"><block var="block"/><list></list></block><list></list></block></script></block-definition><block-definition s="report %&apos;any&apos; as a predicate" type="predicate" category="Special"><comment x="0" y="0" w="200" collapsed="false">A predicate can report non-boolean values.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="any"/></block></script></block-definition><block-definition s="Set cursor to %&apos;style&apos;" type="command" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">default<options>alias&#xD;all-scroll&#xD;auto&#xD;cell&#xD;context-menu&#xD;col-resize&#xD;copy&#xD;crosshair&#xD;default&#xD;e-resize&#xD;ew-resize&#xD;grab&#xD;grabbing&#xD;help&#xD;move&#xD;n-resize&#xD;ne-resize&#xD;nesw-resize&#xD;ns-resize&#xD;nw-resize&#xD;nwse-resize&#xD;no-drop&#xD;none&#xD;not-allowed&#xD;pointer&#xD;progress&#xD;row-resize&#xD;s-resize&#xD;se-resize&#xD;sw-resize&#xD;text&#xD;url(myBall.cur),auto&#xD;vertical-text&#xD;w-resize&#xD;wait&#xD;zoom-in&#xD;zoom-out&#xD;initial</options></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>style</l></list><l>document.body.style.cursor = style;</l></block><list><block var="style"/></list></block></script></block-definition><block-definition s="random %&apos;scripts&apos;" type="command" category="control"><comment x="0" y="0" w="104.16666666666667" collapsed="false">Run a random script.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doRun"><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="scripts"/></block></block><block var="scripts"/></block><list></list></block></script></block-definition><block-definition s="hash %&apos;TXT&apos; level %&apos;NUM&apos; key %&apos;KEY&apos;" type="reporter" category="Encryption &amp; Hashing"><comment x="0" y="0" w="424" collapsed="false">Hash text with a certain level and key. The higher the level and the longer the key is, the stronger the security (Although higher levels and longer keys take longer to generate hashes).</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>newKey</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/biginteger.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/schemeNumber.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bignums.js</l></list></block><block s="doApplyExtension"><l>big_switch(bool)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="doSetVar"><l>result</l><block var="TXT"/></block><block s="doRepeat"><block var="NUM"/><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicode"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="result"/><l><option>letter</option></l></block></block></block></block></script></block><block s="doSetVar"><l>newKey</l><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicode"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="KEY"/><l><option>letter</option></l></block></block></block></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block var="value"/><block var="newKey"/></list></block></autolambda><list><l>value</l></list></block><block s="reportTextSplit"><block var="result"/><l><option>letter</option></l></block></block></block></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="encrypt %&apos;TXT&apos; key %&apos;KEY&apos;" type="reporter" category="Encryption &amp; Hashing"><comment x="0" y="0" w="90" collapsed="false">Encrypt messages with a certain key.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>newKey</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block s="reportTextSplit"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicode"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="KEY"/><l><option>letter</option></l></block></block></block><l><option>letter</option></l></block><script><block s="doAddToList"><custom-block s="other encrypt %s key %s"><block var="TXT"/><block var="item"/></custom-block><block var="result"/></block></script></block><block s="doReport"><custom-block s="other encrypt %s key %s"><block s="reportListAttribute"><l><option>json</option></l><block var="result"/></block><block s="reportLetter"><l><option>last</option></l><block var="KEY"/></block></custom-block></block></script></block-definition><block-definition s="even unicode num %&apos;LETTER&apos;" type="reporter" category="Encryption &amp; Hashing" helper="true"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block><l>0</l><block var="value"/></block></autolambda><list><l>value</l></list></block><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><block var="index"/><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block var="LETTER"/><l><option>letter</option></l></block></block></block></autolambda><list><l>value</l><l>index</l></list></block><block s="reportNumbers"><l>1</l><l>7</l></block></block></block></block></block></block></script></block-definition><block-definition s="decrypt %&apos;TXT&apos; key %&apos;KEY&apos;" type="reporter" category="Encryption &amp; Hashing"><comment x="0" y="0" w="144" collapsed="false">Decrypt encrypted messages using the correct key.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>result</l><l>newKey</l><l>list</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/biginteger.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/schemeNumber.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bignums.js</l></list></block><block s="doApplyExtension"><l>big_switch(bool)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="doSetVar"><l>list</l><block s="reportTextSplit"><custom-block s="other decrypt %s key %s"><block var="TXT"/><block s="reportLetter"><l><option>last</option></l><block var="KEY"/></block></custom-block><l><option>json</option></l></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doDeclareVariables"><list><l>i</l></list></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doForEach"><l>item</l><block s="reportTextSplit"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicode"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="KEY"/><l><option>letter</option></l></block></block></block><l><option>letter</option></l></block><script><block s="doAddToList"><custom-block s="other decrypt %s key %s"><block s="reportListItem"><block var="i"/><block var="list"/></block><block var="item"/></custom-block><block var="result"/></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doIf"><block s="reportListContainsItem"><block s="reportMap"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="result"/></block></list></block></autolambda><list></list></block><block var="result"/></block><block s="reportBoolean"><l><bool>false</bool></l></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>Invalid key!</l></list></block></script><list></list></block><block s="doReport"><block s="reportListItem"><l>1</l><block var="result"/></block></block></script><list></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>Invalid key!</l></list></block></script><list></list></block><l></l></list></block></script></block-definition><block-definition s="other encrypt %&apos;TXT&apos; key %&apos;KEY&apos;" type="reporter" category="Encryption &amp; Hashing" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>newKey</l><l>check</l><l>result</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/biginteger.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/schemeNumber.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bignums.js</l></list></block><block s="doApplyExtension"><l>big_switch(bool)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="doSetVar"><l>newKey</l><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicode"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="KEY"/><l><option>letter</option></l></block></block></block></block><block s="doSetVar"><l>result</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="even unicode num %n"><l></l></custom-block></autolambda><list></list></block><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><block s="reportUnicode"><l></l></block><block var="newKey"/></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="TXT"/><l><option>letter</option></l></block></block></block></block><block s="doSetVar"><l>check</l><block s="reportAtomicMap"><block s="reifyPredicate"><autolambda><block s="reportVariadicGreaterThan"><list><l></l><l>1114111</l></list></block></autolambda><list></list></block><block var="result"/></block></block><block s="doIf"><block s="reportListContainsItem"><block var="check"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>Cannot encrypt text with the current key.</l></list></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><block var="result"/></block></block></script></block-definition><block-definition s="other decrypt %&apos;TXT&apos; key %&apos;KEY&apos;" type="reporter" category="Encryption &amp; Hashing" helper="true"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>result</l><l>newKey</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/biginteger.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/schemeNumber.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bignums.js</l></list></block><block s="doApplyExtension"><l>big_switch(bool)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="doSetVar"><l>newKey</l><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicode"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="KEY"/><l><option>letter</option></l></block></block></block></block><block s="doSetVar"><l>result</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list></list></block></autolambda><list></list></block><block s="reportReshape"><block s="reportTextSplit"><block var="TXT"/><l><option>letter</option></l></block><list><block s="reportQuotient"><block s="reportTextAttribute"><l><option>length</option></l><block var="TXT"/></block><l>7</l></block><l>7</l></list></block></block></block><block s="doSetVar"><l>result</l><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportQuotient"><l></l><block var="newKey"/></block></autolambda><list></list></block><block var="result"/></block></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportUnicodeAsLetter"><l></l></block></autolambda><list></list></block><block var="result"/></block></block></block><block s="doReport"><block var="result"/></block></script><list></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>err_error(msg)</l><list><l>Invalid key!</l></list></block></script><list></list></block><l></l></list></block></script></block-definition><block-definition s="letter encrypt %&apos;NUM&apos;" type="reporter" category="Encryption &amp; Hashing"><comment x="0" y="0" w="107.00000000000001" collapsed="false">Convert encrypted messages to letters.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/biginteger.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/schemeNumber.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bignums.js</l></list></block><block s="doApplyExtension"><l>big_switch(bool)</l><list><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicodeAsLetter"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="NUM"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="letter decrypt %&apos;TXT&apos;" type="reporter" category="Encryption &amp; Hashing"><comment x="0" y="0" w="165" collapsed="false">Convert encrypted messages coverted to letters back to numbers. </comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportUnicode"><l></l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="TXT"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="set bignums to %&apos;boolean&apos;" type="command" category="operators"><comment x="0" y="0" w="233.33333333333334" collapsed="false">With bignums you can operate very big numbers.</comment><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/biginteger.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/schemeNumber.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bignums.js</l></list></block><block s="doApplyExtension"><l>big_switch(bool)</l><list><block var="boolean"/></list></block></script></block-definition><block-definition s="primitive blocks" type="reporter" category="Other"><comment x="0" y="0" w="166.66666666666669" collapsed="false">Get primitive modification blocks.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doApplyExtension"><l></l><list><l></l></list></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="reportApplyExtension"><l></l><list><l></l></list></block></autolambda><list></list></block></list></block></block></script></block-definition><block-definition s="‏‏‎ ‎" type="command" category="Other"><comment x="0" y="0" w="235" collapsed="false">Just an &quot;spacer&quot; block that does nothing.&#xD;You can find a brown one in the Useless category</comment><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="restart all $flag-1-0-200-0" type="command" category="control"><comment x="0" y="0" w="137.45208333333343" collapsed="false">This block restarts everythig.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doStopThis"><l><option>all but this script</option></l></block><custom-block s="activate $flag-1-0-200-0"></custom-block><block s="doStopThis"><l><option>this script</option></l></block></script></block-definition><block-definition s="freeze $pause-1-255-220-0" type="command" category="control"><comment x="0" y="0" w="77.5" collapsed="false">Freezes Snap!</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><custom-block s="freeze $pause-1-255-220-0"></custom-block></script></block></script></block-definition><block-definition s="set visibility to %&apos;condition&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block var="condition"/><script><block s="show"></block></script><script><block s="hide"></block></script></block></script></block-definition><block-definition s="%&apos;boolean&apos; as number" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block var="boolean"/><l>1</l><l>0</l></block></block></script></block-definition><block-definition s="%&apos;number&apos; as boolean" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block var="number"/><l>1</l></list></block></block></script></block-definition><block-definition s="coin flip" type="reporter" category="Random"><comment x="0" y="0" w="66.66666666666667" collapsed="false">Flips a coin.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="choose between %s and %s"><l>heads</l><l>tails</l></custom-block></block></script></block-definition><block-definition s="magic 8 ball" type="reporter" category="Random"><comment x="0" y="0" w="132.5" collapsed="false">Works like the magic 8 ball.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="random item of %mult%s"><list><l>yes</l><l>very likely</l><l>maybe</l><l>very unlikely</l><l>no</l><l>ask again</l><l>it&apos;s ok</l><l>i don&apos;t know</l></list></custom-block></block></script></block-definition><block-definition s="roll dice with %&apos;sides&apos; sides" type="reporter" category="Random"><comment x="0" y="0" w="68.33333333333334" collapsed="false">Rolls a dice.</comment><header></header><code></code><translations></translations><inputs><input type="%n">6</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block var="sides"/><l>0</l></list></block><block s="reportRandom"><l>1</l><block var="sides"/></block><l>0</l></block></block></script></block-definition><block-definition s="random letter" type="reporter" category="Random"><comment x="0" y="0" w="183.33333333333334" collapsed="false">Reports a random leter of the alphabet.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="random item of %mult%s"><list><l>a</l><l>b</l><l>c</l><l>d</l><l>e</l><l>f</l><l>g</l><l>h</l><l>i</l><l>j</l><l>k</l><l>l</l><l>m</l><l>n</l><l>o</l><l>p</l><l>q</l><l>r</l><l>s</l><l>t</l><l>u</l><l>v</l><l>w</l><l>x</l><l>y</l><l>z</l></list></custom-block></block></script></block-definition><block-definition s="random %&apos;letters&apos; letter string" type="reporter" category="Random"><comment x="0" y="0" w="144.16666666666669" collapsed="false">Reports a random letter string.</comment><variables><list struct="atomic" id="127785">string</list></variables><header></header><code></code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doSetVar"><l>string</l><l></l></block><block s="doWarp"><script><block s="doRepeat"><block var="letters"/><script><block s="doSetVar"><l>string</l><block s="reportJoinWords"><list><block var="string"/><custom-block s="random letter"></custom-block></list></block></block></script></block></script></block><block s="doReport"><block var="string"/></block></script></block-definition><block-definition s="does %&apos;reporter&apos; report %&apos;output&apos; ?" type="predicate" category="operators"><comment x="0" y="0" w="139.99999999999991" collapsed="false">Checks if a reporter will report the given value.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="evaluate"><block var="reporter"/><list></list></block><block var="output"/></list></block></block></script></block-definition><block-definition s="initialize SciSnap!" type="command" category="Other"><comment x="0" y="0" w="272.5945963541667" collapsed="false">Blocks that use SciSnap! already load SciSnap! Extensions, so this is mostly useless.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/SciSnapExtensions.js</l></list></block></script></block-definition><block-definition s="reset %&apos;var&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="var"/><l></l></list></block></script></block-definition><block-definition s="get %&apos;var&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="var"/></list></block></block></script></block-definition><block-definition s="wait until JavaScript extensions are on" type="command" category="JavaScript"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWaitUntil"><custom-block s="JavaScript extensions on?"></custom-block></block></script></block-definition><block-definition s="rickroll" type="command" category="Other"><comment x="0" y="0" w="243.33333333333343" collapsed="false">https://www.youtube.com/watch?v=dQw4w9WgXcQ</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="open website %txt"><l>https://www.youtube.com/watch?v=dQw4w9WgXcQ</l></custom-block></script></block-definition><block-definition s="variable-list from variables %&apos;var&apos;" type="reporter" category="lists"><variables><list struct="atomic" id="127855">values,names</list></variables><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="var"/></block><l>0</l></list></block><script><block s="doSetVar"><l>values</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>names</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="var"/><script><block s="doAddToList"><custom-block s="get %s"><block var="item"/></custom-block><block var="values"/></block></script></block><block s="doForEach"><l>item</l><block var="var"/><script><block s="doAddToList"><block var="item"/><block var="names"/></block></script></block><block s="doReport"><block s="reportNewList"><list><block var="names"/><block var="values"/></list></block></block></script><list></list></block><block s="doReport"><custom-block s="reporter error %txt"><l>Invalid value!</l></custom-block></block></script></block-definition><block-definition s="add plugins %&apos;plugins&apos; to %&apos;list&apos;" type="reporter" category="Plugins"><comment x="0" y="0" w="100" collapsed="false">Adds plugins to lists.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCONS"><block var="list"/><block var="plugins"/></block></block></script></block-definition><block-definition s="%&apos;values&apos; as a plugin named %&apos;name&apos;" type="reporter" category="Plugins"><comment x="0" y="0" w="152.5" collapsed="false">Creates a plugin named [name].</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%txt"></input></inputs><script><block s="doInsertInList"><block s="reportJoinWords"><list><l>plugin:</l><block var="name"/></list></block><l>1</l><block var="values"/></block><block s="doReport"><block var="values"/></block></script></block-definition><block-definition s="get plugins of %&apos;list&apos;" type="reporter" category="Plugins"><comment x="0" y="0" w="99.16666666666667" collapsed="false">Gets plugins of a list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCDR"><block var="list"/></block></block></script></block-definition><block-definition s="get main content of %&apos;list&apos;" type="reporter" category="Plugins"><comment x="0" y="0" w="155" collapsed="false">Gets the main content of the list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="list"/></block></block></script></block-definition><block-definition s="setup server named %&apos;name&apos; with password %&apos;password&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><custom-block s="create %s variable %mult%txt"><l>global</l><list><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block><block s="reportJoinWords"><list><block var="name"/><l>:content</l></list></block><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></list></custom-block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block><block s="reportNewList"><list><block var="name"/><block var="password"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block s="reportJoinWords"><list><block var="name"/><l>:content</l></list></block><block s="reportNewList"><list></list></block></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block><block s="reportNewList"><list></list></block></list></block></script></block-definition><block-definition s="delete server named %&apos;name&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><custom-block s="delete variable %mult%txt"><list><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block><block s="reportJoinWords"><list><block var="name"/><l>:content</l></list></block><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></list></custom-block></script></block-definition><block-definition s="start server named %&apos;name&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReplaceInList"><l>3</l><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="stop server named %&apos;name&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReplaceInList"><l>3</l><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block></custom-block><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doDeleteFromList"><l><option>all</option></l><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></custom-block></block></script></block-definition><block-definition s="login to %&apos;name&apos; as %&apos;username&apos; with password %&apos;password&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block></custom-block></block><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportVariadicEquals"><list><block var="password"/><block s="reportListItem"><l>2</l><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block></custom-block></block></list></block></list></block><block s="reportNot"><block s="reportListContainsItem"><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></custom-block><block var="username"/></block></block></list></block><script><block s="doAddToList"><block var="username"/><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></custom-block></block></script><list></list></block></script></block-definition><block-definition s="logout from %&apos;name&apos; as %&apos;username&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeleteFromList"><block s="reportListIndex"><block var="username"/><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></custom-block></block><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></custom-block></block></script></block-definition><block-definition s="get content of %&apos;name&apos; as %&apos;username&apos;" type="reporter" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportListContainsItem"><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:users</l></list></block></custom-block><block var="username"/></block><script><block s="doReport"><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:content</l></list></block></custom-block></block></script><list></list></block></script></block-definition><block-definition s="clear content of %&apos;name&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeleteFromList"><l><option>all</option></l><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:content</l></list></block></custom-block></block></script></block-definition><block-definition s="restart server named %&apos;name&apos;" type="command" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><custom-block s="stop server named %txt"><block var="name"/></custom-block><block s="doWait"><l>1</l></block><custom-block s="start server named %txt"><block var="name"/></custom-block></script></block-definition><block-definition s="is %&apos;name&apos; running?" type="predicate" category="Server"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><custom-block s="get %s"><block s="reportJoinWords"><list><block var="name"/><l>:data</l></list></block></custom-block></block></block></script></block-definition><block-definition s="open window | HTML: %&apos;html&apos; title: %&apos;title&apos; width: %&apos;width&apos; height: %&apos;height&apos; x: %&apos;x&apos; y: %&apos;y&apos;" type="command" category="JavaScript"><comment x="0" y="0" w="131.66666666666669" collapsed="false">Displays a HTML window.</comment><header></header><code></code><translations></translations><inputs><input type="%code"></input><input type="%s"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l><l>b</l><l>c</l><l>d</l><l>e</l><l>f</l></list><l>var myWindow;&#xD;&#xD;myWindow = window.open("", "myWindow", "width=" + c + ",height=" + d + ",left=" + e + ",top=" + f);&#xD;myWindow.document.write("&lt;title&gt;" + b + "&lt;/title&gt;" + a + "");</l></block><list><block var="html"/><block var="title"/><block var="width"/><block var="height"/><block var="x"/><block var="y"/></list></block></script></block-definition><block-definition s="pressed key" type="reporter" category="sensing"><variables><list struct="atomic" id="128257">keys</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>keys</l><block s="reportTextSplit"><custom-block s="multiline %mlt"><l>0&#xD;1&#xD;2&#xD;3&#xD;4&#xD;5&#xD;6&#xD;7&#xD;8&#xD;9&#xD;up arrow&#xD;down arrow&#xD;right arrow&#xD;left arrow&#xD;enter&#xD;space&#xD;+&#xD;-&#xD;*&#xD;/&#xD;a&#xD;b&#xD;c&#xD;d&#xD;e&#xD;f&#xD;g&#xD;h&#xD;i&#xD;j&#xD;k&#xD;l&#xD;m&#xD;n&#xD;o&#xD;p&#xD;q&#xD;r&#xD;s&#xD;t&#xD;u&#xD;v&#xD;w&#xD;x&#xD;y&#xD;z&#xD;,&#xD;.</l></custom-block><l><option>line</option></l></block></block><block s="doWarp"><script><block s="doForEach"><l>key</l><block var="keys"/><script><block s="doIf"><block s="reportKeyPressed"><block var="key"/></block><script><block s="doReport"><block var="key"/></block></script><list></list></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="this" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportGet"><l><option>self</option></l></block></block></script></block-definition><block-definition s="add view | id: %&apos;id&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=write&amp;content=</l><block s="reportVariadicSum"><list><block s="reportCombine"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="id"/><l>_id_</l><l>snappublicviewcounter</l></list></block><l>.txt</l></list></block></block><l></l></block></block></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>1</l></list></block><l>&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="id"/><l>_id_</l><l>snappublicviewcounter</l></list></block><l>.txt</l></list></block></block></custom-block></script></block-definition><block-definition s="see views | id: %&apos;id&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="id"/><l>_id_</l><l>snappublicviewcounter</l></list></block><l>.txt</l></list></block></block><l></l></block></block></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="setup viewcount | id: %&apos;id&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=write&amp;content=</l><l>1</l><l>&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="id"/><l>_id_</l><l>snappublicviewcounter</l></list></block><l>.txt</l></list></block></block></custom-block></script></block-definition><block-definition s="Notification $nl (title,text,icon link,image link, on click...) $nl %&apos;Title&apos; %&apos;text&apos; %&apos;icon link&apos; %&apos;image link&apos; %&apos;on click&apos;" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Sends a notification to the users computer with a title, text, icon and an image and a script of what to do when the notification is clicked.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input><input type="%txt"></input><input type="%txt"></input><input type="%cmdRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>title</l><l>text</l><l>icon</l><l>image</l><l>onclick</l></list><l>if (!("Notification" in window)) {}&#xD;  else if (Notification.permission === "granted") {&#xD;    var notification = new Notification(title, {body:text, icon:icon, image:image});&#xD;    if (onclick instanceof Function){&#xD;notification.onclick = onclick;&#xD;} else {&#xD;notification.onclick = function () {&#xD;invoke(onclick, new List);&#xD;}}&#xD;  }&#xD;  else if (Notification.permission !== "denied") {&#xD;    Notification.requestPermission().then(function (permission) {&#xD;    if (permission === "granted") {&#xD;        var notification = new Notification(text);&#xD;        if (onclick instanceof Function){&#xD;notification.onclick = onclick;&#xD;} else {&#xD;notification.onclick = function () {&#xD;invoke(onclick, new List);&#xD;}}&#xD;      }&#xD;    });&#xD;  }</l></block><list><block var="Title"/><block var="text"/><block var="icon link"/><block var="image link"/><block var="on click"/></list></block></script></block-definition><block-definition s="$cloudGradient Cloud ID" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return cloudid;</l></block><list></list></block></block></script></block-definition><block-definition s="remove the %&apos;first/last&apos; character in %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Removes the last or first character of a string.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>first&#xD;last</options></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="first/last"/><l>last</l></list></block><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return(text.slice(0, -1));</l></block><list><block var="text"/></list></block><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return(text.substring(1));</l></block><list><block var="text"/></list></block></block></block></script></block-definition><block-definition s="get var names" type="reporter" category="variables"><comment x="0" y="0" w="90" collapsed="false">Gets all the variable name in this project</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>var ide = world.children[0];&#xD;return(JSON.stringify(ide.getVarNames()));</l></block><list></list></block></block><block s="doSetVar"><l>b</l><block s="reportTextSplit"><block var="a"/><l><option>json</option></l></block></block><block s="doReport"><block var="b"/></block></script></block-definition><block-definition s="Add %&apos;item&apos; to clipboard" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Add a text to your clipboard</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>item</l></list><l>if("clipboard" in navigator) {&#xD;  navigator.clipboard.writeText(item)&#xD;} else {alert("I can&apos;t send " + item + " to clipboard.")}</l></block><list><block var="item"/></list></block></script></block-definition><block-definition s="Load XML Project $nl (Leave blank to load this project) %&apos;XML&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Loads a project with it&apos;s XML code. Leave blank to load this project. Will not save any unsaved changes or prompt you to save them bofre loading.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="XML"/><l></l></list></block><script><block s="doSetVar"><l>XML</l><custom-block s="get Project (XML)"></custom-block></block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>projectData</l></list><l>var ide = world.children[0];&#xD;ide.loadProjectXML(projectData);</l></block><list><block var="XML"/></list></block></script></block-definition><block-definition s="Last project" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Will return the users last project.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>28</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><l>https://snap.berkeley.edu/api/v1/projects/</l><custom-block s="username"></custom-block></list></block></block><l>"</l></block></block></block></script></block-definition><block-definition s="if %&apos;a&apos; = %&apos;b&apos; then %&apos;scriptA&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Simplified if (x = y){ } block</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%cs"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block><script><block s="doRun"><block var="scriptA"/><list></list></block></script><list></list></block></script></block-definition><block-definition s="Export list into .csv (list, list name) %&apos;list&apos; %&apos;list name&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">Exports a list as a csv file to your computer.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt"></input></inputs><script><custom-block s="$arrowDown Save File %br (file name, contents, ext.) %br %txt %txt %txt"><block var="list name"/><block s="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>, </l><l></l></list></block></autolambda><list></list></block></block><l>csv</l></custom-block></script></block-definition><block-definition s="ask for file" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="ask for file %&apos;type&apos; %&apos;callback&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%mult%s">.csv</input><input type="%cmdRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>typesList</l><l>callback</l></list><l>var receiver = this;&#xD;&#xD;var input = document.createElement("input");&#xD;input.type = "file";&#xD;input.id = "fileInput";&#xD;input.style = "position:absolute;display:none;"&#xD;input.multiple = true;&#xD;document.body.appendChild(input);&#xD;console.log(callback);&#xD;&#xD;input.onchange = function() {&#xD;  delete input.onchange;&#xD;&#xD;  //copied from Process.prototype.fork&#xD;  var proc = new Process();&#xD;  var stage = receiver.parentThatIsA(StageMorph);&#xD;  proc.instrument = receiver.instrument;&#xD;  proc.receiver = receiver;&#xD;  proc.initializeFor(callback, new List([new List(input.files)]) );&#xD;  stage.threads.processes.push(proc);&#xD;}&#xD;&#xD;var types = typesList.asArray();&#xD;&#xD;//compile types list to comma separated list&#xD;var accept = "";&#xD;&#xD;if (types.length &gt; 0) {&#xD;  for (let i in types) {&#xD;    let v = types[i];&#xD;    &#xD;    if (typeof v == "string") {&#xD;      accept += v&#xD;    }&#xD;    &#xD;    if (i + 1 &lt; types.length) { //last item doesn&apos;t have a comma at the end&#xD;      accept += ","&#xD;    }&#xD;  }&#xD;} else {&#xD;  accept = "*.*"; //i think that means all files&#xD;}&#xD;&#xD;input.accept = accept; &#xD;input.click();</l></block><list><block var="type"/><block var="callback"/></list></block></script></block-definition><block-definition s="read file %&apos;file&apos; as %&apos;type&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%txt">text</input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block s="reportJSFunction"><list><l>file</l><l>type</l><l>process</l></list><l>if (!(file instanceof File)) throw new Error("Not a file");&#xD;&#xD;var reader = new FileReader();&#xD;var readerResult;&#xD;&#xD;var isMedia = type == "costume" || type == "vector costume" || type == "sound";&#xD;&#xD;reader.addEventListener("load", function() {&#xD;    var res = reader.result;&#xD;&#xD;    if (type == "costume" || type == "vector costume") {&#xD;        var img = document.createElement("img");&#xD;        &#xD;        img.onload = function() {&#xD;          //for bitmap costume&#xD;          if (type == "costume") {&#xD;            var canvas = document.createElement("canvas");&#xD;            canvas.width = img.width;&#xD;            canvas.height = img.height;&#xD;            canvas.getContext("2d").drawImage(img, 0, 0);&#xD;&#xD;            readerResult = new Costume(canvas, file.name);&#xD;          } else if (type == "vector costume") { //for vector costume&#xD;            readerResult = new SVG_Costume(img, file.name);&#xD;          }&#xD;&#xD;          process.resume()&#xD;        }&#xD;&#xD;        img.src = res;&#xD;    } else if (type == "sound") {&#xD;       var audioElem = document.createElement("audio");&#xD;&#xD;       audioElem.type = file.type;&#xD;       audioElem.src = res;&#xD;&#xD;       readerResult = new Sound(audioElem, file.name);&#xD;       process.resume(); &#xD;    } else {&#xD;        readerResult = res;&#xD;        process.resume();&#xD;    }&#xD;})&#xD;    &#xD;if (isMedia) {&#xD;  if (type == "costume" &amp;&amp; file.type.slice(0, 6) != "image/") throw new Error("Not an image file");&#xD;  if (type == "vector costume" &amp;&amp; file.type != "image/svg+xml") throw new Error("Not an SVG file");&#xD;  if (type == "sound" &amp;&amp; file.type.slice(0, 6) != "audio/") throw new Error("Not an audio file");&#xD;&#xD;  reader.readAsDataURL(file);&#xD;} else if (type == "text") {&#xD;  reader.readAsText(file);&#xD;} else if (type == "binary string") {&#xD;  reader.readAsBinaryString(file);&#xD;} else {&#xD;  throw new Error("Incorrect type");&#xD;}&#xD;&#xD;process.homeContext.variables.addVar("res")&#xD;process.pause();&#xD;&#xD;return function() {&#xD;  return readerResult;&#xD;}</l></block><list><block var="file"/><block var="type"/></list></block><list></list></block></block></script></block-definition><block-definition s="import list" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">Asks for csv file. Will only stop once the file is given or is manually stopped by clicking the block.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>csv</l></list></block><block s="doSetVar"><l>csv</l><l>0</l></block><custom-block s="ask for file %mult%s %cmdRing"><list><l></l></list><block s="reifyScript"><script><block s="doSetVar"><l>csv</l><block s="reportListItem"><l>1</l><l/></block></block></script><list></list></block></custom-block><block s="doWaitUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="csv"/><l>0</l></list></block></block></block><block s="doReport"><block s="reportTextSplit"><custom-block s="read file %l as %txt"><block var="csv"/><l>text</l></custom-block><l>, </l></block></block></script></block-definition><block-definition s="Load a Scratch project %&apos;projectID&apos;" type="command" category="other"><comment x="0" y="0" w="129" collapsed="false">Will load a Scratch project with a valid project ID in a popup window.</comment><header></header><code></code><translations></translations><inputs><input type="%n">413530886</input></inputs><script><block s="doDeclareVariables"><list><l>api</l><l>html</l><l>api2</l><l>userID</l></list></block><block s="doSetVar"><l>api</l><block s="reportTextSplit"><custom-block s="URL %txt"><block s="reportJoinWords"><list><l>https://api.scratch.mit.edu/projects/</l><block var="projectID"/></list></block></custom-block><l><option>json</option></l></block></block><block s="doSetVar"><l>api2</l><block s="reportTextSplit"><block s="reportTextSplit"><custom-block s="URL %txt"><block s="reportJoinWords"><list><l>https://api.scratch.mit.edu/projects/</l><block var="projectID"/></list></block></custom-block><l><option>csv</option></l></block><l>:</l></block></block><block s="doSetVar"><l>userID</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><custom-block s="get scratch user info %txt"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>10</l><block var="api2"/></block></block></custom-block></block></block></block><block s="doSetVar"><l>html</l><block s="reportJoinWords"><list><l>&lt;html&gt;&lt;title&gt;</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="api"/></block></block><l> on Scratch&lt;/title&gt;</l><block s="reportJoinWords"><list><l>&lt;h1 style="font-family:verdana;"&gt;</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>2</l><block var="api"/></block></block><l>&lt;/h1&gt;</l><block s="reportJoinWords"><list><l>&lt;h2&gt;By:&lt;a href="https://scratch.mit.edu/users/</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>10</l><block var="api2"/></block></block><l>/" target="_blank"&gt;&lt;img class="avatar"src="https://cdn2.scratch.mit.edu/get_image/user/</l><block var="userID"/><l>_80x80.png"&gt;</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>10</l><block var="api2"/></block></block><l>&lt;/a&gt;&lt;/h2&gt;</l><block s="reportJoinWords"><list><l>&lt;br&gt;&lt;iframe src="https://scratch.mit.edu/projects/</l><block var="projectID"/><l>/embed" allowtransparency="true" width="485" height="402" frameborder="0" scrolling="no" allowfullscreen&gt;&lt;/iframe&gt;&lt;br&gt;&lt;div class="stats"&gt;&lt;b&gt;&lt;p&gt;Stats&lt;/p&gt;&lt;/b&gt;</l><l>&lt;img src="https://scratch.mit.edu/svgs/project/love-gray.svg"</l><l>&lt;p&gt;&lt;b&gt;</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>30</l><block var="api2"/></block></block><l>&lt;/p&gt;</l></list></block><l>&lt;img src="https://scratch.mit.edu/svgs/project/fav-gray.svg"&lt;p&gt;</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>31</l><block var="api2"/></block></block><l>&lt;/p&gt;&lt;/b&gt;</l><l>&lt;img src="https://scratch.mit.edu/svgs/project/remix-gray.svg"&lt;p&gt;&lt;b&gt;</l><custom-block s="remove the %s character in %txt"><l>last</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>32</l><block var="api2"/></block></block></custom-block><l>&lt;/p&gt;&lt;/b&gt;&lt;img src="https://scratch.mit.edu/svgs/project/views-gray.svg"&lt;p&gt;&lt;b&gt;</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>29</l><block var="api2"/></block></block><l>&lt;/p&gt;&lt;/b&gt;&lt;/div&gt;</l></list></block><l>&lt;h2 style="font-family:verdana;"&gt;Instructions&lt;/h2&gt;</l><l>&lt;h3 style="font-family:verdana;"&gt;</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>4</l><block var="api"/></block></block><l>&lt;/h3&gt;</l><l>&lt;h2 style="font-family:verdana;"&gt;</l><l>Notes and Credits&lt;/h2&gt;</l><l>&lt;h3 style="font-family:verdana;"&gt;</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block var="api"/></block></block><l>&lt;/h3&gt;</l><l>&lt;style&gt;h1 {border: 2px solid grey;&#xD;  border-radius: 5px;} h3, .stats {border: 2px solid grey;&#xD;  border-radius: 5px;} a {color:black;  font-size:60px;} a:hover, a:visited, a:link, a:active&#xD;{text-decoration: none;&#xD;} img { vertical-align: middle;} .stats {width:50px; height:200px; text-align:left; html {float:center;}&lt;/style&gt;&lt;/html&gt;</l></list></block></list></block></block><custom-block s="Run HTML %s"><block var="html"/></custom-block></script><scripts><script x="2433.8857421875" y="609.3333333333346"><block var="html"/></script></scripts></block-definition><block-definition s="Play 2048" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Play the 2048 game. ALL UNSAVED CHANGES WILL BE LOST.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var myWindow = window.open("2048", "2048", "width=1000,height=1000");&#xD;myWindow.document.write(&apos;&lt;iframe src="https://funhtml5games.com?embed=2048bit" style="width:530px;height:690px;border:none;" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&apos;);</l></block><list></list></block></script></block-definition><block-definition s="coordinates" type="reporter" category="motion"><comment x="0" y="0" w="90" collapsed="false">Reports the sprites X and Y coordinates in the form of a list.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block></block></script></block-definition><block-definition s="Popup HTML $nl (HTML, Height px, Width px) $nl %&apos;HTML&apos; %&apos;Height&apos; %&apos;Width&apos;" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Creates a popup page with your HTML and dimensions.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">&lt;p&gt;Hello World!&lt;/p&gt;</input><input type="%n">1000</input><input type="%n">1000</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>html</l><l>h</l><l>w</l></list><l>var myWindow = window.open("", "", "width=1000,height=1000");&#xD;  myWindow.document.write(html);</l></block><list><block var="HTML"/><custom-block s="Stringify %txt"><block var="Height"/></custom-block><custom-block s="Stringify %txt"><block var="Width"/></custom-block></list></block></script></block-definition><block-definition s="$nl multiline %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="173.1826171875" collapsed="false">Reports a string. Multiline-text-compatible.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="write %&apos;text&apos; with wrapping $nl size: %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">Just like it&apos;s counter-part but with wrapping and multiline.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%n"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>d</l><l>e</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list><custom-block s="coordinates"></custom-block><block s="direction"></block></list></block></block><block s="doSetVar"><l>b</l><block s="reifyScript"><script><block s="doSetVar"><l>e</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="a"/></block></block><block s="turn"><l>90</l></block><block s="forward"><block s="reportVariadicProduct"><list><block var="x"/><block var="size"/></list></block></block><block s="turnLeft"><l>90</l></block><block s="doIfElse"><block var="e"/><script><block s="down"></block></script><script><block s="up"></block></script></block></script><list><l>x</l></list></block></block><block s="doSetVar"><l>c</l><block s="reportTextSplit"><block var="text"/><l><option>line</option></l></block></block><custom-block s="for %upvar %upvar in %l %cs"><l>index</l><l>line</l><block var="c"/><script><custom-block s="for %upvar %upvar in %l %cs"><l>idx</l><l>word</l><block s="reportTextSplit"><block var="line"/><l> </l></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportVariadicSum"><list><block s="xPosition"></block><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportQuotient"><l>7</l><l>12</l></block><block var="size"/></list></block><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block></list></block></list></block><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block></list></block><script><block s="doRun"><block var="b"/><list><block s="reportVariadicSum"><list><block var="index"/><block var="d"/></list></block></list></block><block s="doChangeVar"><l>d</l><l>1</l></block></script><list></list></block><block s="write"><block var="word"/><block var="size"/></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="idx"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="line"/><l> </l></block></block></list></block></block><script><block s="write"><l> </l><block var="size"/></block></script><list></list></block></script></custom-block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="idx"/><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="line"/><l> </l></block></block></list></block></block><script><block s="doRun"><block var="b"/><list><block s="reportVariadicSum"><list><block var="index"/><block var="d"/></list></block></list></block></script><list></list></block></script></custom-block><block s="setHeading"><block s="reportListItem"><l>2</l><block var="a"/></block></block></script></block></script></block-definition><block-definition s="for %&apos;index&apos; %&apos;value&apos; in %&apos;data&apos; %&apos;function&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doForEach"><l>item</l><block var="data"/><script><block s="doSetVar"><l>value</l><block var="item"/></block><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doRun"><block var="function"/><list></list></block></script></block></script></block-definition><block-definition s="user info" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Reports user info.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportTextSplit"><block s="reportURL"><l>https://snap.berkeley.edu/api/v1/users/c</l></block><l><option>json</option></l></block></block></script></block-definition><block-definition s="get scratch user info %&apos;username&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Reports the Scratch user&apos;s information.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><custom-block s="URL %txt"><block s="reportJoinWords"><list><l>https://api.scratch.mit.edu/users/</l><block var="username"/></list></block></custom-block><l><option>json</option></l></block></block></script></block-definition><block-definition s="get Scratch project comment $nl (project ID, comment limit(NOT ID), multiple?) $nl %&apos;projectID&apos; %&apos;comment limit&apos; %&apos;multiple?&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Gets the project&apos;s comment and the author. Examples of use: Will get the first comment if comment limit is 1 and multiple is false. Will get the 7th comment if comment limit is 7 aand multiple is off. Will get the last 5 comments if comment limit is 5 and multiple is on.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%b">false</input></inputs><script><block s="doIfElse"><block s="reportNot"><block var="multiple?"/></block><script><block s="doDeclareVariables"><list><l>result</l><l>url</l><l>username</l></list></block><block s="doSetVar"><l>username</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block s="reportListItem"><l>10</l><block s="reportTextSplit"><custom-block s="URL %txt"><block s="reportJoinWords"><list><l>https://api.scratch.mit.edu/projects/</l><block var="projectID"/></list></block></custom-block><l><option>csv</option></l></block></block><l>:</l></block></block></block><block s="doSetVar"><l>url</l><block s="reportJoinWords"><list><l>https://api.scratch.mit.edu/users/</l><block s="reportJoinWords"><list><block var="username"/><l>/projects/</l><block var="projectID"/></list></block><l>/comments/?limit=40&amp;offset=0</l></list></block></block><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block s="reportTextSplit"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><block var="comment limit"/><block s="reportCDR"><block s="reportTextSplit"><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l>content":"</l></block><l><option>cr</option></l></block></block></block><l>"</l></block></block></block><l>content":"</l></block><l>" by "</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block s="reportListItem"><block var="comment limit"/><block s="reportCDR"><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l>username":"</l></block></block></block><l>"</l></block></block></list></block></block><block s="doReport"><block s="reportJoinWords"><list><l>"</l><block var="result"/><l>"</l></list></block></block></script><script><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="comment limit"/><script><block s="doAddToList"><custom-block s="get Scratch project comment %br (project ID, comment limit(NOT ID), multiple?) %br %n %n %b"><block var="projectID"/><block var="i"/><l><bool>false</bool></l></custom-block><block var="result"/></block></script></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="result"/></block><l>1</l></list></block><block var="result"/><custom-block s="list $arrowRight sentence %l"><block var="result"/></custom-block></block></block></script><l>error</l><script><block s="doChangeVar"><l>comment limit</l><l>-1</l></block><block s="doReport"><custom-block s="get Scratch project comment %br (project ID, comment limit(NOT ID), multiple?) %br %n %n %b"><block var="projectID"/><block var="comment limit"/><l><bool>true</bool></l></custom-block></block></script></custom-block></script></block></script></block-definition><block-definition s="get Scratch project scripts (json) (project ID) %&apos;projectID&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Reports the Scratch project&apos;s scripts in the form of JSON.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportURL"><block s="reportJoinWords"><list><l>https://projects.scratch.mit.edu/</l><block var="projectID"/></list></block></block></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="while %&apos;bool&apos; %&apos;script&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block var="bool"/></block><script><block s="doRun"><block var="script"/><list></list></block></script></block></script></block-definition><block-definition s="all costumes" type="reporter" category="looks"><comment x="0" y="0" w="90" collapsed="false">Reports all the costumes of this sprite.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportGet"><l><option>costumes</option></l></block></block></script></block-definition><block-definition s="current costume" type="reporter" category="looks"><comment x="0" y="0" w="90" collapsed="false">Reports the sprite&apos;s current costume.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportGet"><l><option>costume</option></l></block></block></script></block-definition><block-definition s="broadcast %&apos;message&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Boradcasts a message without having to create one.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>message</l></list><l>var ide = world.children[0];&#xD;ide.broadcast(message);</l></block><list><block var="message"/></list></block></script></block-definition><block-definition s="encode URL %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Encodes URL.</comment><header></header><code></code><translations>pt:o valor com chave _ em _&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>lst</l></list></block><block s="doSetVar"><l>lst</l><block s="reportTextSplit"><l>0,%00&#xD;1,%01&#xD;2,%02&#xD;3,%03&#xD;4,%04&#xD;5,%05&#xD;6,%06&#xD;7,%07&#xD;8,%08&#xD;9,%09&#xD;10,%0a&#xD;11,%0b&#xD;12,%0c&#xD;13,%0d&#xD;14,%0e&#xD;15,%0f&#xD;16,%10&#xD;17,%11&#xD;18,%12&#xD;19,%13&#xD;20,%14&#xD;21,%15&#xD;22,%16&#xD;23,%17&#xD;24,%18&#xD;25,%19&#xD;26,%1a&#xD;27,%1b&#xD;28,%1c&#xD;29,%1d&#xD;30,%1e&#xD;31,%1f&#xD;127,%7f&#xD;128,%80&#xD;129,%81&#xD;130,%82&#xD;131,%83&#xD;132,%84&#xD;133,%85&#xD;134,%86&#xD;135,%87&#xD;136,%88&#xD;137,%89&#xD;138,%8a&#xD;139,%8b&#xD;140,%8c&#xD;141,%8d&#xD;142,%8e&#xD;143,%8f&#xD;144,%90&#xD;145,%91&#xD;146,%92&#xD;147,%93&#xD;148,%94&#xD;149,%95&#xD;150,%96&#xD;151,%97&#xD;152,%98&#xD;153,%99&#xD;154,%9a&#xD;155,%9b&#xD;156,%9c&#xD;157,%9d&#xD;158,%9e&#xD;159,%9f&#xD;160,%a0&#xD;161,%a1&#xD;162,%a2&#xD;163,%a3&#xD;164,%a4&#xD;165,%a5&#xD;166,%a6&#xD;167,%a7&#xD;168,%a8&#xD;169,%a9&#xD;170,%aa&#xD;171,%ab&#xD;172,%ac&#xD;173,%ad&#xD;174,%ae&#xD;175,%af&#xD;176,%b0&#xD;177,%b1&#xD;178,%b2&#xD;179,%b3&#xD;180,%b4&#xD;181,%b5&#xD;182,%b6&#xD;183,%b7&#xD;184,%b8&#xD;185,%b9&#xD;186,%ba&#xD;187,%bb&#xD;188,%bc&#xD;189,%bd&#xD;190,%be&#xD;191,%bf&#xD;192,%c0&#xD;193,%c1&#xD;194,%c2&#xD;195,%c3&#xD;196,%c4&#xD;197,%c5&#xD;198,%v6&#xD;199,%c7&#xD;200,%c8&#xD;201,%c9&#xD;202,%ca&#xD;203,%cb&#xD;204,%cc&#xD;205,%cd&#xD;206,%ce&#xD;207,%cf&#xD;208,%d0&#xD;209,%d1&#xD;210,%d2&#xD;211,%d3&#xD;212,%d4&#xD;213,%d5&#xD;214,%d6&#xD;215,%d7&#xD;216,%d8&#xD;217,%d9&#xD;218,%da&#xD;219,%db&#xD;220,%dc&#xD;221,%dd&#xD;222,%de&#xD;223,%df&#xD;224,%e0&#xD;225,%e1&#xD;226,%e2&#xD;227,%e3&#xD;228,%e4&#xD;229,%e5&#xD;230,%e6&#xD;231,%e7&#xD;232,%e8&#xD;233,%e9&#xD;234,%ea&#xD;235,%eb&#xD;236,%ec&#xD;237,%ed&#xD;238,%ee&#xD;239,%ef&#xD;240,%f0&#xD;241,%f1&#xD;242,%f2&#xD;243,%f3&#xD;244,%f4&#xD;245,%f5&#xD;246,%f6&#xD;247,%f7&#xD;248,%f8&#xD;249,%f9&#xD;250,%fa&#xD;251,%fb&#xD;252,%fc&#xD;253,%fd&#xD;254,%fe&#xD;255,%ff&#xD;36,%24&#xD;38,%26&#xD;43,%2b&#xD;44,%2c&#xD;47,%2f&#xD;58,%3a&#xD;59,%3b&#xD;61,%3d&#xD;63,%3f&#xD;64,%40&#xD;32,%20&#xD;34,%22&#xD;60,%3c&#xD;62,%3e&#xD;35,%23&#xD;37,%25&#xD;123,%7b&#xD;125,%7d&#xD;124,%7c&#xD;92,%5c&#xD;94,%5e&#xD;126,%7e&#xD;91,%5b&#xD;93,%5d&#xD;96,%60</l><l><option>csv</option></l></block></block><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><script><block s="doDeclareVariables"><list><l>lookup result</l></list></block><block s="doSetVar"><l>lookup result</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="value"/></block><block s="reportUnicode"><block var="each char"/></block></list></block></autolambda><list><l>value</l></list></block><block var="lst"/></block></block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="lookup result"/><l></l></list></block><block var="each char"/><block s="reportListItem"><l><option>last</option></l><block var="lookup result"/></block></block></block></script><list><l>each char</l></list></block><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="auto save (on?, delay(secs)) $nl %&apos;save?&apos; %&apos;delay&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Auto-saves project every [delay] seconds.</comment><header></header><code></code><translations></translations><inputs><input type="%b">true</input><input type="%n"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>on</l></list><l>autoSave = on</l></block><list><block var="save?"/></list></block><block s="doForever"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block s="evaluate"><block s="reportJSFunction"><list></list><l>return (autoSave);</l></block><list></list></block></list></block><script><block s="doIf"><custom-block s="unsaved changes?"></custom-block><script><custom-block s="save project"></custom-block></script><list></list></block><block s="doWait"><block var="delay"/></block></script><script><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block></script></block-definition><block-definition s="custom dialog (body, title) %&apos;body&apos; %&apos;title&apos;" type="command" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Creates a custom dialog with the body and a title.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><custom-block s="let %upvar be %s"><l>var</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false;&#xD;dialog.destroy = function() {&#xD;    isDone = true;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.inform(title, body, this.world());&#xD;return () =&gt; (isDone);</l></block><list><block var="body"/><block var="title"/></list></block></custom-block><block s="doWaitUntil"><block s="evaluate"><block var="var"/><list></list></block></block></script></block-definition><block-definition s="type (text, delay(secs), sound?) $nl %&apos;text&apos; %&apos;delay&apos; %&apos;sound?&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">Writees each letter one at a time with a delay and with sound (optional).</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n">0.1</input><input type="%b">true</input></inputs><script><custom-block s="for %upvar %upvar in %l %cs"><l>index</l><l>value</l><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block><script><block s="doWait"><block var="delay"/></block><block s="write"><block var="value"/><l>12</l></block><block s="doIf"><block var="sound?"/><script><block s="doPlaySoundAtRate"><l>type</l><block s="reportVariadicProduct"><list><block s="reportRandom"><l>40</l><l>80</l></block><l>1000</l></list></block></block></script><list></list></block></script></custom-block></script></block-definition><block-definition s="write as typed $keyboardFilled" type="command" category="pen"><variables><list struct="atomic" id="129526">CAPS?,Saved</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>key</l></list></block><block s="doSetVar"><l>key</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportKeyPressed"><l></l></block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block s="reportUnicodeAsLetter"><block s="reportNumbers"><block s="reportUnicode"><l>a</l></block><block s="reportUnicode"><l>z</l></block></block></block><block s="reportNumbers"><l>0</l><l>9</l></block><block s="reportNewList"><list><l>`</l><l>&#126;</l><l>!</l><l>@</l><l>#</l><l>$</l><l>%</l><l>^</l><l>&amp;</l><l>*</l><l>(</l><l>)</l><l>-</l><l>_</l><l>=</l><l>+</l><l>[</l><l>]</l><l>{</l><l>}</l><l>;</l><l>:</l><l>&apos;</l><l>"</l><l>,</l><l>.</l><l>&lt;</l><l>&gt;</l><l>/</l><l>?</l><l>space</l><l>enter</l></list></block></list></block></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="key"/><l>space</l></list></block><script><block s="write"><l> </l><l>24</l></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="key"/><l>enter</l></list></block><script><block s="changeYPosition"><l>-30</l></block><block s="setXPosition"><l>-230</l></block></script><script><block s="doIfElse"><block s="reportKeyPressed"><block s="reportJoinWords"><list><l>tab</l></list></block></block><script><block s="doSetVar"><l>CAPS?</l><block s="reportNot"><block var="CAPS?"/></block></block></script><script><block s="doIf"><block s="reportKeyPressed"><block s="reportJoinWords"><list><l>shift</l></list></block></block><script><block s="fork"><block s="reifyScript"><script><block s="doSetVar"><l>CAPS?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><block s="reportJoinWords"><list><l>shift</l></list></block></block></block></block><block s="doIf"><block s="reportNot"><block s="reportKeyPressed"><block s="reportJoinWords"><list><l>shift</l></list></block></block></block><script><block s="doSetVar"><l>CAPS?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script><list></list></block><list></list></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><l>97</l><block s="reportUnicode"><block var="key"/></block></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportUnicode"><block var="key"/></block><l>122</l></list></block></list></block><block var="CAPS?"/></list></block><script><block s="write"><block s="reportUnicodeAsLetter"><block s="reportDifference"><block s="reportUnicode"><block var="key"/></block><l>32</l></block></block><l>24</l></block></script><script><block s="write"><block var="key"/><l>24</l></block></script></block></script></block></script></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="xPosition"></block><block s="reportDifference"><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block><l>10</l></block></list></block><script><block s="changeYPosition"><l>-30</l></block><block s="setXPosition"><block s="reportDifference"><l>0</l><block s="reportDifference"><block s="reportAttributeOf"><l><option>right</option></l><l>Stage</l></block><l>10</l></block></block></block></script><list></list></block></script></block-definition><block-definition s="set cloud var %&apos;cloud&apos; to %&apos;value&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="fork"><block s="reifyScript"><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>set/</l><custom-block s="cloud ID"></custom-block><l>/</l><block var="cloud"/><l>/</l><block var="value"/><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="cloud var %&apos;s&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doForEach"><l>item</l><block var="varcache"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="item"/></block><block var="s"/></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="item"/></block></block></script><list></list></block></script></block></script><scripts><script x="352" y="61.666666666666686"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return varcache[a];</l></block><list><block var="s"/></list></block></script></scripts></block-definition><block-definition s="cloud ID %&apos;m&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>cloudid</l><block var="m"/></block><custom-block s="ping %upvar"><l>error</l></custom-block><block s="doIf"><block var="error"/><script><custom-block s="sign up"></custom-block></script><list></list></block></script><scripts><script x="196" y="86.80000000000001"><block s="doDeclareVariables"><list><l>s</l></list></block><block s="doSetVar"><l>s</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return location.hash.replace("#","")</l></block><list></list></block></block><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>cloudid = a||"default";</l></block><list><block var="s"/></list></block></script></scripts></block-definition><block-definition s="cloud ID" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block var="cloudid"/></block></script></block-definition><block-definition s="cache cloud vars %&apos;var&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doSetVar"><l>varcache</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="var"/><script><block s="doAddToList"><block s="reportNewList"><list><block var="item"/><l>0</l></list></block><block var="varcache"/></block></script></block><block s="doForever"><script><block s="doForEach"><l>item</l><block var="var"/><script><block s="doForEach"><l>jtem</l><block var="varcache"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="item"/><block s="reportListItem"><l>1</l><block var="jtem"/></block></list></block><script><block s="doReplaceInList"><l>2</l><block var="jtem"/><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><l>get/</l><block s="reportJoinWords"><list><custom-block s="cloud ID"></custom-block><l>/</l><block var="item"/><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></block></script><list></list></block></script></block></script></block></script></block></script><list></list></block><list></list></block></script><scripts><script x="33" y="404.33333333333366"><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block s="reportJSFunction"><list><l>t</l></list><l>console.log("Cached vars!Time used:"+t+"ms")</l></block><list><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="a"/></block></list></block></script></scripts></block-definition><block-definition s="listify %&apos;s&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>c</l><l>e</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>c</l><block s="reportTextSplit"><block var="s"/><l><option>letter</option></l></block></block><block s="doSetVar"><l>e</l><l>0</l></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="e"/><block s="reportListAttribute"><l><option>length</option></l><block var="c"/></block></list></block><script><block s="doChangeVar"><l>e</l><l>1</l></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="e"/><block var="c"/></block><l>|</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportVariadicSum"><list><block var="e"/><l>1</l></list></block><block var="c"/></block><l>|</l></list></block></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportDifference"><block var="e"/><l>1</l></block><block var="c"/></block><l>|</l></list></block></block></list></block><script><block s="doAddToList"><l></l><block var="a"/></block><block s="doChangeVar"><l>e</l><l>1</l></block></script><script><block s="doReplaceInList"><l><option>last</option></l><block var="a"/><block s="reportJoinWords"><list><block s="reportListItem"><l><option>last</option></l><block var="a"/></block><block s="reportListItem"><block var="e"/><block var="c"/></block></list></block></block></script></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="replace %s %s %s"><l></l><l>||</l><l>|</l></custom-block></autolambda><list></list></block><block var="a"/></block></block></script></block-definition><block-definition s="replace %&apos;s&apos; %&apos;x&apos; %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportTextSplit"><block var="s"/><block var="x"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block var="y"/><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="stringify %&apos;s&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>| </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="replace %s %s %s"><l></l><l>|</l><l>||</l></custom-block></autolambda><list></list></block><block var="s"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l>| </l><l></l></list></block></autolambda><list></list></block></block></list></block></block></script></block-definition><block-definition s="add %&apos;s&apos; to cloud list %&apos;v&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doAddToList"><block var="s"/><block var="a"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="delete %&apos;s&apos; of cloud list %&apos;v&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doDeleteFromList"><block var="s"/><block var="a"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="insert %&apos;s&apos; at %&apos;l&apos; of cloud list %&apos;v&apos;" type="command" 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>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doInsertInList"><block var="s"/><block var="l"/><block var="a"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="replace item %&apos;l&apos; of cloud list %&apos;v&apos; with %&apos;s&apos;" type="command" 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>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block><block s="doReplaceInList"><block var="l"/><block var="a"/><block var="s"/></block><custom-block s="set cloud var %s to %s"><block var="v"/><custom-block s="stringify %l"><block var="a"/></custom-block></custom-block></script></block-definition><block-definition s="item %&apos;s&apos; of cloud list %&apos;v&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="s"/><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="v"/></custom-block></custom-block></block></block></script></block-definition><block-definition s="ping %&apos;error&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>ping/</l><custom-block s="cloud ID"></custom-block><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block><l>None</l></list></block><script><block s="doSetVar"><l>error</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doSetVar"><l>error</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="sign up" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>signup/</l><custom-block s="cloud ID"></custom-block><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></custom-block></script></block-definition><block-definition s="cloud list %&apos;g&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="listify %s"><custom-block s="cloud var %s"><block var="g"/></custom-block></custom-block></block></script></block-definition><block-definition s="all cloud vars" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><l>cvs/</l><block s="reportJoinWords"><list><custom-block s="cloud ID"></custom-block><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block><l>,</l></block></block><block s="doReplaceInList"><l>1</l><block var="a"/><custom-block s="all but first letter of %txt"><block s="reportListItem"><l>1</l><block var="a"/></block></custom-block></block><block s="doReplaceInList"><l><option>last</option></l><block var="a"/><custom-block s="all but last letter of %txt"><block s="reportListItem"><l><option>last</option></l><block var="a"/></block></custom-block></block><block s="doReport"><block var="a"/></block></script><scripts><script x="434.9951171875" y="139.90000000000015"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return new List(eval(a))</l></block><list><l></l></list></block></script></scripts></block-definition><block-definition s="delete cloud var %&apos;cloud&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="fork"><block s="reifyScript"><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><block var="server"/><block s="reportJoinWords"><list><l>del/</l><custom-block s="cloud ID"></custom-block><l>/</l><block var="cloud"/><l>/?user=</l><custom-block s="username"></custom-block></list></block></list></block></block></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="enter news provider from %&apos;url&apos;" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">api.scratch.mit.edu/news</input></inputs><script><custom-block s="Run HTML %s"><l></l></custom-block><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>d</l><l>e</l><l>f</l></list></block><block s="doSetVar"><l>a</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l><option>json</option></l></block></block></block></block><block s="doSetVar"><l>b</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l><option>json</option></l></block></block></block></block><block s="doSetVar"><l>c</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l><option>json</option></l></block></block></block></block><block s="doSetVar"><l>c</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>2</l><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l><option>json</option></l></block></block></block></block><block s="doSetVar"><l>d</l><block s="reportListItem"><l>4</l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l><option>json</option></l></block></block></block></block><block s="doSetVar"><l>e</l><block s="reportListItem"><l>5</l><block s="reportListItem"><l>4</l><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l><option>json</option></l></block></block></block></block><block s="doSetVar"><l>f</l><block s="reportListItem"><l>6</l><block s="reportListItem"><l>5</l><block s="reportTextSplit"><custom-block s="URL %txt"><block var="url"/></custom-block><l><option>json</option></l></block></block></block></block><block s="doDeleteFromList"><l>1</l><block var="a"/></block><block s="doDeleteFromList"><l>1</l><block var="b"/></block><block s="doDeleteFromList"><l>1</l><block var="c"/></block><block s="doDeleteFromList"><l>1</l><block var="d"/></block><block s="doDeleteFromList"><l>1</l><block var="e"/></block><block s="doDeleteFromList"><l>1</l><block var="f"/></block><custom-block s="Run HTML %s"><block s="reportJoinWords"><list><l>ID: </l><custom-block s="list $arrowRight sentence %l"><block var="a"/></custom-block><l> Stamp: </l><custom-block s="list $arrowRight sentence %l"><block var="b"/></custom-block><l> </l><l>&lt;h1&gt;</l><custom-block s="list $arrowRight sentence %l"><block var="c"/></custom-block><l>&lt;/h1&gt; URL:</l><l> </l><l>&lt;p&gt;&lt;a href="</l><custom-block s="list $arrowRight sentence %l"><block var="d"/></custom-block><l>"&gt;</l><custom-block s="list $arrowRight sentence %l"><block var="d"/></custom-block><l>&lt;/a&gt;&lt;/p&gt; </l><l>&lt;img src="</l><block var="e"/><l>"&gt; &lt;p&gt;</l><custom-block s="list $arrowRight sentence %l"><block var="f"/></custom-block><l>&lt;/p&gt;</l></list></block></custom-block></script></block-definition><block-definition s="list %&apos;list&apos; $arrowRight string, each item separated by %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><block var="text"/><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="cases: if %&apos;test&apos; then %&apos;result&apos; %&apos;more&apos;" type="command" category="control"><comment x="0" y="0" w="262" collapsed="false">Multi-branched conditional.&#xD;&#xD;If the first (Boolean) input is True, then the script in&#xD;the second (C-slot) input is run, and this block stops.&#xD;&#xD;Additional tests can be added by putting one or more&#xD;ELSE IF blocks in the third (variadic) Boolean slot.&#xD;Use the arrowheads to get the number of Boolean&#xD;slots you need.  Each ELSE IF block provides a Boolean&#xD;slot for a condition to test and a script slot for what to do&#xD;if the condition is True.  You can put an ELSE block in&#xD;the last Boolean input to CASES for a script to run if&#xD;all the tests turn out False.&#xD;&#xD;As soon as a condition is True, no further tests are done&#xD;and no further scripts are run.</comment><header></header><code></code><translations>pt:se _ , então _ _&#xD;</translations><inputs><input type="%b"></input><input type="%cs"></input><input type="%mult%boolUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="result"/><list></list></block></script><script><custom-block s="catch %upvar %cs"><l>tag</l><script><block s="doForEach"><l>item</l><block var="more"/><script><block s="doIf"><block s="evaluate"><block var="item"/><list></list></block><script><custom-block s="throw %s"><block var="tag"/></custom-block></script><list></list></block></script></block></script></custom-block></script></block></script></block-definition><block-definition s="else if %&apos;test&apos; then %&apos;action&apos;" type="predicate" category="control"><comment x="0" y="0" w="176" collapsed="false">For use with the CASES block.&#xD;See its help message.</comment><header></header><code></code><translations>pt:senão, se _ , então _&#xD;</translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="else %&apos;action&apos;" type="predicate" category="control"><comment x="0" y="0" w="176" collapsed="false">For use with the CASES block.&#xD;See its help message.</comment><header></header><code></code><translations>pt:senão, _&#xD;</translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="report error %&apos;msg&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg);</l></block><list><block var="msg"/></list></block></block></script></block-definition><block-definition s="$brush set pen to crayon %&apos;which&apos;" type="command" category="pen"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports one of 100 preselected colors, like a box of 100 crayons.&#xD;The colors have names that are meant to be evocative.&#xD;They are organized in families, more or less corresponding&#xD;to spectral (rainbow) colors; the input slot has a two-level menu&#xD;in which you can hover over a family name to see the colors&#xD;of that family, each including a crayon number and an RGB value. &#xD;See Appendix A of the Snap! Reference Manual for more details.</comment><header></header><code></code><translations></translations><inputs><input type="%n"><options>grays={&#xD;0 black #000000=0&#xD;1 gray7 #121212=1&#xD;2 gray14 #242424=2&#xD;3 gray21 #363636=3&#xD;4 gray28 #484848=4&#xD;5 gray36 #5c5c5c=5&#xD;6 gray43 #6d6d6d=6&#xD;7 gray50 #7f7f7f=7&#xD;8 gray57 #919191=8&#xD;9 gray64 #a3a3a3=9&#xD;10 gray71 #b5b5b5=10&#xD;11 gray78 #c8c8c8=11&#xD;12 gray85 #dadada=12&#xD;13 gray92 #ececec=13&#xD;14 white #ffffff=14&#xD;}&#xD;pinks={&#xD;15 deep pink #ff1493=15&#xD;16 hot pink #ff69b4=16&#xD;17 bright pink #ff007f=17&#xD;18 raspberry #e30b5d=18&#xD;19 amaranth #e52b50=19&#xD;}&#xD;reds={&#xD;20 red #ff0000=20&#xD;21 burgundy #900020=21&#xD;22 cherry #990000=22&#xD;23 dark candy apple red #a40000=23&#xD;24 sanguine #c00000=24&#xD;25 maroon #800000=25&#xD;26 crimson #c90016=26&#xD;27 Lists #d94d11=27&#xD;28 candy apple red #ff0800=28&#xD;29 coquelicot #ff3800=29&#xD;}&#xD;browns={&#xD;30 saddle brown #8b4513=30&#xD;31 chocolate #7b3f00=31&#xD;32 kobicha #6b4423=32&#xD;33 sepia #704214=33&#xD;34 chestnut #954535=34&#xD;35 dark brown #654321=35&#xD;36 brown #964b00=36&#xD;37 golden brown #996515=37&#xD;38 cinnamon #b87333=38&#xD;39 copper #d2691e=39&#xD;}&#xD;oranges={&#xD;40 orange #ff7f00=40&#xD;41 Pantone orange #ff5800=41&#xD;42 pumpkin #ff7518=42&#xD;43 Variables #f3761d=43&#xD;44 Spanish orange #e86100=44&#xD;45 burnt orange #cc5500=45&#xD;46 sinopia #cb410b=46&#xD;47 ochre #cc7722=47&#xD;48 carrot #ed9121=48&#xD;49 tangerine #f28500=49&#xD;}&#xD;yellows={&#xD;50 yellow #ffff00=50&#xD;51 Control #e6a822=51&#xD;52 dark goldenrod #b8860b=52&#xD;53 goldenrod #daa520=53&#xD;54 saffron #f4c430=54&#xD;55 sandstorm #ecd540=55&#xD;56 mustard #ffdb58=56&#xD;57 gold #ffd700=57&#xD;58 egg yolk #fee33e=58&#xD;59 rubber duck #fbe108=59&#xD;}&#xD;greens={&#xD;60 lime #00ff00=60&#xD;61 apple green #8db600=61&#xD;62 Operators #62c213=62&#xD;63 forest green #228b22=63&#xD;64 green #008000=64&#xD;65 dark green #006400=65&#xD;66 dark pastel green #03c03c=66&#xD;67 emerald #50c878=67&#xD;68 mint #3eb489=68&#xD;69 Pen #00a178=69&#xD;}&#xD;cyans={&#xD;70 aqua (cyan) #00ffff=70&#xD;71 dark cyan #008b8b=71&#xD;72 cerulean #007ba7=72&#xD;73 iceberg #71a6d2=73&#xD;74 Sensing #0494dc=74&#xD;75 teal #008080=75&#xD;76 light sky blue #87cefa=76&#xD;77 deep sky blue #00bfff=77&#xD;78 dodger blue #1e90ff=78&#xD;79 azure #007fff=79&#xD;}&#xD;blues={&#xD;80 blue #0000ff=80&#xD;81 midnight blue #191970=81&#xD;82 dark powder blue #003399=82&#xD;83 cobalt #0047ab=83&#xD;84 denim #1560bd=84&#xD;85 navy blue #000080=85&#xD;86 steel blue #4682b4=86&#xD;87 Motion #4a6cd4=87&#xD;88 cornflower #6495ed=88&#xD;89 slate blue #6a5acd=89&#xD;}&#xD;purples={&#xD;90 violet #8000ff=90&#xD;91 Looks #8f56e3=91&#xD;92 grape #6f2da8=92&#xD;93 indigo #4b0082=93&#xD;94 x11 purple #a020f0=94&#xD;95 magenta (fuchia) #ff00ff=95&#xD;96 dark orchid #9932cc=96&#xD;97 Sound #cf4ad9=97&#xD;98 purple #7f007f=98&#xD;99 dark magenta #8b008b=99&#xD;}</options></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doSetVar"><l>✐ last crayon</l><block var="which"/></block><block s="doSetVar"><l>✐ last set as</l><l>crayon</l></block><block s="doSetVar"><l>✐ fair?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doIf"><block s="reportNot"><custom-block s="does var %s exist?"><l>✐ crayon colors</l></custom-block></block><script><custom-block s="create %s var %mult%txt"><l>global</l><list><l>✐ crayon colors</l></list></custom-block><block s="doSetVar"><l>✐ crayon colors</l><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>18</l><l>18</l><l>18</l></list></block><block s="reportNewList"><list><l>36</l><l>36</l><l>36</l></list></block><block s="reportNewList"><list><l>54</l><l>54</l><l>54</l></list></block><block s="reportNewList"><list><l>72</l><l>72</l><l>72</l></list></block><block s="reportNewList"><list><l>92</l><l>92</l><l>92</l></list></block><block s="reportNewList"><list><l>109</l><l>109</l><l>109</l></list></block><block s="reportNewList"><list><l>127</l><l>127</l><l>127</l></list></block><block s="reportNewList"><list><l>145</l><l>145</l><l>145</l></list></block><block s="reportNewList"><list><l>163</l><l>163</l><l>163</l></list></block><block s="reportNewList"><list><l>181</l><l>181</l><l>181</l></list></block><block s="reportNewList"><list><l>200</l><l>200</l><l>200</l></list></block><block s="reportNewList"><list><l>218</l><l>218</l><l>218</l></list></block><block s="reportNewList"><list><l>236</l><l>236</l><l>236</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>255</l><l>20</l><l>147</l></list></block><block s="reportNewList"><list><l>255</l><l>105</l><l>180</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>127</l></list></block><block s="reportNewList"><list><l>227</l><l>11</l><l>93</l></list></block><block s="reportNewList"><list><l>229</l><l>43</l><l>80</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>144</l><l>0</l><l>32</l></list></block><block s="reportNewList"><list><l>153</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>164</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>192</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>128</l><l>0</l><l>0</l></list></block><block s="reportNewList"><list><l>201</l><l>0</l><l>22</l></list></block><block s="reportNewList"><list><l>217</l><l>77</l><l>17</l></list></block><block s="reportNewList"><list><l>255</l><l>8</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>56</l><l>0</l></list></block><block s="reportNewList"><list><l>139</l><l>69</l><l>19</l></list></block><block s="reportNewList"><list><l>123</l><l>63</l><l>0</l></list></block><block s="reportNewList"><list><l>107</l><l>68</l><l>35</l></list></block><block s="reportNewList"><list><l>112</l><l>66</l><l>20</l></list></block><block s="reportNewList"><list><l>149</l><l>69</l><l>53</l></list></block><block s="reportNewList"><list><l>101</l><l>67</l><l>33</l></list></block><block s="reportNewList"><list><l>150</l><l>75</l><l>0</l></list></block><block s="reportNewList"><list><l>153</l><l>101</l><l>21</l></list></block><block s="reportNewList"><list><l>184</l><l>115</l><l>51</l></list></block><block s="reportNewList"><list><l>210</l><l>105</l><l>30</l></list></block><block s="reportNewList"><list><l>255</l><l>127</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>88</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>117</l><l>24</l></list></block><block s="reportNewList"><list><l>243</l><l>118</l><l>29</l></list></block><block s="reportNewList"><list><l>232</l><l>97</l><l>0</l></list></block><block s="reportNewList"><list><l>204</l><l>85</l><l>0</l></list></block><block s="reportNewList"><list><l>203</l><l>65</l><l>11</l></list></block><block s="reportNewList"><list><l>204</l><l>119</l><l>34</l></list></block><block s="reportNewList"><list><l>237</l><l>145</l><l>33</l></list></block><block s="reportNewList"><list><l>242</l><l>133</l><l>0</l></list></block><block s="reportNewList"><list><l>255</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>230</l><l>168</l><l>34</l></list></block><block s="reportNewList"><list><l>184</l><l>134</l><l>11</l></list></block><block s="reportNewList"><list><l>218</l><l>165</l><l>32</l></list></block><block s="reportNewList"><list><l>244</l><l>196</l><l>48</l></list></block><block s="reportNewList"><list><l>236</l><l>213</l><l>64</l></list></block><block s="reportNewList"><list><l>255</l><l>219</l><l>88</l></list></block><block s="reportNewList"><list><l>255</l><l>215</l><l>0</l></list></block><block s="reportNewList"><list><l>254</l><l>227</l><l>62</l></list></block><block s="reportNewList"><list><l>251</l><l>225</l><l>8</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>0</l></list></block><block s="reportNewList"><list><l>141</l><l>182</l><l>0</l></list></block><block s="reportNewList"><list><l>98</l><l>194</l><l>19</l></list></block><block s="reportNewList"><list><l>34</l><l>139</l><l>34</l></list></block><block s="reportNewList"><list><l>0</l><l>128</l><l>0</l></list></block><block s="reportNewList"><list><l>0</l><l>100</l><l>0</l></list></block><block s="reportNewList"><list><l>3</l><l>192</l><l>60</l></list></block><block s="reportNewList"><list><l>80</l><l>200</l><l>120</l></list></block><block s="reportNewList"><list><l>62</l><l>180</l><l>137</l></list></block><block s="reportNewList"><list><l>0</l><l>161</l><l>120</l></list></block><block s="reportNewList"><list><l>0</l><l>255</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>139</l><l>139</l></list></block><block s="reportNewList"><list><l>0</l><l>123</l><l>167</l></list></block><block s="reportNewList"><list><l>113</l><l>166</l><l>210</l></list></block><block s="reportNewList"><list><l>4</l><l>148</l><l>220</l></list></block><block s="reportNewList"><list><l>0</l><l>128</l><l>128</l></list></block><block s="reportNewList"><list><l>135</l><l>206</l><l>250</l></list></block><block s="reportNewList"><list><l>0</l><l>191</l><l>255</l></list></block><block s="reportNewList"><list><l>30</l><l>144</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>127</l><l>255</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>25</l><l>25</l><l>112</l></list></block><block s="reportNewList"><list><l>0</l><l>51</l><l>153</l></list></block><block s="reportNewList"><list><l>0</l><l>71</l><l>171</l></list></block><block s="reportNewList"><list><l>21</l><l>96</l><l>189</l></list></block><block s="reportNewList"><list><l>0</l><l>0</l><l>128</l></list></block><block s="reportNewList"><list><l>70</l><l>130</l><l>180</l></list></block><block s="reportNewList"><list><l>74</l><l>108</l><l>212</l></list></block><block s="reportNewList"><list><l>100</l><l>149</l><l>237</l></list></block><block s="reportNewList"><list><l>106</l><l>90</l><l>205</l></list></block><block s="reportNewList"><list><l>128</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>143</l><l>86</l><l>227</l></list></block><block s="reportNewList"><list><l>111</l><l>45</l><l>168</l></list></block><block s="reportNewList"><list><l>75</l><l>0</l><l>130</l></list></block><block s="reportNewList"><list><l>160</l><l>32</l><l>240</l></list></block><block s="reportNewList"><list><l>255</l><l>0</l><l>255</l></list></block><block s="reportNewList"><list><l>153</l><l>50</l><l>204</l></list></block><block s="reportNewList"><list><l>207</l><l>74</l><l>217</l></list></block><block s="reportNewList"><list><l>127</l><l>0</l><l>127</l></list></block><block s="reportNewList"><list><l>139</l><l>0</l><l>139</l></list></block></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>color</l></list></block><block s="doSetVar"><l>color</l><block s="reportListItem"><block s="reportVariadicSum"><list><block s="reportModulus"><block var="which"/><l>100</l></block><l>1</l></list></block><block var="✐ crayon colors"/></block></block><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><block var="color"/></block><block s="reportListItem"><l>2</l><block var="color"/></block><block s="reportListItem"><l>3</l><block var="color"/></block></custom-block></script></block-definition><block-definition s="$brush change pen %&apos;dimension&apos; by %&apos;amount&apos;" type="command" category="pen"><comment x="0" y="0" w="334" collapsed="false">Changes any pen property by the specified amount.  Some color scales can&apos;t be adjusted this way unless the color was first SET using that scale.&#xD;Vectors (e.g., RGB color as a list of three numbers) can be incremented&#xD;by a vector as the amount. X11/W3C names can&apos;t be incremented.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>size&#xD;crayon&#xD;color&#xD;fair hue&#xD;transparency&#xD;(3D color spaces)={&#xD;fair HSL={&#xD;fair hue&#xD;fair saturation (HSL)&#xD;fair lightness&#xD;fair HSL vector&#xD;}&#xD;fair HSV={&#xD;fair hue&#xD;fair saturation (HSV)&#xD;fair value (brightness)&#xD;fair HSV vector&#xD;}&#xD;HSL={&#xD;hue&#xD;saturation (HSL)&#xD;lightness&#xD;HSL vector&#xD;}&#xD;HSV={&#xD;hue&#xD;saturation (HSV)&#xD;value (brightness)&#xD;HSV vector&#xD;}&#xD;RGB (0-255)={&#xD;red&#xD;green&#xD;blue&#xD;RGB vector&#xD;RGB hex&#xD;}&#xD;}</options></input><input type="%s"></input></inputs><script><custom-block s="✐ initialize variables"></custom-block><block s="doDeclareVariables"><list><l>old</l></list></block><block s="doSetVar"><l>old</l><custom-block s="$brush pen %s"><block var="dimension"/></custom-block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="old"/><l>not set</l></list></block><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>Dimension </l><block var="dimension"/><l> not set.</l></list></block></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>crayon</l></list></block><script><custom-block s="$brush set pen to crayon %n"><block s="reportVariadicSum"><list><block var="old"/><block var="amount"/></list></block></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>RGB hex</l></list></block><script><custom-block s="error %txt"><l>Sorry, I don&apos;t know how to add in hexadecimal.</l></custom-block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="amount"/><l><option>number</option></l></block><script><custom-block s="$brush set pen %s to %s"><block var="dimension"/><block s="reportVariadicSum"><list><block var="old"/><block var="amount"/></list></block></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="amount"/><l><option>list</option></l></block><script><custom-block s="$brush set pen %s to %s"><block var="dimension"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><block var="amount"/></list></custom-block></custom-block><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><custom-block s="error %txt"><block s="reportJoinWords"><list><l>I don&apos;t know how to handle </l><block var="amount"/></list></block></custom-block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="phrase"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><l></l></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="Hummingbird %&apos;sensor&apos; %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">Light<options>Distance (cm)&#xD;Dial&#xD;Light&#xD;Sound&#xD;Other (V)</options></input><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3</options></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Other (V)</l></list></block><script><block s="doSetVar"><l>sensor</l><l>Other</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Distance (cm)</l></list></block><script><block s="doSetVar"><l>sensor</l><l>Distance</l></block></script><list></list></block><block s="doSetVar"><l>value</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/</l><block var="sensor"/><l>/</l><block var="port"/></list></block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="value"/><l>Not Connected</l></list></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Distance</l></list></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>1.17</l><block var="value"/></list></block></block><comment w="90" collapsed="false">117/100 Scaling factor</comment></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Other</l></list></block><script><block s="doReport"><block s="reportQuotient"><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>0.01294</l><block var="value"/></list></block><l>100</l></list></block></block><l>100</l></block><comment w="102" collapsed="false">3.3/255 scale factor</comment></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Sound</l></list><comment w="155" collapsed="true">If connected, adjust sound level</comment></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.784</l><block var="value"/></list><comment w="140" collapsed="false">200/255 Scaling factor</comment></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Light</l></list></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.392</l><block var="value"/></list><comment w="140" collapsed="false">100/255 Scaling factor</comment></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Dial</l></list></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.435</l><block var="value"/></list><comment w="140" collapsed="false">100/230 Scaling factor</comment></block></block></block></script><list></list></block></script><script><block s="doReport"><l>Not Connected</l></block></script></block></script></block-definition><block-definition s="Hummingbird Play Note %&apos;note&apos; for %&apos;beats&apos; beats" type="command" category="sound"><header></header><code></code><translations>ko:Hummingbird _ 번 음을 _ 박자로 연주하기&#xD;de:Hummingbird Spiele Note _ für _ Schläge&#xD;pt:Hummingbird Toque Notas _ por _ Batidas&#xD;fr:Hummingbird Jouer la note _ pour _ battement(s)&#xD;nl:Hummingbird Speel Noot _ voor _ Beats&#xD;zh_CN:Hummingbird 演奏 音阶 _ 于 _ 拍&#xD;zh_TW:Hummingbird 演奏 音階 _ 於 _ 拍&#xD;ar:Hummingbird تشغيل الموسيقى  _ _&#xD;dk:Hummingbird Spil tone _ i _ slag&#xD;he:Hummingbird נגן תו   _  במשך  _   פעימות&#xD;es:Hummingbird Emitir un sonido _ por _ pulsos&#xD;ca:Hummingbird Toca nota _ durant _ temps&#xD;fi:Hummingbird Soita sävel _  _ iskun ajan&#xD;sv:Hummingbird Spela not _ _&#xD;</translations><inputs><input type="%n">60</input><input type="%n">0.5</input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="note"/><l>135</l></list></block><script><block s="doSetVar"><l>note</l><l>135</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><l>32</l><block var="note"/></list></block><script><block s="doSetVar"><l>note</l><l>32</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="beats"/><l>16</l></list></block><script><block s="doSetVar"><l>beats</l><l>16</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><l>0</l><block var="beats"/></list></block><script><block s="doSetVar"><l>beats</l><l>0</l></block></script><list></list></block><block s="doSetVar"><l>beats</l><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportQuotient"><l>60000</l><block s="getTempo"></block></block><block var="beats"/></list></block><comment w="242" collapsed="false">BPM = tempo&#xD;60 * 1000/BPM = BPMS  beats per millisecond&#xD;beats = Duration in ms  = BPMS * number of beats</comment></block></block><block s="doRun"><block s="reifyReporter"><autolambda><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/playnote/</l><block var="note"/><l>/</l><block var="beats"/></list></block></block></autolambda><list></list></block><list></list></block><block s="doWait"><block s="reportQuotient"><block var="beats"/><l>1000</l></block><comment w="205" collapsed="false">block for number of seconds</comment></block></script></block-definition><block-definition s="micro:bit %&apos;device&apos; %&apos;dim&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">Accelerometer (m/s²)<options>Accelerometer (m/s²)&#xD;Magnetometer (µT)</options></input><input type="%txt" readonly="true">X<options>X&#xD;Y&#xD;Z</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="device"/><l>Accelerometer (m/s²)</l></list></block><script><block s="doSetVar"><l>device</l><l>Accelerometer</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="device"/><l>Magnetometer (µT)</l></list></block><script><block s="doSetVar"><l>device</l><l>Magnetometer</l></block></script><list></list></block><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/</l><block var="device"/><l>/</l><block var="dim"/></list></block></block></block></script></block-definition><block-definition s="micro:bit Button %&apos;button&apos;" type="predicate" category="sensing"><header></header><code></code><translations>ko:micro:bit 버튼 _&#xD;de:micro:bit Knopf _&#xD;pt:micro:bit Tecla _&#xD;fr:micro:bit Bouton _&#xD;nl:micro:bit Knop _&#xD;zh_CN:micro:bit 按钮 _&#xD;zh_TW:micro:bit 按鈕 _&#xD;ar:micro:bit زر _&#xD;dk:micro:bit Knap _&#xD;he:micro:bit לחצן  _&#xD;es:micro:bit Pulsador _&#xD;ca:micro:bit Botó _&#xD;fi:micro:bit Painike _&#xD;sv:micro:bit Knapp _&#xD;</translations><inputs><input type="%txt" readonly="true">A<options>A&#xD;B</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/button/</l><block var="button"/></list></block></block><l>true</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="micro:bit Compass" type="reporter" category="sensing"><header></header><code></code><translations>ko:micro:bit 나침반 센서&#xD;de:micro:bit Kompass&#xD;pt:micro:bit Bússola&#xD;fr:micro:bit Compas&#xD;nl:micro:bit Kompas&#xD;zh_CN:micro:bit 指南针&#xD;zh_TW:micro:bit 指南針&#xD;ar:micro:bit بوصلة&#xD;dk:micro:bit Kompas&#xD;he:micro:bit מצפן&#xD;es:micro:bit Brujula&#xD;ca:micro:bit Brúixola&#xD;fi:micro:bit Kompassi&#xD;sv:micro:bit Kompass&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/</l><l>Compass</l></list></block></block></block></script></block-definition><block-definition s="micro:bit %&apos;dim&apos;" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">Screen Up<options>Screen Up&#xD;Screen Down&#xD;Tilt Left&#xD;Tilt Right&#xD;Logo Up&#xD;Logo Down&#xD;Shake</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/orientation/</l><block var="dim"/></list></block></block><l>true</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="stop all" type="command" category="control"><header></header><code></code><translations>ko:모두 멈추기&#xD;de:stoppe alles&#xD;pt:pare todos&#xD;fr:stop tout&#xD;nl:stop alle&#xD;zh_CN:停止 全部&#xD;zh_TW:停止 全部&#xD;ar:توقف الكل&#xD;dk:stop alle&#xD;he:להפסיק הכל&#xD;es:detener todo&#xD;ca:atura tot&#xD;fi:pysäytä kaikki&#xD;sv:stop allt&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/stopall</l></list></block></block></block></script></block-definition><block-definition s="Hummingbird Position Servo %&apos;port&apos; %&apos;position&apos; °" type="command" category="motion"><header></header><code></code><translations>ko:Hummingbird 위치 제어 서보 _ _ °&#xD;de:Hummingbird Position Servo _ _ °&#xD;pt:Hummingbird Posição do Servo _ _ °&#xD;fr:Hummingbird Position Servo _ _ °&#xD;nl:Hummingbird Positie-Servo _ _ °&#xD;zh_CN:Hummingbird 位置伺服 _ _ °&#xD;zh_TW:Hummingbird 位置伺服 _ _ °&#xD;ar:Hummingbird موقف محرك سيرفو المؤازر  _ _&#xD;dk:Hummingbird Positionsservo _ _ °&#xD;he:Hummingbird סרוו כיוון     _ _&#xD;es:Hummingbird Servo de posicion _ _ °&#xD;ca:Hummingbird Servo posicional _ _ °&#xD;fi:Hummingbird Asentoservo _ _ °&#xD;sv:Hummingbird Positionsservo _ _ °&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3&#xD;4</options></input><input type="%n">90</input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="position"/><l>0</l></list></block><script><block s="doSetVar"><l>position</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="position"/><l>180</l></list></block><script><block s="doSetVar"><l>position</l><l>180</l></block></script><list></list></block><block s="doSetVar"><l>position</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="position"/><l>1.41</l></list></block></block><comment w="228" collapsed="false">254/180 Scaling Factor</comment></block><block s="doRun"><block s="reportJSFunction"><list><l>portnum</l><l>position</l></list><l>var realPort = portnum-1;&#xD;////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.servos === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.servos = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        setServoAngle: function (port, angle) {&#xD;            function callback() {&#xD;                if (window.birdbrain.servos[port] === angle) {&#xD;                    delete window.birdbrain.servos[port];&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.servos.setServoAngle(port, window.birdbrain.servos[port]);&#xD;                }&#xD;            }&#xD;&#xD;            //Create a new XMLHttpRequest object&#xD;            var xhr = new XMLHttpRequest();&#xD;            var actualPort = port+1;         &#xD;            var thisURL = "http://127.0.0.1:30061/hummingbird/out/servo/" + actualPort + "/" + angle;&#xD;            //console.log("thisURL: " + thisURL);&#xD;            xhr.open("GET", thisURL, true);&#xD;            xhr.onload = function (e) {&#xD;              if (xhr.readyState === 4) {&#xD;                if (xhr.status === 200) {&#xD;                  callback();&#xD;                } else {&#xD;                  console.error(xhr.statusText);&#xD;                }&#xD;              }&#xD;            };&#xD;            xhr.onerror = function (e) {&#xD;              console.error(xhr.statusText);&#xD;            };&#xD;            xhr.send(null);          &#xD;            &#xD;        }&#xD;    };&#xD;}&#xD;&#xD;//var realAngle = Math.floor(ang*1.25);&#xD;&#xD;//realAngle = Math.max(Math.min(realAngle,225.0),0.0);&#xD;&#xD;if (window.birdbrain.servos[realPort] === undefined) {&#xD;    window.birdbrain.servos.setServoAngle(realPort, position);&#xD;}&#xD;&#xD;window.birdbrain.servos[realPort] = position;</l></block><list><block var="port"/><block var="position"/></list></block><block s="doWait"><l>0</l></block></script><scripts><script x="187.14285714285717" y="82.28571428571428"><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/servo/</l><l></l><l>/</l><l></l></list></block></block></block></script></scripts></block-definition><block-definition s="Hummingbird Rotation Servo %&apos;port&apos; %&apos;speed&apos; %" type="command" category="motion"><header></header><code></code><translations>ko:Hummingbird 회전속도 제어 서보 _ _ %&#xD;de:Hummingbird Drehung Servo _ _ %&#xD;pt:Hummingbird Rotação do Servo _ _ %&#xD;fr:Hummingbird Rotation Servo _ _ %&#xD;nl:Hummingbird Draai-Servo _ _ %&#xD;zh_CN:Hummingbird 旋转伺服 _ _ %&#xD;zh_TW:Hummingbird 旋轉伺服 _ _ %&#xD;ar:Hummingbird فتحة دوران المحرك المؤازر  _ _&#xD;dk:Hummingbird Rotationsservo _ _ %&#xD;he:Hummingbird סרוו סיבובים    _ _ %&#xD;es:Hummingbird Servo de rotacion _ _ %&#xD;ca:Hummingbird Servo rotacional _ _ %&#xD;fi:Hummingbird Kiertoservo _ _ %&#xD;sv:Hummingbird Rotationsservo _ _ %&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3&#xD;4</options></input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="speed"/><l>-100</l></list></block><script><block s="doSetVar"><l>speed</l><l>-100</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="speed"/><l>100</l></list></block><script><block s="doSetVar"><l>speed</l><l>100</l></block></script><list></list></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="speed"/><l>-10</l></list></block><block s="reportVariadicLessThan"><list><block var="speed"/><l>10</l></list></block></list></block><script><block s="doSetVar"><l>speed</l><l>255</l></block></script><script><block s="doSetVar"><l>speed</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="speed"/><l>23</l></list></block><l>100</l></block><l>122</l></list></block></block></block></script></block><block s="doRun"><block s="reportJSFunction"><list><l>portnum</l><l>speed</l></list><l>var realPort = portnum-1;&#xD;////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.rotationServos === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.rotationServos = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        setServoSpeed: function (port, speed) {&#xD;            function callback() {&#xD;                if (window.birdbrain.rotationServos[port] === speed) {&#xD;                    delete window.birdbrain.rotationServos[port];&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.rotationServos.setServoSpeed(port, window.birdbrain.rotationServos[port]);&#xD;                }&#xD;            }&#xD;&#xD;            //Create a new XMLHttpRequest object&#xD;            var xhr = new XMLHttpRequest();&#xD;            var actualPort = port+1;         &#xD;            var thisURL = "http://127.0.0.1:30061/hummingbird/out/rotation/" + actualPort + "/" + speed;&#xD;            //console.log("thisURL: " + thisURL);&#xD;            xhr.open("GET", thisURL, true);&#xD;            xhr.onload = function (e) {&#xD;              if (xhr.readyState === 4) {&#xD;                if (xhr.status === 200) {&#xD;                  callback();&#xD;                } else {&#xD;                  console.error(xhr.statusText);&#xD;                }&#xD;              }&#xD;            };&#xD;            xhr.onerror = function (e) {&#xD;              console.error(xhr.statusText);&#xD;            };&#xD;            xhr.send(null);          &#xD;            &#xD;        }&#xD;    };&#xD;}&#xD;&#xD;if (window.birdbrain.rotationServos[realPort] === undefined) {&#xD;    window.birdbrain.rotationServos.setServoSpeed(realPort, speed);&#xD;}&#xD;&#xD;window.birdbrain.rotationServos[realPort] = speed;</l></block><list><block var="port"/><block var="speed"/></list></block></script></block-definition><block-definition s="Hummingbird LED %&apos;port&apos; %&apos;intensity&apos; %" type="command" category="looks"><header></header><code></code><translations>ko:Hummingbird LED _ _ %&#xD;de:Hummingbird LED _ _ %&#xD;pt:Hummingbird LED _ _ %&#xD;fr:Hummingbird LED _ _ %&#xD;nl:Hummingbird LED _ _ %&#xD;zh_CN:Hummingbird LED _ _ %&#xD;zh_TW:Hummingbird LED _ _ %&#xD;ar:Hummingbird ضوء _ _&#xD;dk:Hummingbird LED _ _ %&#xD;he:Hummingbird לד   % _ _&#xD;es:Hummingbird LED _ _ %&#xD;ca:Hummingbird LED _ _ %&#xD;fi:Hummingbird LED _ _ %&#xD;sv:Hummingbird LED _ _ %&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3</options></input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="intensity"/><l>0</l></list></block><script><block s="doSetVar"><l>intensity</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="intensity"/><l>100</l></list></block><script><block s="doSetVar"><l>intensity</l><l>100</l></block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>portnum,intensitynum</l></list><l>//var hummingbirdAppID = "lfloofocohhfeeoohpokmljiinfmpenj";&#xD;var realPort = portnum-1;&#xD;////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.LEDs === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.LEDs = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        setLEDIntensity: function(port, intensity) {&#xD;            function callback() {&#xD;                if (window.birdbrain.LEDs[port] === intensity) {&#xD;                    delete window.birdbrain.LEDs[port];&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.LEDs.setLEDIntensity(port, window.birdbrain.LEDs[port]);&#xD;                }&#xD;            }&#xD;            /*&#xD;            var report = {&#xD;                message:"L".charCodeAt(0),&#xD;                port: port.toString().charCodeAt(0),&#xD;                intensity: intensity&#xD;            };&#xD;            chrome.runtime.sendMessage(hummingbirdAppID, report, callback);&#xD;            */&#xD;&#xD;            //Create a new XMLHttpRequest object&#xD;            var xhr = new XMLHttpRequest();&#xD;            var actualPort = port+1;&#xD;            var ledURL = "http://127.0.0.1:30061/hummingbird/out/led/" + actualPort + "/" + intensity;&#xD;            xhr.open("GET", ledURL, true);&#xD;            xhr.onload = function (e) {&#xD;              if (xhr.readyState === 4) {&#xD;                if (xhr.status === 200) {&#xD;                  callback();&#xD;                } else {&#xD;                  console.error(xhr.statusText);&#xD;                }&#xD;              }&#xD;            };&#xD;            xhr.onerror = function (e) {&#xD;              console.error(xhr.statusText);&#xD;            };&#xD;            xhr.send(null);&#xD;&#xD;        }&#xD;    }&#xD;}&#xD;&#xD;var realIntensity = Math.floor(intensitynum*2.55);&#xD;&#xD;realIntensity = Math.max(Math.min(realIntensity,255.0),0.0);&#xD;&#xD;if (window.birdbrain.LEDs[realPort] === undefined) {&#xD;  window.birdbrain.LEDs.setLEDIntensity(realPort, realIntensity);&#xD;}&#xD;&#xD;window.birdbrain.LEDs[realPort] = realIntensity;</l></block><list><block var="port"/><block var="intensity"/></list></block><block s="doWait"><l>0</l></block></script><scripts><script x="396.42857142857144" y="46.5714285714285"><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/led/</l><block var="port"/><l>/</l><block var="intensity"/></list></block></block></block></script><script x="396.42857142857144" y="100.28571428571433"><block s="doSetVar"><l>intensity</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="intensity"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block></script></scripts></block-definition><block-definition s="Hummingbird Tri-LED %&apos;port&apos; R %&apos;redLED&apos; % G %&apos;greenLED&apos; % B %&apos;blueLED&apos; %" type="command" category="looks"><header></header><code></code><translations>ko:Hummingbird 삼색 LED _ 빨강 _ % 초록 _ % 파랑 _ %&#xD;de:Hummingbird Dreifarben-LED _ R _ % G _ % B _ %&#xD;pt:Hummingbird LED Tricolor _ R _ % G _ % B _ %&#xD;fr:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;nl:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;zh_CN:Hummingbird 三色LED _ 红 _ % 绿 _ % 蓝 _ %&#xD;zh_TW:Hummingbird 三色LED _ 紅 _ % 綠 _ % 藍 _ %&#xD;ar:Hummingbird ضوء الصمام الثلاثي  _ _ _ _&#xD;dk:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;he:Hummingbird לד שלושה צבעים       % _ R   _   %  G _  %   B  _&#xD;es:Hummingbird Led tricolor _ R _ % G _ % B _ %&#xD;ca:Hummingbird Tri-LED _ vermell _ % verd _ % blau _ %&#xD;fi:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;sv:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2</options></input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="redLED"/><l>0</l></list></block><script><block s="doSetVar"><l>redLED</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="redLED"/><l>100</l></list></block><script><block s="doSetVar"><l>redLED</l><l>100</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="greenLED"/><l>0</l></list></block><script><block s="doSetVar"><l>greenLED</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="greenLED"/><l>100</l></list></block><script><block s="doSetVar"><l>greenLED</l><l>100</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="blueLED"/><l>0</l></list></block><script><block s="doSetVar"><l>blueLED</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="blueLED"/><l>100</l></list></block><script><block s="doSetVar"><l>blueLED</l><l>100</l></block></script><list></list></block><block s="doRun"><block s="reportJSFunction"><list><l>portnum</l><l>rednum</l><l>greennum</l><l>bluenum</l></list><l>var realPort = portnum-1;&#xD;////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.triLEDs === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.triLEDs = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        setLEDIntensities: function(port, intensities) {&#xD;            function callback() {&#xD;                if (JSON.stringify(window.birdbrain.triLEDs[port]) === JSON.stringify(intensities)) {&#xD;                    delete window.birdbrain.triLEDs[port];&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.triLEDs.setLEDIntensities(port, window.birdbrain.triLEDs[port]);&#xD;                }&#xD;            }&#xD;&#xD;            //Create a new XMLHttpRequest object&#xD;            var xhr = new XMLHttpRequest();&#xD;            var actualPort = port+1;&#xD;            /*  Note RGB:&#xD;                red: intensities[0],&#xD;                green: intensities[1],&#xD;                blue: intensities[2]  &#xD;            */&#xD;            &#xD;            var thisURL = "http://127.0.0.1:30061/hummingbird/out/triled/" + actualPort + "/" + intensities[0] + "/" + intensities[1] + "/" + intensities[2];&#xD;            //console.log("thisURL: " + thisURL);&#xD;            xhr.open("GET", thisURL, true);&#xD;            xhr.onload = function (e) {&#xD;              if (xhr.readyState === 4) {&#xD;                if (xhr.status === 200) {&#xD;                  callback();&#xD;                } else {&#xD;                  console.error(xhr.statusText);&#xD;                }&#xD;              }&#xD;            };&#xD;            xhr.onerror = function (e) {&#xD;              console.error(xhr.statusText);&#xD;            };&#xD;            xhr.send(null);&#xD;        }&#xD;    }&#xD;}&#xD;&#xD;var realIntensities = [rednum, greennum, bluenum].map(function(intensity) {&#xD;    return Math.floor(Math.max(Math.min(intensity*2.55, 255), 0));&#xD;});&#xD;&#xD;if (window.birdbrain.triLEDs[realPort] === undefined) {&#xD;    window.birdbrain.triLEDs.setLEDIntensities(realPort, realIntensities);&#xD;}&#xD;&#xD;window.birdbrain.triLEDs[realPort] = realIntensities;&#xD;</l></block><list><block var="port"/><block var="redLED"/><block var="greenLED"/><block var="blueLED"/></list></block><block s="doWait"><l>0</l></block></script><scripts><script x="251.42857142857144" y="108.85714285714295"><block s="doSetVar"><l>redLED</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="redLED"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block><block s="doSetVar"><l>blueLED</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="blueLED"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block><block s="doSetVar"><l>greenLED</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="greenLED"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/triled/</l><l></l><l>/</l><l></l><l>/</l><l></l><l>/</l><l></l></list></block></block></block></script></scripts></block-definition><block-definition s="micro:bit Print %&apos;string&apos;" type="command" category="looks"><header></header><code></code><translations>ko:micro:bit 출력 _&#xD;de:micro:bit Drucke _&#xD;pt:micro:bit Imprimir _&#xD;fr:micro:bit Imprimer _&#xD;nl:micro:bit Schrijf _&#xD;zh_CN:micro:bit 打印 _&#xD;zh_TW:micro:bit 打印 _&#xD;ar:micro:bit طباعة _&#xD;dk:micro:bit Vis _&#xD;he:micro:bit הדפס  _&#xD;es:micro:bit Imprimir _&#xD;ca:micro:bit Escriu _&#xD;fi:micro:bit Näytä teksti _&#xD;sv:micro:bit Visa text _&#xD;</translations><inputs><input type="%txt">Hello</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>string</l></list><l>////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;// Encode any special characters in the URL&#xD;string = encodeURIComponent(string);&#xD;&#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.printObj === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.printObj = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        printString: function(string) {&#xD;            function callback() {&#xD;                if (window.birdbrain.printObj.stringToPrint === string) {&#xD;                    delete window.birdbrain.printObj.stringToPrint;&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.printObj.printString(window.birdbrain.printObj.stringToPrint);&#xD;                }&#xD;            }&#xD;            /*&#xD;            var report = {&#xD;                message:"L".charCodeAt(0),&#xD;                port: port.toString().charCodeAt(0),&#xD;                intensity: intensity&#xD;            };&#xD;            chrome.runtime.sendMessage(hummingbirdAppID, report, callback);&#xD;            */&#xD;&#xD;            //Create a new XMLHttpRequest object&#xD;            var xhr = new XMLHttpRequest();&#xD;            var printURL = "http://127.0.0.1:30061/hummingbird/out/print/" + string;&#xD;            xhr.open("GET", printURL, true);&#xD;            xhr.onload = function (e) {&#xD;              if (xhr.readyState === 4) {&#xD;                if (xhr.status === 200) {&#xD;                  callback();&#xD;                } else {&#xD;                  console.error(xhr.statusText);&#xD;                }&#xD;              }&#xD;            };&#xD;            xhr.onerror = function (e) {&#xD;              console.error(xhr.statusText);&#xD;            };&#xD;            xhr.send(null);&#xD;&#xD;        }&#xD;    }&#xD;}&#xD;&#xD;//TODO Turn &apos;/&apos; chars into % &#xD;&#xD;if (window.birdbrain.printObj.stringToPrint === undefined) {&#xD;  window.birdbrain.printObj.printString(string);&#xD;}&#xD;&#xD;window.birdbrain.printObj.stringToPrint = string;</l></block><list><block var="string"/></list></block><block s="doWait"><l>0</l></block></script><scripts><script x="310.9999990000001" y="47"><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/print/</l><block var="string"/></list></block></block></block></script><script x="335" y="1024.8333343333334"><block var="intensity"/></script></scripts></block-definition><block-definition s="micro:bit Display $nl %&apos;r1c1&apos; %&apos;r1c2&apos; %&apos;r1c3&apos; %&apos;r1c4&apos; %&apos;r1c5&apos; $nl %&apos;r2c1&apos; %&apos;r2c2&apos; %&apos;r2c3&apos; %&apos;r2c4&apos; %&apos;r2c5&apos; $nl %&apos;r3c1&apos; %&apos;r3c2&apos; %&apos;r3c3&apos; %&apos;r3c4&apos; %&apos;r3c5&apos; $nl %&apos;r4c1&apos; %&apos;r4c2&apos; %&apos;r4c3&apos; %&apos;r4c4&apos; %&apos;r4c5&apos; $nl %&apos;r5c1&apos; %&apos;r5c2&apos; %&apos;r5c3&apos; %&apos;r5c4&apos; %&apos;r5c5&apos;" type="command" category="looks"><header></header><code></code><translations>ko:micro:bit 보이기 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;de:micro:bit LED Anzeige _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;pt:micro:bit Visor _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;fr:micro:bit Display _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;nl:micro:bit Scherm _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;zh_CN:micro:bit 显示 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;zh_TW:micro:bit 顯示 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;ar:micro:bit عرض _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;dk:micro:bit Display _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;he:micro:bit מסך _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;es:micro:bit Monitor _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;ca:micro:bit Pantalla _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;fi:micro:bit Näytä _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;sv:micro:bit Skärm _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;</translations><inputs><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>r1c1, r1c2, r1c3, r1c4, r1c5, r2c1, r2c2, r2c3, r2c4, r2c5, r3c1, r3c2, r3c3, r3c4, r3c5, r4c1, r4c2, r4c3, r4c4, r4c5, r5c1, r5c2, r5c3, r5c4, r5c5 </l></list><l>////////////////////////////////////////////////////////////////////////////////&#xD;// In order to avoid sending more messages than the app can handle, whenever we&#xD;// send a message we also save it in a persistent global variable. When the&#xD;// message is processed in the app, the callback checks if the global variable&#xD;// still matches what it was changed to. If it was, it deletes the global&#xD;// variable. Otherwise the message is resent with new data.&#xD;//&#xD;// When this block is called it checks if the global value has been set. If it&#xD;// has, it sends a message. Otherwise it just updates the value and lets the&#xD;// callback handle it.&#xD;&#xD;// Create url representation from inputs&#xD;var symbolString =  r1c1 + "\/"+ r1c2 + "\/"+ r1c3 + "\/"+ r1c4 + "\/"+ r1c5 + "\/" +&#xD;                    r2c1 + "\/"+ r2c2 + "\/"+ r2c3 + "\/"+ r2c4 + "\/"+ r2c5 + "\/" +&#xD;                    r3c1 + "\/"+ r3c2 + "\/"+ r3c3 + "\/"+ r3c4 + "\/"+ r3c5 + "\/" +&#xD;                    r4c1 + "\/"+ r4c2 + "\/"+ r4c3 + "\/"+ r4c4 + "\/"+ r4c5 + "\/" +&#xD;                    r5c1 + "\/"+ r5c2 + "\/"+ r5c3 + "\/"+ r5c4 + "\/"+ r5c5 ;&#xD;&#xD;//r1c1, r1c2, r1c3, r1c4, r1c5, r2c1, r2c2, r2c3, r2c4, r2c5, r3c1, r3c2, r3c3, r3c4, r3c5, r4c1, r4c2, r4c3, r4c4, r4c5, r5c1, r5c2, r5c3, r5c4, r5c5 &#xD;&#xD;// We can&apos;t run code beforehand to define values so we must check each block&#xD;// call if they are set.&#xD;if (window.birdbrain === undefined || window.birdbrain.symbolObj === undefined) {&#xD;    window.birdbrain = window.birdbrain || {};&#xD;    window.birdbrain.symbolObj = {&#xD;        // By attaching this function to a global variable, it is only&#xD;        // defined once instead of every time this block is called, improving&#xD;        // performance significantly.&#xD;        printSymbol: function(symbol) {&#xD;            function callback() {&#xD;                if (window.birdbrain.symbolObj.symbolToPrint === symbol) {  // Check if arrays are equal&#xD;                    delete window.birdbrain.symbolObj.symbolToPrint;&#xD;                }&#xD;                else {&#xD;                    window.birdbrain.symbolObj.printSymbol(window.birdbrain.symbolObj.symbolToPrint);&#xD;                }&#xD;            }&#xD;&#xD;            //Create a new XMLHttpRequest object&#xD;            var xhr = new XMLHttpRequest();&#xD;            var symbolURL = "http://127.0.0.1:30061/hummingbird/out/symbol/A/" + symbol;&#xD;            xhr.open("GET", symbolURL, true);&#xD;            xhr.onload = function (e) {&#xD;              if (xhr.readyState === 4) {&#xD;                if (xhr.status === 200) {&#xD;                  callback();&#xD;                } else {&#xD;                  console.error(xhr.statusText);&#xD;                }&#xD;              }&#xD;            };&#xD;            xhr.onerror = function (e) {&#xD;              console.error(xhr.statusText);&#xD;            };&#xD;            xhr.send(null);&#xD;&#xD;        }&#xD;    }&#xD;}&#xD;&#xD;if (window.birdbrain.symbolObj.symbolToPrint === undefined) {&#xD;  window.birdbrain.symbolObj.printSymbol(symbolString);&#xD;}&#xD;&#xD;window.birdbrain.symbolObj.symbolToPrint = symbolString;&#xD;&#xD;&#xD;</l></block><list><block var="r1c1"/><block var="r1c2"/><block var="r1c3"/><block var="r1c4"/><block var="r1c5"/><block var="r2c1"/><block var="r2c2"/><block var="r2c3"/><block var="r2c4"/><block var="r2c5"/><block var="r3c1"/><block var="r3c2"/><block var="r3c3"/><block var="r3c4"/><block var="r3c5"/><block var="r4c1"/><block var="r4c2"/><block var="r4c3"/><block var="r4c4"/><block var="r4c5"/><block var="r5c1"/><block var="r5c2"/><block var="r5c3"/><block var="r5c4"/><block var="r5c5"/></list></block><block s="doWait"><l></l></block></script><scripts><script x="731" y="16"><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/symbol/A/</l><block var="11"/><l>/</l><block var="12"/><l>/</l><block var="r1c3"/><l>/</l><block var="r1c4"/><l>/</l><block var="r1c5"/><l>/</l><block var="r2c1"/><l>/</l><block var="r2c2"/><l>/</l><block var="r2c3"/><l>/</l><block var="r2c4"/><l>/</l><block var="25"/><l>/</l><block var="31"/><l>/</l><block var="r3c2"/><l>/</l><block var="33"/><l>/</l><block var="34"/><l>/</l><block var="35"/><l>/</l><block var="41"/><l>/</l><block var="42"/><l>/</l><block var="43"/><l>/</l><block var="44"/><l>/</l><block var="45"/><l>/</l><block var="51"/><l>/</l><block var="52"/><l>/</l><block var="53"/><l>/</l><block var="54"/><l>/</l><block var="55"/></list></block></block></block></script></scripts></block-definition><block-definition s="do nothing" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="%&apos;say/ask/think&apos; %&apos;text&apos; with %&apos;num&apos; delay between each letter" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>say&#xD;think&#xD;ask={&#xD;ask/think&#xD;ask/say&#xD;}</options></input><input type="%txt"></input><input type="%n">0.04</input></inputs><script><block s="doFor"><l>i</l><l>1</l><block s="reportIfElse"><block s="reportNot"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block></block><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block></block><script><block s="doRun"><block s="reportIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="say/ask/think"/><l>ask/think</l></list></block><block s="reportVariadicEquals"><list><block var="say/ask/think"/><l>ask/say</l></list></block></list></block><block s="reportVariadicEquals"><list><block var="i"/><block s="reportIfElse"><block s="reportNot"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block></block><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><block s="reportListAttribute"><l><option>length</option></l><block var="text"/></block></block></list></block></list></block><block s="reifyScript"><script><block s="doAsk"><l></l></block></script><list></list></block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="say/ask/think"/><l>ask/think</l></list></block><block s="reportVariadicEquals"><list><block var="say/ask/think"/><l>think</l></list></block></list></block><block s="reifyScript"><script><block s="doThink"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="bubble"><l></l></block></script><list></list></block></block></block><list><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportListItem"><block s="reportNumbers"><l>1</l><block var="i"/></block><block var="text"/></block><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><l>1</l><block var="i"/></block><block var="text"/></block></block></block></list></block><block s="doWait"><block var="num"/></block></script></block></script></block-definition><block-definition s="%&apos;n&apos; √ %&apos;x&apos; $nl nth root of x" 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="x"/><block s="reportQuotient"><l>1</l><block var="n"/></block></block></block></script></block-definition><block-definition s="letters %&apos;num&apos; through %&apos;place&apos; of %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="letters %n through %n of %txt"><block var="num"/><block var="place"/><l></l></custom-block></autolambda><list></list></block><block var="text"/></block><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block var="num"/><block var="place"/></block><block var="text"/></block></block></block></block></script></block-definition><block-definition s="average %&apos;numbers&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportCombine"><block var="numbers"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="numbers"/></block></block></block></script></block-definition><block-definition s="remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations>ca:elimina els duplicats de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></list></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="data"/></block></block></script><scripts><script x="14" y="164.2222222222222"><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block></script></block></script></scripts></block-definition><block-definition s="replace all items %&apos;pred&apos; of %&apos;list&apos; with %&apos;thing&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportListItem"><block var="index"/><block s="reportMap"><block var="pred"/><block var="list"/></block></block><block var="thing"/><block var="value"/></block></autolambda><list><l>value</l><l>index</l></list></block><block var="list"/></block></block></script></block-definition><block-definition s="duration of %&apos;thing&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>old</l></list></block><block s="doSetVar"><l>old</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block var="thing"/><list></list></block><block s="doReport"><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="old"/></block></block></script></block-definition><block-definition s="last key pressed–JS names" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">reports the last key pressed. JavaScript has some special names for keys, so it might not work EXACTLY as you want.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (!("jsKeyDetector" in window)) {&#xD;  window.LastKeyPressed = "";&#xD;&#xD;  jsKeyDetector = window.addEventListener("keydown", function(ev) {&#xD;    window.lastKeyPressed = ev.code;&#xD;  });&#xD;}&#xD;&#xD;return window.lastKeyPressed</l></block><list></list></block></block></script></block-definition><block-definition s="value of digit %&apos;digit num&apos; in %&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="doSetVar"><l>num</l><block s="reportMonadic"><l><option>abs</option></l><block var="num"/></block></block><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="digit num"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="value of digit %n in %n"><l></l><block var="num"/></custom-block></autolambda><list></list></block><block var="digit num"/></block><block s="reportIfElse"><block s="reportIsA"><block var="num"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="value of digit %n in %n"><block var="digit num"/><l></l></custom-block></autolambda><list></list></block><block var="num"/></block><block s="reportMonadic"><l><option>abs</option></l><block s="reportListItem"><block s="reportMonadic"><l><option>abs</option></l><block var="digit num"/></block><block s="reportIfElse"><block s="reportVariadicLessThan"><list><block var="digit num"/><l>0</l></list></block><block s="reportCDR"><custom-block s="expand %n"><custom-block s="%s decimals %n"><l>only</l><block var="num"/></custom-block></custom-block></block><custom-block s="$flash reverse %l"><custom-block s="expand %n"><custom-block s="%s decimals %n"><l>no</l><block var="num"/></custom-block></custom-block></custom-block></block></block></block></block></block></block></script></block-definition><block-definition s="blockspec of %&apos;block&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return a.expression.blockSpec;</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="JS type of %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return typeof (a)</l></block><list><block var="a"/></list></block></block></script></block-definition><block-definition s="setters or getters for %&apos;expression&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="expression"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><custom-block s="setters or getters for %repRing"><block var="value"/></custom-block><l><option>list</option></l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><custom-block s="setters or getters for %repRing"><block var="value"/></custom-block></block><l>1</l></list></block><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="setters or getters for %repRing"><block var="value"/></custom-block></block></block><custom-block s="setters or getters for %repRing"><block var="value"/></custom-block></block><custom-block s="setters or getters for %repRing"><block var="value"/></custom-block></block></autolambda><list><l>value</l></list></block><block var="expression"/></block></block></script><script><block s="doDeclareVariables"><list><l>setters/getters</l></list></block><block s="doSetVar"><l>setters/getters</l><block s="reportIfElse"><block s="reportIsA"><block var="expression"/><l><option>command</option></l></block><l>getters</l><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="expression"/><l><option>reporter</option></l></block><block s="reportIsA"><block var="expression"/><l><option>predicate</option></l></block></list></block><l>setters</l><l>error</l></block></block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="errorObsolete"></block></script><list></list></block></list></block><block s="reportJoinWords"><list><block var="expression"/></list></block></list></block><block s="reportVariadicEquals"><list><block var="setters/getters"/><l>getters</l></list></block></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="errorObsolete"></block></autolambda><list></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="errorObsolete"></block></autolambda><list></list></block></list></block><block s="reportJoinWords"><list><block var="expression"/></list></block></list></block><block s="reportVariadicEquals"><list><block var="setters/getters"/><l>setters</l></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list><block s="reifyScript"><script><block s="errorObsolete"></block></script><list></list></block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="setters/getters"/><l>setters</l></list></block><block s="reportVariadicEquals"><list><block var="setters/getters"/><l>getters</l></list></block></list></block><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="object keys of %repRing"><block var="expression"/></custom-block><l>0</l></list></block><script><block s="doReport"><l></l></block></script><script><block s="doIf"><custom-block s="variable reporter? %repRing"><block var="expression"/></custom-block><script><block s="doReport"><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doChangeVar"><l></l><l></l></block></script><list></list></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportListItem"><l>2</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block var="value"/><l></l></list></block></block></autolambda><list><l>value</l></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="#1"/><l></l></list></block><block s="reportNewList"><list></list></block><block var="#1"/></block></autolambda><list><l>#1</l></list></block><list><custom-block s="assoc %s %l"><block s="reportJoinWords"><list><block var="expression"/></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="setters/getters"/><l>getters</l></list></block><custom-block s="setters for getters"></custom-block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="setters/getters"/><l>setters</l></list></block><custom-block s="getters for setters"></custom-block><l></l></block></block></custom-block></list></block></block></block></block></script></block></script><script><block s="doReport"><l></l></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="getters for setters" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setHeading"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="turn"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="turnLeft"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="bounceOffEdge"></block></script><list></list></block><block s="reifyScript"><script><block s="doFaceTowards"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeXPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doGlide"><l></l><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeYPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doGlide"><l></l><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getCostumeIdx"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doWearNextCostume"></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeScale"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetTempo"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doChangeTempo"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setVolume"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeVolume"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getPenDown"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="down"></block></script><list></list></block><block s="reifyScript"><script><block s="up"></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getEffect"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setEffect"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeEffect"><l></l><l>25</l></block></script><list></list></block><block s="reifyScript"><script><block s="clearEffects"></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPenColorDimension"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changePenColorDimension"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="setSize"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeSize"><l></l></block></script><list></list></block><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="$brush set pen to crayon %n"><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="set pen color to h: %n s: %n v: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="$brush set pen %s to %s"><l></l><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="$brush change pen %s by %s"><l></l><l></l></custom-block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list></list></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block><block s="reifyScript"><script><block s="fork"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportIfElse"><l/><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block><block s="reifyReporter"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getLastMessage"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><script><block s="doBroadcast"><l></l><list></list></block></script><list></list></block><block s="reifyReporter"><script><block s="doBroadcastAndWait"><l></l><list></list></block></script><list></list></block><block s="reifyReporter"><script><block s="doBroadcast"><l></l><list><l></l></list></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportGet"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetVar"><block s="reifyReporter"><autolambda><block s="reportGet"><l></l></block></autolambda><list></list></block><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="reportGlobalFlag"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetGlobalFlag"><l></l><l/></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><custom-block s="does var %s exist?"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><script><custom-block s="create %s var %mult%txt"><l></l><list></list></custom-block></script><list></list></block><block s="reifyReporter"><script><custom-block s="delete var %mult%txt"><list></list></custom-block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><custom-block s="setting %s"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="set flag %s to %b"><l></l><l/></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="set value %s to %s"><l></l><l></l></custom-block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><autolambda><block s="getLastAnswer"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doAsk"><l></l></block></script><list></list></block><block s="reifyReporter"><script><custom-block s="set answer to %mlt"><l></l></custom-block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="changeScale"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportShown"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="show"></block></script><list></list></block><block s="reifyScript"><script><block s="hide"></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPan"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changePan"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPenColorDimension"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changePenColorDimension"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="setSize"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeSize"><l></l></block></script><list></list></block><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="$brush set pen to crayon %n"><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="set pen color to h: %n s: %n v: %n"><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="$brush set pen %s to %s"><l></l><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="$brush change pen %s by %s"><l></l><l></l></custom-block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeXPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeYPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doGlide"><l></l><l></l><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><block s="reportTouchingColor"><color>10,227,255,1</color></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeXPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="changeYPosition"><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block><block s="reifyScript"><script><block s="doGlide"><l></l><l></l><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><custom-block s="instrument"></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetInstrument"><l></l></block></script><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><autolambda><custom-block s="categories"></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="create/recolor category %txt RGB color %n %n %n %n"><l></l><l></l><l></l><l></l><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="delete category %txt"><l></l></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="restore categories"></custom-block></script><list></list></block></list></block></list></block></list></block></block></script></block-definition><block-definition s="$flash remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations>ca:elimina els duplicats de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListIndex"><block var="value"/><block var="list"/></block><block var="index"/></list></block></autolambda><list><l>value</l><l>index</l><l>list</l></list></block><block var="data"/></block></block></script><scripts><script x="14" y="164.22222222222217"><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><custom-block s="$flash remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="$flash remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block></script></block></script></scripts></block-definition><block-definition s="$flash reverse %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:$flash umgekehrt _&#xD;pt:$flash uma lista inversa de _&#xD;ca:$flash capgira _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>return new List(list.asArray().slice().reverse());</l></block><list><block var="list"/></list></block></block></script></block-definition><block-definition s="setters for getters" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doFaceTowards"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="bounceOffEdge"></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="turnLeft"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="turn"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setHeading"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="changeXPosition"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setXPosition"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="gotoXY"><l></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doGlide"><l></l><l></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="changeYPosition"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setYPosition"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="changeScale"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setScale"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doWearNextCostume"></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getCostumeIdx"></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>name</option></l><l><option>current</option></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doSwitchToCostume"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getCostumeIdx"></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>name</option></l><l><option>current</option></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doChangeTempo"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doSetTempo"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="changeVolume"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setVolume"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="up"></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getPenDown"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="down"></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getPenDown"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doChangeVar"><l></l><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><custom-block s="var %s"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doSetVar"><l></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><custom-block s="var %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportGet"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="clearEffects"></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="changeEffect"><l></l><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setEffect"><l></l><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><custom-block s="set pen color to r: %n g: %n b: %n"><l></l><l></l><l></l></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="changeSize"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="changePenColorDimension"><l></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="setSize"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setPenColorDimension"><l></l><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="fork"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list></list></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doRun"><block s="reifyScript"><script></script><list></list></block><list></list></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list></list></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doIf"><l/><script></script><list></list></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="reportIfElse"><l/><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doIfElse"><l/><script></script><script></script></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="reportIfElse"><l/><l></l><l></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doBroadcast"><l></l><list><l></l></list></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getLastMessage"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doBroadcastAndWait"><l></l><list></list></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getLastMessage"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doBroadcast"><l></l><list></list></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getLastMessage"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="forward"><l></l></block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><block s="reifyPredicate"><autolambda><block s="reportTouchingObject"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><block s="doSetGlobalFlag"><l></l><l/></block></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><block s="reportGlobalFlag"><l><option>turbo mode</option></l></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="create %s var %mult%txt"><l></l><list></list></custom-block></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><custom-block s="does var %s exist?"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="delete var %mult%txt"><list></list></custom-block></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><custom-block s="does var %s exist?"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="set pen color to h: %n s: %n v: %n"><l></l><l></l><l></l></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="$brush set pen to crayon %n"><l></l></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="set flag %s to %b"><l></l><l/></custom-block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><custom-block s="setting %s"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><custom-block s="set value %s to %s"><l></l><l></l></custom-block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><custom-block s="setting %s"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doAsk"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getLastAnswer"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="show"></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="reportShown"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="hide"></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="reportShown"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="setScale"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="changeScale"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><script><block s="setPan"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><script><block s="changePan"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><script><custom-block s="$brush set pen %s to %s"><l></l><l></l></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><script><custom-block s="$brush change pen %s by %s"><l></l><l></l></custom-block></script><list></list></block></list></block><block s="reportNewList"><list><block s="reifyReporter"><autolambda><custom-block s="$brush pen %s"><l></l></custom-block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="getPenAttribute"><l></l></block></autolambda><list></list></block></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyPredicate"><script><block s="doSetInstrument"><l></l></block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><custom-block s="instrument"></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyScript"><script><custom-block s="set answer to %mlt"><l></l></custom-block></script><list></list></block></list></block><block s="reifyReporter"><autolambda><block s="getLastAnswer"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><block s="doDeclareVariables"><list><l>a</l></list></block></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><custom-block s="does var %s exist?"><l></l></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="create/recolor category %txt RGB color %n %n %n %n"><l></l><l></l><l></l><l></l><l></l></custom-block></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><custom-block s="categories"></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="delete category %txt"><l></l></custom-block></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><custom-block s="categories"></custom-block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reifyReporter"><script><custom-block s="restore categories"></custom-block></script><list></list></block></list></block><block s="reifyPredicate"><autolambda><custom-block s="categories"></custom-block></autolambda><list></list></block></list></block></list></block></block></script></block-definition><block-definition s="permutations of %&apos;data&apos;" type="reporter" category="other"><comment x="0" y="0" w="235" collapsed="false">Heap&apos;s algorithm&#xD;https://en.wikipedia.org/wiki/Heap%27s_algorithm</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>generate</l><l>result</l></list></block><block s="doSetVar"><l>generate</l><block s="reifyScript"><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="level"/><l>1</l></list></block><script><block s="doAddToList"><custom-block s="copy of %s"><block var="data"/></custom-block><block var="result"/></block></script><script><block s="doWarp"><script><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block var="level"/><script><block s="doRun"><block var="generate"/><list><block var="data"/><block s="reportDifference"><block var="level"/><l>1</l></block></list></block><custom-block s="swap items %n and %n of %l"><custom-block s="if %b then %anyUE else %anyUE"><custom-block s="is %n even?"><block var="level"/></custom-block><block var="i"/><l>1</l></custom-block><block var="level"/><block var="data"/></custom-block></script></custom-block></script></block></script></block></script><list><l>data</l><l>level</l></list></block></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doRun"><block var="generate"/><list><custom-block s="copy of %s"><block var="data"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _&#xD;ca:mapeja _ sobre _&#xD;es:mapear _ sobre _&#xD;fr:appliquer _ à _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="swap items %&apos;i1&apos; and %&apos;i2&apos; of %&apos;data&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>temp</l></list></block><block s="doSetVar"><l>temp</l><block s="reportListItem"><block var="i1"/><block var="data"/></block></block><block s="doReplaceInList"><block var="i1"/><block var="data"/><block s="reportListItem"><block var="i2"/><block var="data"/></block></block><block s="doReplaceInList"><block var="i2"/><block var="data"/><block var="temp"/></block></script></block-definition><block-definition s="throw breakpoint %&apos;catchtag&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doSetVar"><l></l><block var="innerCont"/></block><block s="doRun"><block s="reportListItem"><l>1</l><block var="catchtag"/></block><list></list></block></script><list></list></block><list><block s="reportListItem"><l>2</l><block var="catchtag"/></block></list></block></script><list><l>innerCont</l></list></block></block></script></block-definition><block-definition s="catch breakpoint %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><variables><list struct="atomic" id="136489">bp</list></variables><header></header><code></code><translations></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 s="reportNewList"><list><block var="cont"/><block s="reifyReporter"><autolambda><block var="bp"/></autolambda><list></list></block></list></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="bp"/><l>0</l></list></block><script><block s="doRun"><block var="action"/><list></list></block></script><script><block s="doDeclareVariables"><list><l>temp</l></list></block><block s="doSetVar"><l>temp</l><block var="bp"/></block><block s="doSetVar"><l>bp</l><l>0</l></block><block s="doRun"><block var="temp"/><list></list></block></script></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="object keys of %&apos;block&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return Object.keys(a.expression);</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="OS" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Reports the operating system.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var userAgent = window.navigator.userAgent,&#xD;      platform = window.navigator.platform,&#xD;      macosPlatforms = [&apos;Macintosh&apos;, &apos;MacIntel&apos;, &apos;MacPPC&apos;, &apos;Mac68K&apos;],&#xD;      windowsPlatforms = [&apos;Win32&apos;, &apos;Win64&apos;, &apos;Windows&apos;, &apos;WinCE&apos;],&#xD;      iosPlatforms = [&apos;iPhone&apos;, &apos;iPad&apos;, &apos;iPod&apos;],&#xD;      os = null;&#xD;&#xD;  if (macosPlatforms.indexOf(platform) !== -1) {&#xD;    os = &apos;Mac OS&apos;;&#xD;  } else if (iosPlatforms.indexOf(platform) !== -1) {&#xD;    os = &apos;iOS&apos;;&#xD;  } else if (windowsPlatforms.indexOf(platform) !== -1) {&#xD;    os = &apos;Windows&apos;;&#xD;  } else if (/Android/.test(userAgent)) {&#xD;    os = &apos;Android&apos;;&#xD;  } else if (!os &amp;&amp; /Linux/.test(platform)) {&#xD;    os = &apos;Linux&apos;;&#xD;  }&#xD;&#xD;  return os;</l></block><list></list></block></block></script></block-definition><block-definition s="%&apos;list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">Replicates a scratch list reporter.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportNot"><block s="reportVariadicEquals"><list><custom-block s="JS type of %s"><block var="item"/></custom-block><l>string</l></list></block></block><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="item"/></block><l>1</l></list></block></list></block></autolambda><list><l>item</l></list></block><block var="list"/></block></block><block s="reportJoinWords"><block var="list"/></block><block s="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block></block></block></script></block-definition><block-definition s="is %&apos;block&apos; a custom block?" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>ring</l></list><l>return ring.expression.selector == "evaluateCustomBlock";</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="broswer" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>var sBrowser, sUsrAg = navigator.userAgent;&#xD;&#xD;// The order matters here, and this may report false positives for unlisted browsers.&#xD;&#xD;if (sUsrAg.indexOf("Firefox") &gt; -1) {&#xD;  sBrowser = "Firefox";&#xD;  // "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"&#xD;} else if (sUsrAg.indexOf("SamsungBrowser") &gt; -1) {&#xD;  sBrowser = "Samsung Internet";&#xD;  // "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36&#xD;} else if (sUsrAg.indexOf("Opera") &gt; -1 || sUsrAg.indexOf("OPR") &gt; -1) {&#xD;  sBrowser = "Opera";&#xD;  // "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.106"&#xD;} else if (sUsrAg.indexOf("Trident") &gt; -1) {&#xD;  sBrowser = "Internet Explorer";&#xD;  // "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko"&#xD;} else if (sUsrAg.indexOf("Edge") &gt; -1) {&#xD;  sBrowser = "Edge";&#xD;  // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"&#xD;} else if (sUsrAg.indexOf("Chrome") &gt; -1) {&#xD;  sBrowser = "Chrome";&#xD;  // "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36"&#xD;} else if (sUsrAg.indexOf("Safari") &gt; -1) {&#xD;  sBrowser = "Safari";&#xD;  // "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 980x1306"&#xD;} else {&#xD;  sBrowser = "unknown";&#xD;}&#xD;&#xD;return sBrowser</l></block><list></list></block></block></script></block-definition><block-definition s="touchscreen?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return ((&apos;ontouchstart&apos; in window) ||&#xD;     (navigator.maxTouchPoints &gt; 0) ||&#xD;     (navigator.msMaxTouchPoints &gt; 0));</l></block><list></list></block></block></script></block-definition><block-definition s="next things I am going to do" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportCallCC"><block s="reifyScript"><script><block s="doReport"><block var="#1"/></block></script><list><l>#1</l></list></block></block></block></script></block-definition><block-definition s="dictionary %&apos;key&apos; %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">useful for encoding/decoding something. reports the second item of the first occurence of when the first item is equal to the &quot;key&quot;. DICTIONARY [a] (LIST [x] [f]) (LIST [a] [s]) will report &quot;s&quot;.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="reportListItem"><l>2</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><l/></block><block var="key"/></list></block></autolambda><list></list></block><block var="lists"/></block></block><l>error</l><block s="reportNewList"><list></list></block></custom-block></block></script></block-definition><block-definition s="$flash dictionary %&apos;key&apos; %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">same as DICTIONARY, but compiled.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="reportListItem"><l>2</l><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><l/></block><block var="key"/></list></block></autolambda><list></list></block><block var="lists"/></block></block><l>error</l><block s="reportNewList"><list></list></block></custom-block></block></script></block-definition><block-definition s="case of %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="case of %s"><l></l></custom-block></autolambda><list></list></block><block var="text"/></block><block s="reportIfElse"><block s="reportVariadicAnd"><list><custom-block s="%s items of %l have %predRing"><l>all</l><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block s="reportConcatenatedLists"><list><block s="reportUnicodeAsLetter"><block s="reportNumbers"><block s="reportUnicode"><l>A</l></block><block s="reportUnicode"><l>Z</l></block></block></block><block s="reportUnicodeAsLetter"><block s="reportNumbers"><block s="reportUnicode"><l>a</l></block><block s="reportUnicode"><l>z</l></block></block></block></list></block><l></l></block></autolambda><list></list></block></custom-block><block s="reportVariadicNotEquals"><list><block var="text"/><l></l></list></block></list></block><block s="reportIfElse"><block s="reportVariadicIsIdentical"><list><block var="text"/><custom-block s="to upper case %txt"><block var="text"/></custom-block></list></block><l>uppercase</l><block s="reportIfElse"><block s="reportVariadicIsIdentical"><list><block var="text"/><custom-block s="to lower case %txt"><block var="text"/></custom-block></list></block><l>lowercase</l><l>nothing</l></block></block><l>nothing</l></block></block></block></script></block-definition><block-definition s="to upper case %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="275.3333333333333" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>text</l></list><l>return text.toLocaleUpperCase();</l></block><list><block s="reportJoinWords"><list><block var="text"/></list></block></list></block></block></script></block-definition><block-definition s="%&apos;what&apos; items of %&apos;data&apos; have %&apos;pred&apos;" type="predicate" category="lists"><comment x="0" y="0" w="90" collapsed="false">reports true if all/any of the items in the list have the given property. the &quot;input names&quot; advanced thingy for map, find first, and combine work, but you can have unlimited input names, and the input names don&apos;t have the same default names.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">all<options>all&#xD;any</options></input><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportMap"><block var="pred"/><block var="data"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="what"/><l>all</l></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><l/><l/></list></block></autolambda><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="what"/><l>any</l></list></block><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><l/><l/></list></block></autolambda><list></list></block><l></l></block></block></block></block></script></block-definition><block-definition s="play sound %&apos;sound&apos; at %&apos;hz&apos; Hz until done" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_soundsMenu</options></input><input type="%n">44100<options>22.05 kHz=22050&#xD;44.1 kHz=44100&#xD;48 kHz=48000&#xD;88.2 kHz=88200&#xD;96 kHz=96000</options></input></inputs><script><block s="doPlaySoundUntilDone"><block s="reportNewSoundFromSamples"><block s="reportIfElse"><block s="reportIsA"><block var="sound"/><l><option>list</option></l></block><block var="sound"/><block s="reportGetSoundAttribute"><l><option>samples</option></l><block var="sound"/></block></block><block var="hz"/></block></block></script></block-definition><block-definition s="pressed &quot;ok&quot; from dialog %&apos;Text&apos; ?" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt">Are you sure?</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return window.confirm(a);</l></block><list><block var="Text"/></list></block></block></script></block-definition><block-definition s="answer from %&apos;text&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt">What is your name?</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return window.prompt(a);</l></block><list><block var="text"/></list></block></block></script></block-definition><block-definition s="ask %&apos;text&apos; set %&apos;answer&apos; to the answer" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt">What&apos;s your name?</input><input type="%upvar"></input></inputs><script><block s="doSetVar"><l>answer</l><custom-block s="answer from %txt"><block var="text"/></custom-block></block></script></block-definition><block-definition s="print this" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>window.print()</l></block><list></list></block></script></block-definition><block-definition s="Open HTML %&apos;text&apos; tab name %&apos;c&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%code">HTML</input><input type="%s">Tab Name</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>b</l><l>c</l></list><l>var myWindow;&#xD;&#xD; myWindow = window.open("", "myWindow", "width=200,height=100");&#xD;  myWindow.document.write("&lt;title&gt;" + c + "&lt;/title&gt;" + b + "");</l></block><list><block var="text"/><block var="c"/></list></block></script></block-definition><block-definition s="notifcation %&apos;Text&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello world!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>&#xD;  if (!("Notification" in window)) {&#xD;    alert("This browser does not support desktop notification");&#xD;  }&#xD;&#xD;  else if (Notification.permission === "granted") {&#xD;    // If it&apos;s okay let&apos;s create a notification&#xD;    var notification = new Notification(a);&#xD;  }&#xD;&#xD; &#xD;  else if (Notification.permission !== "denied") {&#xD;    Notification.requestPermission().then(function (permission) {&#xD;     &#xD;      if (permission === "granted") {&#xD;        var notification = new Notification(a);&#xD;      }&#xD;    });&#xD;  }&#xD;&#xD;  </l></block><list><block var="Text"/></list></block></script></block-definition><block-definition s="// %&apos;text&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%mlt">Multi Line Comment</input></inputs></block-definition><block-definition s="switch cursor to costume %&apos;dropdown&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>n-resize&#xD;s-resize&#xD;e-resize&#xD;w-resize&#xD;ne-resize&#xD;se-resize&#xD;nw-resize&#xD;sw-resize&#xD;col-resize&#xD;ew-resize&#xD;ns-resize&#xD;nesw-resize&#xD;nwse-resize&#xD;row-resize&#xD;grabbing&#xD;help&#xD;move&#xD;not-allowed&#xD;pointer&#xD;progress&#xD;text&#xD;auto&#xD;cell&#xD;copy&#xD;crosshair&#xD;default&#xD;grab&#xD;wait&#xD;zoom-in&#xD;zoom-out&#xD;alias&#xD;all-scroll&#xD;context-menu&#xD;no-drop&#xD;none&#xD;not allowed&#xD;vertical-text</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="dropdown"/><l>none</l></list></block><script><block s="doIf"><custom-block s="pressed &quot;ok&quot; from dialog %txt ?"><l>This will hide the cursor. Are you sure you want to do this?</l></custom-block><script><block s="doRun"><block s="reportJSFunction"><list><l>c</l></list><l>document.body.style.cursor = c;</l></block><list><block var="dropdown"/></list></block></script><list></list></block></script><script><block s="doRun"><block s="reportJSFunction"><list><l>c</l></list><l>document.body.style.cursor = c;</l></block><list><block var="dropdown"/></list></block></script></block></script></block-definition><block-definition s="// %&apos;text&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">Comment</input></inputs></block-definition><block-definition s="anywhere url %&apos;url&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Get html contents from anywhere on the internet.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">https://en.wikipedia.org/wiki/Main_page</input></inputs><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://cors-anywhere.herokuapp.com/</l><block var="url"/></list></block></block></block></script></block-definition><block-definition s="scratch user stats from user %&apos;user&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><custom-block s="anywhere url %txt"><block s="reportJoinWords"><list><l>https://api.scratch.mit.edu/users/</l><block var="user"/></list></block></custom-block><l><option>json</option></l></block></block></script></block-definition><block-definition s="is %&apos;user&apos; a scratch team member?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="user"/><l></l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><custom-block s="scratch user stats from user %txt"><block var="user"/></custom-block></block></block><l>error</l><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block></block></block></script></block-definition><block-definition s="day of week" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportDate"><l><option>day of week</option></l></block><block s="reportNewList"><list><l>Sunday</l><l>Monday</l><l>Tuesday</l><l>Wednesday</l><l>Thursday</l><l>Friday</l><l>Saturday</l></list></block></block></block></script></block-definition><block-definition s="JS keys pressed" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return new List(Object.keys((this.parentThatIsA(StageMorph) || {}).keysPressed))</l></block><list></list></block></block></script></block-definition><block-definition s="%&apos;show/hide&apos; block %&apos;block&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>show&#xD;hide</options></input><input type="%repRing"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="block"/><l><option>command</option></l></block><block s="reportVariadicOr"><list><block s="reportIsA"><block var="block"/><l><option>reporter</option></l></block><block s="reportIsA"><block var="block"/><l><option>predicate</option></l></block></list></block></list></block><script><block s="doRun"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="show/hide"/><l>hide</l></list></block><block s="reifyScript"><script><block s="doHideVar"><l></l></block></script><list></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="show/hide"/><l>show</l></list></block><block s="reifyScript"><script><block s="doShowVar"><l></l></block></script><list></list></block><block s="evaluate"><block s="reifyReporter"><script><block s="doStopThis"><l><option>this block</option></l></block></script><list></list></block><list></list></block></block></block><list><block var="block"/></list></block></script><list></list></block></script></block-definition><block-definition s="costume %&apos;costume&apos; with r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos; a: %&apos;a&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>c</l></list></block><block s="doSetVar"><l>c</l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>list</option></l></block><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>pixels</option></l><l></l></block><block var="costume"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block><block var="costume"/></block></block><block s="doReport"><block s="reportNewCostume"><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportQuotient"><block s="reportNewList"><list><block var="r"/><block var="g"/><block var="b"/><block var="a"/></list></block><l>100</l></block></list></block></autolambda><list></list></block><list><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>list</option></l></block><block var="costume"/><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block></block></list></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="c"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="c"/></block></block></block></script></block-definition><block-definition s="full blockspec of %&apos;block&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="block"/></list></block></block></script></block-definition><block-definition s="create/recolor category %&apos;category&apos; RGB color %&apos;r&apos; %&apos;g&apos; %&apos;b&apos; %&apos;a&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>prototype</l><l>IDEmorph</l></list></block><block s="doSetVar"><l>prototype</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return SpriteMorph.prototype;</l></block><list></list></block></block><block s="doSetVar"><l>IDEmorph</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return this.parentThatIsA(IDE_Morph);</l></block><list></list></block></block><block s="doRun"><block s="reportJSFunction"><list><l>prototype</l><l>name</l><l>r</l><l>g</l><l>b</l><l>a</l><l>ide</l></list><l>if(name != "") {&#xD;const cats = prototype.categories;&#xD;if(!cats.includes(name)) {cats.push(name);};&#xD;prototype.blockColor[name] = new Color(r, g, b, a);&#xD;ide.createCategories();&#xD;ide.reactToWorldResize(world.bounds.copy());&#xD;ide.flushBlocksCache();&#xD;ide.refreshPalette();&#xD;}</l></block><list><block var="prototype"/><block var="category"/><block var="r"/><block var="g"/><block var="b"/><block s="reportQuotient"><block var="a"/><l>100</l></block><block var="IDEmorph"/></list></block></script></block-definition><block-definition s="code %&apos;code&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%code"></input></inputs><script><block s="doReport"><block var="code"/></block></script></block-definition><block-definition s="script %&apos;block&apos; $arrowRight scratchblocks" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">turns the specified script into scratchblocks.&#xD;the jsfunction block does not work.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>if( !BlockMorph.prototype._userMenu){&#xD;  BlockMorph.prototype._userMenu = BlockMorph.prototype.userMenu;&#xD;}&#xD;&#xD;BlockMorph.prototype.userMenu = function(){&#xD;var&#xD; shiftClicked = world.currentKey === 16 &#xD; ,menu = this._userMenu();&#xD; &#xD; if (shiftClicked){&#xD;   menu.addItem(&#xD;     "to scratchblocks...",&#xD;      function () {&#xD;        var code = &apos;&lt;p&gt;[scratchblocks]\n&apos;+this.topBlock().toScratchblocks()+&apos;\n[/scratchblocks]&apos;;&#xD;        window.prompt(&apos;scratchblocks code for you to copy and paste&apos;, code);&#xD;      },&#xD;      &apos;open a new window\nwith a scratchblocks...&apos;&#xD;   );&#xD; }&#xD;return menu;&#xD;}&#xD;&#xD;SyntaxElementMorph.prototype.toScratchblocks = function () {&#xD;    var nb = this.nextBlock &amp;&amp; this.nextBlock(),&#xD;        result;&#xD;    result = this.parts().map(function(child) {&#xD;        if (child.toScratchblocks) {&#xD;          return child.toScratchblocks();&#xD;        } else if (child instanceof StringMorph) {&#xD;          return child.text;&#xD;        } else {&#xD;          return &apos;&apos;; // should never happen&#xD;        }&#xD;    }).join(&apos; &apos;) + this.toScratchblocksCategory();&#xD;    if (nb) {&#xD;        result += &apos;\n&apos; + nb.toScratchblocks()&#xD;    }&#xD;    return result;&#xD;};&#xD;&#xD;SyntaxElementMorph.prototype.toScratchblocksCategory = function () {&#xD;    // private. answers with scratchblocks category specifier&#xD;    if (!this.category) { return &apos;&apos;; }&#xD;    return &apos; :: &apos; + ({&#xD;        &apos;lists&apos;: &apos;list&apos;,&#xD;        &apos;other&apos;: &apos;grey&apos;,&#xD;    }[this.category] || this.category);&#xD;};&#xD;&#xD;ReporterBlockMorph.prototype.toScratchblocks = function () {&#xD;    var inner = ReporterBlockMorph.uber.toScratchblocks.call(this);&#xD;    if (this.isPredicate) {&#xD;        return &apos;&lt;&apos; + inner + &apos;&gt;&apos;;&#xD;    } else {&#xD;        return &apos;(&apos; + inner + &apos;)&apos;;&#xD;    }&#xD;};&#xD;&#xD;RingMorph.prototype.toScratchblocksCategory = function () {&#xD;    // force rendering as a &apos;ring&apos; shape.&#xD;    return RingMorph.uber.toScratchblocksCategory.call(this) + &apos; ring&apos;;&#xD;};&#xD;&#xD;ArgMorph.prototype.toScratchblocks = function () {&#xD;    if (this.isHole) {&#xD;        if (this.children[0] instanceof ArgMorph) {&#xD;            return this.isPredicate ? &apos;&lt; &gt;&apos; : &apos;( )&apos;;&#xD;        } else {&#xD;            return this.children[0].toScratchblocks();&#xD;        }&#xD;    } else if (this.type === &apos;list&apos;) {&#xD;        return &apos;≡&apos;; // scratchblocks renderer does not have a "list" symbol&#xD;    }&#xD;    return &apos;&apos;; // should never happen&#xD;};&#xD;&#xD;CommandSlotMorph.prototype.toScratchblocks = function () {&#xD;    var inside = this.children.map(function(child) {&#xD;        return child.toScratchblocks();&#xD;    }).join(&apos;\n&apos;);&#xD;    // need line break if empty&#xD;    // otherwise scratchblocks renders an empty embedded block&#xD;    return &apos;{&apos; + (inside || &apos;\n&apos;) + &apos;}&apos;;&#xD;};&#xD;&#xD;InputSlotMorph.prototype.toScratchblocks = function () {&#xD;    var contents = this.contents(),&#xD;        text = contents.text;&#xD;    if (this.isNumeric) {&#xD;        if (this.choices) {&#xD;            return &apos;(&apos; + text + &apos; v)&apos;;&#xD;        } else {&#xD;            return &apos;(&apos; + text + &apos;)&apos;;&#xD;        }&#xD;    } else if (this.choices) {&#xD;        return &apos;[&apos; + text + &apos; v]&apos;;&#xD;    } else {&#xD;        // escape trailing &apos; v&apos;&#xD;        text = text.replace(/ v$/, &apos;\\ v&apos;);&#xD;        return &apos;[&apos; + text + &apos;]&apos;;&#xD;    }&#xD;};&#xD;&#xD;TemplateSlotMorph.prototype.toScratchblocks = function () {&#xD;    var category = this.parent.toScratchblocksCategory() || &apos; :: grey&apos;;&#xD;    return &apos;(&apos; + this.children[0].toScratchblocks() + category + &apos;)&apos;;&#xD;};&#xD;&#xD;BooleanSlotMorph.prototype.toScratchblocks = function () {&#xD;    if (this.value === null) {&#xD;      return &apos;&lt; &gt;&apos;; // empty boolean slot&#xD;    } else {&#xD;      // use unicode symbols to emulate green tick/red cross&#xD;      return this.value ? &apos;&lt;&lt;✔true (::grey):: operators&gt; :: operators&gt;&apos; : &apos;&lt;(::grey)✘false :: obsolete&gt;&apos;;&#xD;    }&#xD;};&#xD;&#xD;SymbolMorph.prototype.toScratchblocks = function () {&#xD;    var symbol = {&#xD;        &apos;flag&apos;: &apos;greenFlag&apos;,&#xD;    }[this.name] || this.name;&#xD;    return &apos;@&apos; + symbol;&#xD;};&#xD;&#xD;MultiArgMorph.prototype.toScratchblocks = function () {&#xD;    var arrows = this.arrows().children,&#xD;        label = this.children[0],&#xD;        result = &apos;&apos;;&#xD;    if (label.isVisible) {&#xD;        result += label.text;&#xD;    }&#xD;    result += this.inputs().map(function(child) {&#xD;        return child.toScratchblocks();&#xD;    }).join(&apos; &apos;);&#xD;    if (arrows[0].isVisible) result += &apos; @delInput&apos;;&#xD;    if (arrows[1].isVisible) result += &apos; @addInput&apos;;&#xD;    return result;&#xD;};&#xD;&#xD;PrototypeHatBlockMorph.prototype.toScratchblocks = function () {&#xD;    var customCommand = this.parts()[0],&#xD;        nb = this.nextBlock(),&#xD;        result;&#xD;    result = &apos;{&apos; + customCommand.toScratchblocks() + &apos;} :: control hat&apos;;&#xD;    if (nb) {&#xD;      result += &apos;\n&apos; + nb.toScratchblocks();&#xD;    }&#xD;    return result;&#xD;};&#xD;&#xD;BlockLabelPlaceHolderMorph.prototype.toScratchblocks = function () {&#xD;    return &apos;&apos;; // don&apos;t include plusses in scratchblocks output&#xD;};&#xD;</l></block><list></list></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>b</l></list><l>return (b).expression.toScratchblocks()</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="%&apos;child&apos; put after %&apos;script&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Puts the blocks in the first script at the end of the second script.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>child</l><l>script</l></list><l>//if empty&#xD;if (!(script.expression instanceof BlockMorph)) return child;&#xD;if (!(child.expression instanceof BlockMorph)) return script;&#xD;&#xD;var tailBlock = script.expression.fullCopy();&#xD;var outCtx = new Context(undefined, tailBlock);&#xD;var lastChild = tailBlock.nextBlock();&#xD;&#xD;while (lastChild instanceof BlockMorph) {&#xD; tailBlock = lastChild;&#xD; lastChild = lastChild.nextBlock();&#xD;}&#xD;&#xD;tailBlock.add(child.expression.fullCopy());&#xD;tailBlock.fixLayout();&#xD;&#xD;//combine inputs&#xD;outCtx.inputs = script.inputs;&#xD;&#xD;for (let v of child.inputs) {&#xD; if (outCtx.inputs.indexOf(v) &lt; 0) {&#xD;  outCtx.inputs.push(v);&#xD; }&#xD;}&#xD;&#xD;return outCtx;</l></block><list><block var="child"/><block var="script"/></list></block></block></script></block-definition><block-definition s="%&apos;val&apos; into first empty slot of %&apos;expr&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Puts an expression/value inside the first empty slot of another command/expression.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>val</l><l>expr</l></list><l>if (!(expr.expression instanceof BlockMorph)) return expr;&#xD;&#xD;var isBlock = val.expression instanceof BlockMorph;&#xD;var type = typeof(val);&#xD;var block = null;&#xD;&#xD;if (type == "boolean") {&#xD; //Create true/false boolean block&#xD; //Just copying properties from a boolean block i logged to the dev console&#xD; block = new ReporterBlockMorph();&#xD; block.isPredicate = true;&#xD; block.selector = "reportBoolean";&#xD; block.blockSpec = "%bool";&#xD; block.category = "operators";&#xD; block.color = new Color(98, 194, 19, 1);&#xD;&#xD; let slotMorph = new BooleanSlotMorph();&#xD; slotMorph.color = new Color(98, 194, 19);&#xD; slotMorph.value = val;&#xD; //slotMorph.type = null;&#xD; slotMorph.isStatic = true;&#xD; //slotMorph.isTemplate = false;&#xD; //slotMorph.isFreeForm = false;&#xD;&#xD; slotMorph.fixLayout();&#xD; block.add(slotMorph);&#xD; block.fixLayout();&#xD;} else if (isBlock) {&#xD; block = val.expression.fullCopy();&#xD;}&#xD;&#xD;var outCtx = new Context(undefined, expr.expression);&#xD;&#xD;for (let i in outCtx.expression.children) {&#xD; let input = outCtx.expression.children[i];&#xD;&#xD; //console.log(input);&#xD; &#xD; if (input instanceof RingMorph) { //Ring &#xD;  if (input.children[0].children.length == 0) { //If empty&#xD;   if (isBlock) {&#xD;    input.children[0].add(block);&#xD;    input.children[0].fixLayout();&#xD;&#xD;    return outCtx; &#xD;   }&#xD;  }&#xD; } else if (input instanceof CSlotMorph) {&#xD;  if (input.children[0] === undefined) { //is empty&#xD;  //if (input.isEmptySlot()) {&#xD;   if (isBlock || type == "boolean") {&#xD;    if (block instanceof CommandBlockMorph) {&#xD;     input.add(block);&#xD;     input.fixLayout();&#xD;    } else {&#xD;     outCtx.expression.children.splice(i, 1, block);&#xD;     block.parent = outCtx.expression;&#xD;&#xD;     block.fixLayout();&#xD;    }&#xD;&#xD;    return outCtx;&#xD;   }&#xD;  } &#xD; } else if (input instanceof InputSlotMorph) { //Input slot&#xD;  //if (input.children[0].text == "") { //is empty&#xD;  if (input.isEmptySlot()) {&#xD;   if (type == "string" || type == "number") {&#xD;    input.setContents(val);&#xD;    delete input.bindingID; &#xD;   } else {&#xD;    outCtx.expression.children.splice(i, 1, block);&#xD;    block.parent = outCtx.expression;&#xD;&#xD;    block.fixLayout();&#xD;   }&#xD;&#xD;   return outCtx;&#xD;  }&#xD; } else if (input instanceof BooleanSlotMorph) { //Bool slot&#xD;  if (input.value === null) { //is empty&#xD;   if (type == "boolean") {&#xD;    input.value = val;&#xD;    return outCtx;&#xD;   } else if (isBlock) {&#xD;    outCtx.expression.children.splice(i, 1, block);&#xD;    block.parent = outCtx.expression;&#xD;&#xD;    block.fixLayout(); &#xD;   }&#xD;&#xD;   return outCtx; &#xD;  } &#xD; }&#xD;}&#xD;&#xD;return expr; </l></block><list><block var="val"/><block var="expr"/></list></block></block></script><scripts><comment x="409.00000000000136" y="175.1999999999996" w="241.828125" collapsed="false">RingMorph.children[0].children is empty&#xD;InputSlotMorph.children[0.text == &quot;&quot;&#xD;BooleanSlotMorph.value == null&#xD;CSlotMorph.children is empty</comment></scripts></block-definition><block-definition s="slot %&apos;n&apos; of %&apos;block&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Gets the block/value at the nth slot of a block.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>n</l><l>target</l></list><l>//if empty&#xD;if (!(target.expression instanceof BlockMorph)) return new Context();&#xD;&#xD;function get(child) {&#xD;  if (child instanceof BooleanSlotMorph) {&#xD;    return child.value;&#xD;  } else if (child instanceof InputSlotMorph) {&#xD;    return child.children[0].text;&#xD;  } else if (child instanceof CSlotMorph) {&#xD;    var block = child.children[0];&#xD;    //if (block instanceof BlockMorph) block = block.fullCopy();&#xD;&#xD;    return new Context(null, block);&#xD;  } else if (child instanceof RingMorph) {&#xD;    var block = child.children[0].children[0];&#xD;    //if (block instanceof BlockMorph) block = block.fullCopy();&#xD;&#xD;    return new Context(null, block);&#xD;  } else if (child instanceof MultiArgMorph) {&#xD;     var outArr = [];&#xD;&#xD;     for (let j = 0; j &lt; child.children.length - 1; j++) {&#xD;       outArr.push( get(child.children[j]) );&#xD;     }&#xD;&#xD;     return new List(outArr);&#xD;  } else {&#xD;    return new Context(null, child);&#xD;  }&#xD;}&#xD;&#xD;var slotNum = 1;&#xD;for (let i in target.expression.children) {&#xD; let child = target.expression.children[i];&#xD;&#xD; if (child instanceof InputSlotMorph || child instanceof RingMorph || child instanceof CSlotMorph || child instanceof ArgMorph || child instanceof BlockMorph) {&#xD;  if (n === slotNum) {&#xD;   console.log(child);&#xD;&#xD;   return get(child);&#xD;  }&#xD;&#xD;  slotNum++;&#xD; }&#xD;}&#xD;&#xD;return new Context(); </l></block><list><block var="n"/><block var="block"/></list></block></block></script></block-definition><block-definition s="blocks in %&apos;expr&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Reports a list of the blocks in a stack</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>expr</l></list><l>var out = [];&#xD;var block = expr.expression;&#xD;&#xD;while (block) {&#xD;  var itm = block.fullCopy();&#xD;  if (itm.nextBlock())  itm.children.pop();&#xD;  out.push( new Context(0, itm) );&#xD;  block = block.nextBlock();&#xD;}&#xD;&#xD;return new List(out);</l></block><list><block var="expr"/></list></block></block></script></block-definition><block-definition s="# of slots in %&apos;expr&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>expr</l></list><l>return expr.expression.inputs().length;</l></block><list><block var="expr"/></list></block></block></script></block-definition><block-definition s="reverse %&apos;string&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">hello world!</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block var="string"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="tree" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block><block s="getPenDown"></block></list></block></block><block s="down"></block><block s="turnLeft"><l>20</l></block><block s="forward"><l>25</l></block><block s="doRun"><block s="reportListItem"><l><option>random</option></l><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="square"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="hexagon"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="star"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="tree"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="tree"></custom-block></script><list></list></block></list></block></block><list></list></block><block s="forward"><l>-25</l></block><block s="turn"><l>40</l></block><block s="forward"><l>25</l></block><block s="doRun"><block s="reportListItem"><l><option>random</option></l><block s="reportNewList"><list><block s="reifyScript"><script><custom-block s="square"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="hexagon"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="star"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="tree"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="tree"></custom-block></script><list></list></block></list></block></block><list></list></block><block s="forward"><l>-25</l></block><block s="turnLeft"><l>20</l></block><block s="up"></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="a"/></block><block s="reportListItem"><l>2</l><block var="a"/></block></block><block s="doIf"><block s="reportListItem"><l>3</l><block var="a"/></block><script><block s="down"></block></script><list></list></block></script></block-definition><block-definition s="hexagon" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doRepeat"><l>6</l><script><block s="forward"><l>7</l></block><block s="turn"><l>60</l></block></script></block></script></block></script></block-definition><block-definition s="star" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doRepeat"><l>5</l><script><block s="forward"><l>15</l></block><block s="turn"><l>144</l></block></script></block></script></block></script></block-definition><block-definition s="variable reporter? %&apos;expression&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportVariadicEquals"><list><custom-block s="object keys of %repRing"><block var="expression"/></custom-block><l>0</l></list></block></block><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="category of %repRing"><block var="expression"/></custom-block><l>variables</l></list></block><block s="reportNot"><custom-block s="is %repRing a custom block?"><block var="expression"/></custom-block></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="blockspec of %repRing"><block var="expression"/></custom-block><l>var %s</l></list></block><block s="reportVariadicEquals"><list><custom-block s="category of %repRing"><block var="expression"/></custom-block><l>variables</l></list></block></list></block></list></block><block s="reportIsA"><block var="expression"/><l><option>reporter</option></l></block></list></block></list></block></block></script></block-definition><block-definition s="an impossible thing" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reifyScript"><script><block s="doSetVar"><custom-block s="%anyUE"><l></l></custom-block><l></l></block></script><list></list></block></block></script></block-definition><block-definition s="%&apos;thing&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="thing"/><list></list></block></block></script></block-definition><block-definition s="split %&apos;text&apos; by %&apos;split&apos; – no dropdown" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>text</l><l>split</l></list><l>return new List(text.split(split))</l></block><list><block var="text"/><block var="split"/></list></block></block></script></block-definition><block-definition s="I am near variable watcher %&apos;var&apos; ?" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">reports true if the sprite is near the selected variable watcher. If the variable doesn&apos;t exist, an error happens.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>varName</l></list><l>return this.findVariableWatcher(varName).bounds.intersects(this.bounds);</l></block><list><block var="var"/></list></block></block></script></block-definition><block-definition s="set visible pallet to %&apos;pallet&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true"><options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;control&#xD;sensing&#xD;operators&#xD;variables&#xD;lists&#xD;other</options></input></inputs><script><custom-block s="set value %s to %s"><l>Visible palette</l><block var="pallet"/></custom-block></script></block-definition><block-definition s="one of %&apos;bools&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%boolUE"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="value"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></autolambda><list><l>value</l></list></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="value"/><list></list></block></autolambda><list><l>value</l></list></block><block var="bools"/></block></block></block><l>1</l></list></block></block></script></block-definition><block-definition s="variable watcher %&apos;varName&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>varName</l></list><l>return this.findVariableWatcher(varName)</l></block><list><block var="varName"/></list></block></block></script></block-definition><block-definition s="url %&apos;url&apos; as costume" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>url</l><l>proc</l></list><l>if (!proc.img) {&#xD;  proc.img = new Image();&#xD;  proc.img.src = url;&#xD;  proc.img.onload = function() {&#xD;    proc.img.loaded = true;&#xD;  }&#xD;} else if (proc.img.loaded) {&#xD;  const costume = new Costume(proc.img);&#xD;  proc.img = null;&#xD;  return costume;&#xD;}&#xD;proc.pushContext(&apos;doYield&apos;);&#xD;proc.pushContext();</l></block><list><block var="url"/></list></block></block></script></block-definition><block-definition s="insert %&apos;thing&apos; at %&apos;num&apos; of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n">1<options>1&#xD;last</options></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportMonadic"><l><option>id</option></l><block var="data"/></block></block><block s="doInsertInList"><block var="thing"/><block var="num"/><block var="data"/></block><block s="doReport"><block var="data"/></block></script></block-definition><block-definition s="for ( %&apos;setup&apos; ; %&apos;predicate&apos; ; %&apos;increment&apos; ) %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%predRing"></input><input type="%cmdRing"></input><input type="%ca"></input></inputs><script><block s="doRun"><block var="setup"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="predicate"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doRun"><block var="increment"/><list></list></block></script></block></script></block-definition><block-definition s="for each ( %&apos;item&apos; %&apos;index&apos; %&apos;list&apos; ) in %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>index</l><l>0</l></block><block s="doSetVar"><l>list</l><block s="reportMonadic"><l><option>id</option></l><block var="data"/></block></block><block s="doForEach"><l>item (2)</l><block var="data"/><script><block s="doChangeVar"><l>index</l><l>1</l></block><block s="doSetVar"><l>item</l><block var="item (2)"/></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for each ( %&apos;item&apos; %&apos;index&apos; %&apos;list&apos; ) in %&apos;data&apos; %&apos;action&apos; with breakpoints" type="command" category="lists"><variables><list struct="atomic" id="137877">item #</list></variables><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>item #</l><block s="reportVariadicSum"><list><block s="reportModulus"><block var="item #"/><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><l>1</l></list></block></block><block s="doSetVar"><l>index</l><block var="item #"/></block><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="index"/><block var="data"/></block></block><block s="doSetVar"><l>list</l><block s="reportMonadic"><l><option>id</option></l><block var="data"/></block></block><block s="doRun"><block var="action"/><list></list></block></script></block-definition><block-definition s="x: %&apos;x&apos; y: %&apos;y&apos;" type="reporter" category="lists"><comment x="0" y="0" w="134.4000015258789" collapsed="false">Use as an input for POINT TOWARDS, DISTANCE/DIRECTION, and HUE AT.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script></block-definition><block-definition s="number %&apos;num&apos; in the fibonacci sequence" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicNotEquals"><list><block s="reportModulus"><block var="num"/><l>1</l></block><l>0</l></list></block><custom-block s="report error %s"><l>cannot get fibonacci number for decimal numbers</l></custom-block><block s="reportIfElse"><block s="reportVariadicLessThanOrEquals"><list><block var="num"/><l>1</l></list></block><block var="num"/><block s="reportVariadicSum"><list><custom-block s="number %n in the fibonacci sequence"><block s="reportDifference"><block var="num"/><l>1</l></block></custom-block><custom-block s="number %n in the fibonacci sequence"><block s="reportDifference"><block var="num"/><l>2</l></block></custom-block></list></block></block></block></block></script></block-definition><block-definition s="glide %&apos;steps&apos; steps in %&apos;secs&apos; seconds" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doGlide"><block var="secs"/><block s="reportVariadicSum"><list><block s="xPosition"></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block><block var="steps"/></list></block></list></block><block s="reportVariadicSum"><list><block s="yPosition"></block><block s="reportVariadicProduct"><list><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block><block var="steps"/></list></block></list></block></block></script></block-definition><block-definition s="USE BIGNUMS %&apos;bool&apos;" type="command" category="operators"><comment x="0" y="0" w="303.3333333333333" collapsed="false">call with True to turn on the entire Scheme numeric tower, including infinite-precision integers, exact rationals, and complex numbers; call with False to restore native JavaScript arithmetic.</comment><header></header><code></code><translations>pt:altera utilização de aritmética do Scheme para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>isDone</l></list></block><block s="doSetVar"><l>isDone</l><block s="evaluate"><block s="reportJSFunction"><list><l>useBigNums</l></list><l>var done = false;&#xD;&#xD;function initialize (callback) {&#xD;    var bigScript = document.createElement(&apos;script&apos;);&#xD;    bigScript.src = &apos;//snap.berkeley.edu/snap/libraries/biginteger.js&apos;;&#xD;    bigScript.onload = loadScheme;&#xD;    document.head.appendChild(bigScript);&#xD;&#xD;    function loadScheme () {&#xD;        var schemeScript = document.createElement(&apos;script&apos;);&#xD;        schemeScript.src = &apos;//snap.berkeley.edu/snap/libraries/schemeNumber.js&apos;;&#xD;        schemeScript.onload = finish;&#xD;        document.head.appendChild(schemeScript);&#xD;    }&#xD;&#xD;    function finish () {&#xD;        makeGlobalObject();&#xD;        callback();&#xD;    }&#xD;}&#xD;&#xD;function makeGlobalObject () {&#xD;    window.bigNumbers = {&#xD;        originalEvaluate: InputSlotMorph.prototype.evaluate,&#xD;        originalChangeVar: VariableFrame.prototype.changeVar,&#xD;        originalPrims: {&#xD;            reportBasicSum: Process.prototype.reportBasicSum,&#xD;            reportBasicDifference: Process.prototype.reportBasicDifference,&#xD;            reportBasicProduct: Process.prototype.reportBasicProduct,&#xD;            reportBasicQuotient: Process.prototype.reportBasicQuotient,&#xD;            reportBasicPower: Process.prototype.reportBasicPower,&#xD;            reportBasicModulus: Process.prototype.reportBasicModulus,&#xD;            reportBasicRandom: Process.prototype.reportBasicRandom,&#xD;            reportBasicLessThan: Process.prototype.reportBasicLessThan,&#xD;            reportBasicGreaterThan: Process.prototype.reportBasicGreaterThan,&#xD;            reportEquals: Process.prototype.reportEquals,&#xD;            reportIsIdentical: Process.prototype.reportIsIdentical,&#xD;            reportMonadic: Process.prototype.reportMonadic&#xD;        }&#xD;    };&#xD;}&#xD;&#xD;function loadBlocks () {&#xD;    var fn = SchemeNumber.fn;&#xD;    var originalPrims = window.bigNumbers.originalPrims;&#xD;    if (useBigNums) {&#xD;        InputSlotMorph.prototype.evaluate = function () {&#xD;            var contents = this.contents();&#xD;            if (this.constant) {&#xD;                return this.constant;&#xD;            }&#xD;            if (this.isNumeric) {&#xD;                return parseNumber(contents.text || &apos;0&apos;);&#xD;            }&#xD;            return contents.text;&#xD;        };&#xD;        VariableFrame.prototype.changeVar = function (name, delta, sender) {&#xD;            var frame = this.find(name),&#xD;                value,&#xD;                newValue;&#xD;            if (frame) {&#xD;                value = parseNumber(frame.vars[name].value);&#xD;                newValue = Number.isNaN(value) ? delta : fn[&apos;+&apos;](value, parseNumber(delta));&#xD;                if (sender instanceof SpriteMorph &amp;&amp;&#xD;                        (frame.owner instanceof SpriteMorph) &amp;&amp;&#xD;                        (sender !== frame.owner)) {&#xD;                    sender.shadowVar(name, newValue);&#xD;                } else {&#xD;                    frame.vars[name].value = newValue;&#xD;                }&#xD;&#xD;            }&#xD;        };&#xD;        Object.assign(Process.prototype, {&#xD;            reportBasicSum: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;+&apos;](a, b);&#xD;            },&#xD;            reportBasicDifference: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;-&apos;](a, b);&#xD;            },&#xD;            reportBasicProduct: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;*&apos;](a, b);&#xD;            },&#xD;            reportBasicQuotient: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (fn[&apos;=&apos;](b, &apos;0&apos;) &amp;&amp; !fn[&apos;=&apos;](a, &apos;0&apos;)) {&#xD;                      return (fn[&apos;&lt;&apos;](a, &apos;0&apos;) ? SchemeNumber(&apos;-inf.0&apos;) : SchemeNumber(&apos;+inf.0&apos;))&#xD;                };&#xD;                if (Number.isNaN(a) || Number.isNaN(b) || fn[&apos;=&apos;](b, &apos;0&apos;)) return NaN;&#xD;                return fn[&apos;/&apos;](a, b);&#xD;            },&#xD;            reportBasicPower: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;expt&apos;](a, b);&#xD;            },&#xD;            reportBasicModulus: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                var result = fn.mod(a, b);&#xD;                if (fn[&apos;&lt;&apos;](b, &apos;0&apos;) &amp;&amp; fn[&apos;&gt;&apos;](result, &apos;0&apos;)) {&#xD;                    result = fn[&apos;+&apos;](result, b);&#xD;                }&#xD;                return result;&#xD;            },&#xD;            reportBasicRandom: function (min, max) {&#xD;                var floor = parseNumber(min),&#xD;                    ceil = parseNumber(max);&#xD;                if (Number.isNaN(floor) || Number.isNaN(ceil)) return NaN;&#xD;                if (!fn[&apos;=&apos;](fn.mod(floor, &apos;1&apos;), &apos;0&apos;) || !fn[&apos;=&apos;](fn.mod(ceil, &apos;1&apos;), &apos;0&apos;)) {&#xD;                    // One of the numbers isn&apos;t whole. Include the decimal.&#xD;                    return fn[&apos;+&apos;](&#xD;                        fn[&apos;*&apos;](&#xD;                            Math.random(),&#xD;                            fn[&apos;-&apos;](ceil, floor)&#xD;                        ),&#xD;                        floor&#xD;                    );&#xD;                }&#xD;                return fn.floor(&#xD;                    fn[&apos;+&apos;](&#xD;                        fn[&apos;*&apos;](&#xD;                            Math.random(),&#xD;                            fn[&apos;+&apos;](&#xD;                                fn[&apos;-&apos;](ceil, floor),&#xD;                                &apos;1&apos;&#xD;                            )&#xD;                        ),&#xD;                        floor&#xD;                    )&#xD;                );&#xD;            },&#xD;            reportBasicLessThan: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;&lt;&apos;](a, b);&#xD;            },&#xD;            reportBasicGreaterThan: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;&gt;&apos;](a, b);&#xD;            },&#xD;            reportEqual: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return snapEquals(a, b);&#xD;                return fn[&apos;=&apos;](x, y);&#xD;            },&#xD;            reportIsIdentical: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return originalPrims.reportIsIdentical(a, b);&#xD;                return fn[&apos;=&apos;](x, y);&#xD;            },&#xD;            reportMonadic: function (fname, n) {&#xD;                if (this.enableHyperOps) {&#xD;                    if (n instanceof List) {&#xD;                        return n.map(each =&gt; this.reportMonadic(fname, each));&#xD;                    }&#xD;                }&#xD;&#xD;                n = parseNumber(n);&#xD;                if (Number.isNaN(n)) return NaN;&#xD;&#xD;                switch (Process.prototype.inputOption(fname)) {&#xD;                case &apos;abs&apos;:&#xD;                    return fn.abs(n);&#xD;                case &apos;neg&apos;:&#xD;                    return fn[&apos;-&apos;](n);&#xD;                case &apos;ceiling&apos;:&#xD;                    return fn.ceiling(n);&#xD;                case &apos;floor&apos;:&#xD;                    return fn.floor(n);&#xD;                case &apos;sqrt&apos;:&#xD;                    return sqrt(n);&#xD;                case &apos;sin&apos;:&#xD;                    return fn.sin(radians(n));&#xD;                case &apos;cos&apos;:&#xD;                    return fn.cos(radians(n));&#xD;                case &apos;tan&apos;:&#xD;                    return fn.tan(radians(n));&#xD;                case &apos;asin&apos;:&#xD;                    return degrees(fn.asin(n));&#xD;                case &apos;acos&apos;:&#xD;                    return degrees(fn.acos(n));&#xD;                case &apos;atan&apos;:&#xD;                    return degrees(fn.atan(n));&#xD;                case &apos;ln&apos;:&#xD;                    return fn.log(n);&#xD;                case &apos;log&apos;:&#xD;                    return fn.log(n, &apos;10&apos;);&#xD;                case &apos;lg&apos;:&#xD;                    return fn.log(n, &apos;2&apos;);&#xD;                case &apos;e^&apos;:&#xD;                    return fn.exp(n);&#xD;                case &apos;10^&apos;:&#xD;                    return fn.expt(&apos;10&apos;, n);&#xD;                case &apos;2^&apos;:&#xD;                    return fn.expt(&apos;2&apos;, n);&#xD;                default:&#xD;                    return SchemeNumber(&apos;0&apos;);&#xD;                }&#xD;            }&#xD;        });&#xD;    } else {&#xD;        InputSlotMorph.prototype.evaluate = window.bigNumbers.originalEvaluate;&#xD;        VariableFrame.prototype.changeVar = window.bigNumbers.originalChangeVar;&#xD;        Object.assign(Process.prototype, originalPrims);&#xD;    }&#xD;    done = true;&#xD;}&#xD;&#xD;function parseNumber (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;    if (!fn[&apos;number?&apos;](n)) {&#xD;        n = &apos;&apos; + n;&#xD;        try {&#xD;            return parseENotation(n) || SchemeNumber(n);&#xD;        } catch (err) {&#xD;            return NaN;&#xD;        }&#xD;    }&#xD;    return n;&#xD;}&#xD;&#xD;function parseENotation (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);&#xD;    if (!numbers) return null;&#xD;&#xD;    var coefficient = numbers[1];&#xD;    var exponent = numbers[2];&#xD;    return fn[&apos;*&apos;](&#xD;        coefficient,&#xD;        fn.expt(&apos;10&apos;, exponent)&#xD;    );&#xD;}&#xD;&#xD;function sqrt (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    if (!fn[&apos;exact?&apos;](n) || !fn[&apos;rational?&apos;](n) || fn[&apos;&lt;&apos;](n,&apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    var rootNumerator = fn[&apos;exact-integer-sqrt&apos;](fn.numerator(n));&#xD;    if (!fn[&apos;=&apos;](rootNumerator[1], &apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    var rootDenominator = fn[&apos;exact-integer-sqrt&apos;](fn.denominator(n));&#xD;    if (!fn[&apos;=&apos;](rootDenominator[1], &apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    return fn[&apos;/&apos;](rootNumerator[0], rootDenominator[0]);&#xD;}&#xD;&#xD;function isDone () {&#xD;    return done;&#xD;}&#xD;&#xD;if (window.bigNumbers) {&#xD;    loadBlocks();&#xD;} else {&#xD;    initialize(loadBlocks);&#xD;}&#xD;&#xD;return isDone;</l></block><list><block var="bool"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block var="isDone"/><list></list></block></block></script></block-definition><block-definition s="hue cycle" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>360</l><script><custom-block s="make every %s effect in Snap! %n"><l>hue</l><block var="i"/></custom-block></script></block></script></block-definition><block-definition s="attach script %&apos;script&apos; to mouse" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>block</l></list><l>if (!(block == block.expression)){&#xD;block = block.expression.fullCopy();&#xD;} else {&#xD;block = block.fullCopy();&#xD;}&#xD;var situation = block.situation() || {origin: world.children[0].currentSprite.scripts};&#xD;situation.action = "extract";&#xD;block.pickUp(situation.origin.world());&#xD;block.parent.grabOrigin = situation;</l></block><list><block var="script"/></list></block></script></block-definition><block-definition s="add %&apos;script&apos; to scripts" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>script</l></list><l>function emptyRing(data) {&#xD;if (!(data instanceof Context)){&#xD;throw new Error("Not a ring");&#xD;}&#xD;return data.expression instanceof Array;&#xD;}&#xD;if (emptyRing(script)){&#xD;this.scripts.children.push(script.expression[0]);&#xD;} else {&#xD;this.scripts.children.push(script.expression);&#xD;}</l></block><list><block var="script"/></list></block></script></block-definition><block-definition s="delete last updated script" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>this.scripts.children.pop();</l></block><list></list></block></script></block-definition><block-definition s="actual block/script %&apos;block&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>block</l></list><l>return block.expression</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="%&apos;child&apos; put before %&apos;script&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Puts the blocks in the first script at the beginning of the blocks in the second script.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>child</l><l>script</l></list><l>//if empty&#xD;if (!(script.expression instanceof BlockMorph)) return child;&#xD;if (!(child.expression instanceof BlockMorph)) return script;&#xD;&#xD;//combine inputs&#xD;for (let v of script.inputs) {&#xD; if (child.inputs.indexOf(v) &lt; 0) {&#xD;  child.inputs.push(v);&#xD; }&#xD;}&#xD;&#xD;child.expression.add(script.expression);&#xD;child.expression.fixLayout();&#xD;return child;</l></block><list><block var="child"/><block var="script"/></list></block></block></script></block-definition><block-definition s="%&apos;start&apos; to %&apos;end&apos; from %&apos;script&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Returns the blocks from the first number from the beginning to the second number.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%cmdRing"></input></inputs><script><block s="doIfElse"><block s="evaluate"><block s="reportJSFunction"><list><l>obj</l></list><l>return !(obj.expression instanceof BlockMorph)</l></block><list><block var="script"/></list></block><script><block s="doReport"><block s="reifyScript"><script></script><list></list></block></block></script><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="end"/><block var="start"/></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>scr</l></list><l>var ctx = new Context();&#xD;ctx.inputs = scr.inputs;&#xD;return ctx;</l></block><list><block var="script"/></list></block></block></script><list></list></block></script></block><block s="doDeclareVariables"><list><l>stack</l></list></block><block s="doSetVar"><l>stack</l><custom-block s="blocks after %n of %cmdRing"><block s="reportDifference"><block var="start"/><l>1</l></block><block var="script"/></custom-block></block><block s="doRun"><block s="reportJSFunction"><list><l>start</l><l>scr</l></list><l>function f(n, s) {&#xD; if (n &lt;= 0) {&#xD;  s.destroy();&#xD;  return;&#xD; };&#xD; var nextBlock = s.children[s.children.length - 1];&#xD; if (!(nextBlock instanceof BlockMorph)) return;&#xD; return f(n - 1, nextBlock);&#xD;}&#xD;&#xD;return f(start, scr.expression);</l></block><list><block s="reportDifference"><block s="reportVariadicSum"><list><block var="end"/><l>1</l></list></block><block var="start"/></block><block var="stack"/></list></block><block s="doReport"><block var="stack"/></block></script></block-definition><block-definition s="blocks after %&apos;n&apos; of %&apos;script&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Gets the blocks after the nth block.</comment><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>start</l><l>scr</l></list><l>if (!(scr.expression instanceof BlockMorph)) return scr;&#xD;&#xD;function f(n, s) {&#xD; if (n &lt;= 0) {&#xD;  var context = new Context(0, s);&#xD;  context.inputs = scr.inputs;&#xD;  return context;&#xD; }&#xD; &#xD; var nextBlock = s.children[s.children.length - 1];&#xD; if (!(nextBlock instanceof BlockMorph)) {&#xD;  var context = new Context();&#xD;  context.inputs = scr.inputs;&#xD;  return context;&#xD; }&#xD;&#xD; return f(n - 1, nextBlock);&#xD;}&#xD;&#xD;return f(start, scr.expression);</l></block><list><block var="n"/><block var="script"/></list></block></block></script></block-definition><block-definition s="length of %&apos;script&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Gets the length of a script. Not to be confused with (# of blocks in script), which gets the total amount of blocks in a script. This one does not search inside the inputs of scripts.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>scr</l></list><l>if (!(scr.expression instanceof BlockMorph)) return 0;&#xD;&#xD;var len = 1;&#xD;&#xD;function f(s) {&#xD; var nextBlock = s.children[s.children.length - 1];&#xD; if (!(nextBlock instanceof BlockMorph)) return;&#xD; len++; &#xD; f(nextBlock);&#xD;}&#xD;&#xD;f(scr.expression);&#xD;return len;</l></block><list><block var="script"/></list></block></block></script></block-definition><block-definition s="new %&apos;morph&apos; %&apos;thing&apos; morph" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="morph"/><l>Ring</l></list></block><l></l><block s="evaluate"><block s="reportJSFunction"><list></list><block s="reportJoinWords"><list><l>return new </l><block var="morph"/><l>Morph</l><l>("</l><block var="thing"/><l>")</l></list></block></block><list></list></block></block></block></script><scripts><script x="12" y="152.46666666666664"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><block s="reportJoinWords"><list><l>return new </l><block var="morph"/><l>Morph</l><l>(null, "</l><block var="thing"/><l>")</l></list></block></block><list></list></block></script></scripts></block-definition><block-definition s="definition of %&apos;block&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return a.expression.definition.body;</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="switch to dev mode" type="command" category="other"><header></header><code></code><translations>es:cambiar a modo des&#xD;</translations><inputs></inputs><script><custom-block s="run function ( %mult%s ) { %code } with %mult%s"><list><l>ide</l></list><l>ide.switchToDevMode();</l><list><custom-block s="ide"></custom-block></list></custom-block></script></block-definition><block-definition s="switch to user mode" type="command" category="other"><header></header><code></code><translations>es:cambiar a modo usuario&#xD;</translations><inputs></inputs><script><custom-block s="run function ( %mult%s ) { %code } with %mult%s"><list><l>ide</l></list><l>ide.switchToUserMode();</l><list><custom-block s="ide"></custom-block></list></custom-block></script></block-definition><block-definition s="in dev mode?" type="predicate" category="other"><header></header><code></code><translations>es:¿en modo des?&#xD;</translations><inputs></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list><l>world</l></list><l>return world.isDevMode;</l><list><custom-block s="world"></custom-block></list></custom-block></block></script></block-definition><block-definition s="inspect %&apos;obj&apos;" type="command" category="other"><header></header><code></code><translations>es:inspeccionar _&#xD;</translations><inputs><input type="%obj"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="in dev mode?"></custom-block></block><script><custom-block s="switch to dev mode"></custom-block></script><list></list></block><custom-block s="run function ( %mult%s ) { %code } with %mult%s"><list><l>obj</l></list><l>this.inspect(obj);</l><list><block var="obj"/></list></custom-block></script></block-definition><block-definition s="world" type="reporter" category="sensing"><header></header><code></code><translations>es:mundo&#xD;</translations><inputs></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list><l>ide</l></list><l>return ide.world();</l><list><custom-block s="ide"></custom-block></list></custom-block></block></script></block-definition><block-definition s="warped?" type="predicate" category="sensing"><header></header><code></code><translations>es:¿atómica?&#xD;</translations><inputs></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list><l>proc</l></list><l>return proc.isAtomic;</l><list><custom-block s="this process"></custom-block></list></custom-block></block></script></block-definition><block-definition s="%&apos;thing&apos; assert type(s) %&apos;typeString&apos;" type="command" category="operators"><comment x="0" y="0" w="306" collapsed="false">make sure &quot;thing&quot; is a particular type or any of a number of types&#xD;and raise an error if not&#xD;use responsibly wrt performance implications</comment><header></header><code></code><translations>es:_ aseverar tipo(s) _&#xD;</translations><inputs><input type="%s"></input><input type="%mult%txt"></input></inputs><script><custom-block s="run function ( %mult%s ) { %code } with %mult%s"><list><l>proc</l><l>thing</l><l>typeString</l></list><l>proc.assertType(thing, typeString.asArray());</l><list><custom-block s="this process"></custom-block><block var="thing"/><block var="typeString"/></list></custom-block></script></block-definition><block-definition s="%&apos;property&apos; of %&apos;object&apos;" type="reporter" category="operators"><header></header><code></code><translations>es:_ de _&#xD;</translations><inputs><input type="%s"></input><input type="%obj"></input></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list><l>property</l><l>object</l></list><l>function see(x, c) {alert(x + "\n" + c); return x;}&#xD;return object[property];</l><list><block var="property"/><block var="object"/></list></custom-block></block></script></block-definition><block-definition s="SpriteMorph.prototype" type="reporter" category="sensing"><header></header><code></code><translations>es:SpriteMorph.prototipo&#xD;</translations><inputs></inputs><script><block s="doReport"><custom-block s="call function ( %mult%s ) { %code } with %mult%s"><list></list><l>return SpriteMorph.prototype;</l><list></list></custom-block></block></script></block-definition><block-definition s="arithmetic operations to get %&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="reportNewList"><list><custom-block s="$flash zip %mult%l"><list><block s="reportNumbers"><l>0</l><block var="num"/></block><block s="reportNumbers"><block var="num"/><l>0</l></block></list></custom-block><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportNewList"><list><l></l><block s="reportQuotient"><block var="num"/><l></l></block></list></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="num"/></block></block></list></block></block></script></block-definition><block-definition s="set pen down to %&apos;Value&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block var="Value"/><script><block s="down"></block></script><script><block s="up"></block></script></block></script></block-definition><block-definition s="set pen color to %&apos;Color&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>V</l></list><l>if (!(V instanceof ColorSlotMorph) &amp;&amp; !(V instanceof Color))&#xD;{&#xD;    throw (new Error ("Can not set the pen color to a non color."));&#xD;}&#xD;&#xD;this.setColor (new Color (V.r, V.g, V.b, V.a));&#xD;this.changed ();</l></block><list><block var="Color"/></list></block></script></block-definition><block-definition s="color %&apos;C1&apos; is touching %&apos;C2&apos; ?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block s="reportJSFunction"><list><l>R</l><l>C1</l><l>C2</l></list><l>R.expression.children[1] = new ColorSlotMorph (C1.color);&#xD;R.expression.children[4] = new ColorSlotMorph (C2.color);&#xD;R.expression.fixLayout();&#xD;return (R);</l></block><list><block s="reifyPredicate"><autolambda><block s="reportColorIsTouchingColor"><color>145,26,68,1</color><color>145,26,68,1</color></block></autolambda><list></list></block><block var="C1"/><block var="C2"/></list></block><list></list></block></block></script></block-definition><block-definition s="costume dropdown %&apos;costume&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doReport"><block var="costume"/></block></script></block-definition><block-definition s="save continuation in %&apos;saved continuations&apos;" type="command" category="control"><variables><list struct="atomic" id="138489">tasks 2</list></variables><header></header><code></code><translations></translations><inputs><input type="%upvar"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doIfElse"><block s="reportIsA"><block var="tasks 2"/><l><option>list</option></l></block><script></script><script><block s="doSetVar"><l>tasks 2</l><block s="reportNewList"><list></list></block></block></script></block><block s="doAddToList"><block var="continuation"/><block var="tasks 2"/></block><block s="doSetVar"><l>tasks</l><block s="reportMonadic"><l><option>id</option></l><block var="tasks 2"/></block></block></script><list><l>continuation</l></list></block></block></script></block-definition><block-definition s="all primitives" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    array = this.categories.map(&#xD;(cat) =&gt; (this.blockTemplates(cat)))&#xD;.map(a =&gt; a.filter(e =&gt; e.constructor.name.includes(&#xD;"BlockMorph")).map(f =&gt; new Context(null, f)));&#xD;array.pop(); array.pop();&#xD;var evens = array.filter((x, y) =&gt; y % 2 == 0),&#xD;    odds = array.filter((x, y) =&gt; y % 2 != 0);&#xD;return new List(evens.concat(odds).map(e =&gt; new List(e)))</l></block><list></list></block></block></script></block-definition><block-definition s="my local blocks" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var gbs = this.customBlocks,&#xD;    temp;&#xD;return new List(gbs.map(e =&gt; {&#xD;if (e.type == &apos;command&apos;){&#xD;temp = new CustomCommandBlockMorph(e);&#xD;} else {&#xD;temp = new CustomReporterBlockMorph(e, (e.type == &apos;predicate&apos;));&#xD;}&#xD;return new Context(null, temp);&#xD;}))</l></block><list></list></block></block></script></block-definition><block-definition s="all global custom blocks" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    gbs = stage.globalBlocks,&#xD;    temp;&#xD;return new List(gbs.map(e =&gt; {&#xD;if (e.type == &apos;command&apos;){&#xD;temp = new CustomCommandBlockMorph(e);&#xD;} else {&#xD;temp = new CustomReporterBlockMorph(e, (e.type == &apos;predicate&apos;));&#xD;}&#xD;return new Context(null, temp);&#xD;}))</l></block><list></list></block></block></script></block-definition><block-definition s="the %&apos;cat&apos; category $nl only primitives $nl with rings" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;control&#xD;sensing&#xD;operators&#xD;variables</options></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return new Context(null, a)</l></block><list><l></l></list></block></autolambda><list></list></block><custom-block s="the %s category %br only primitives"><block var="cat"/></custom-block></block></block></script></block-definition><block-definition s="stamp with %&apos;eff&apos; effect %&apos;num&apos;" type="command" category="pen"><comment x="0" y="0" w="204" collapsed="false">Stamps with a set graphics effect</comment><header></header><code></code><translations>el:σφραγίδα με το εφέ _ να είναι _&#xD;de:stemple mit _ -Effect auf _&#xD;</translations><inputs><input type="%s" readonly="true">ghost<options>color&#xD;saturation&#xD;brightness&#xD;ghost&#xD;fisheye&#xD;whirl&#xD;pixelate&#xD;mosaic&#xD;negative&#xD;duplicate&#xD;comic&#xD;confetti</options></input><input type="%n">50</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="getEffect"><block var="eff"/></block></block><block s="setEffect"><block var="eff"/><block var="num"/></block><block s="doStamp"></block><block s="setEffect"><block var="eff"/><block var="a"/></block></script></block></script></block-definition><block-definition s="group %&apos;data&apos; using: %&apos;function&apos; checking: %&apos;condition&apos;" type="reporter" category="lists"><comment x="0" y="0" w="148" collapsed="false">Combines the items of a list using a function (see regular COMBINE), but only does so if the condition is met for both current items.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%repRing"></input><input type="%predRing"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportListIsEmpty"><block var="data"/></block><block s="reportListIsEmpty"><block s="reportCDR"><block var="data"/></block></block></list></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doIf"><block s="evaluate"><block var="condition"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doIf"><block s="evaluate"><block var="condition"/><list><block s="reportListItem"><l>2</l><block var="data"/></block></list></block><script><block s="doReport"><custom-block s="group %l using: %repRing checking: %predRing"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportListItem"><l>2</l><block var="data"/></block></list></block><custom-block s="group %l using: %repRing checking: %predRing"><block s="reportCDR"><block s="reportCDR"><block var="data"/></block></block><block var="function"/><block var="condition"/></custom-block></block><block var="function"/><block var="condition"/></custom-block></block></script><list></list></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="group %l using: %repRing checking: %predRing"><block s="reportCDR"><block var="data"/></block><block var="function"/><block var="condition"/></custom-block></block></block></script></block-definition><block-definition s="zip %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="data"/></block><custom-block s="zip %mult%l"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="sort %&apos;data&apos; ordering with: %&apos;function&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data,fn);</l></block><list><block var="data"/><block var="function"/></list></block></block></script></block-definition><block-definition s="rank of %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="146" collapsed="false">Gets the dimensions (depth) of a list without APL blocks.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="data"/></block></block><script><block s="doReport"><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportNot"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicIsIdentical"><list><l></l><block var="data"/></list></block></autolambda><list></list></block><block var="data"/></block></block></block><script><block s="doReport"><block s="reportQuotient"><l>1</l><l>0</l><comment w="90" collapsed="false">infinity, for circular lists</comment></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicSum"><list><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="rank of %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicMax"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>1</l></list></block></block></script></block-definition><block-definition s="clone?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportGet"><l><option>parent</option></l></block><l></l></list></block></block></block></script></block-definition><block-definition s="snap! confirm %&apos;body&apos; titled %&apos;title&apos;" type="predicate" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Asks the user a yes/no question, then reports true or false based on whether they clicked yes.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Are you sure?</input><input type="%s">?</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list><l>body</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    result = this.buttons.children[0].userState == &apos;highlight&apos;;&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.askYesNo(title, body, this.world());&#xD;return new List([() =&gt; (isDone), () =&gt; (result)]);</l></block><list><block var="body"/><block var="title"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="Snap! prompt %&apos;title&apos; default %&apos;default&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="90" collapsed="false">Waits for user input, then reports the thing they typed. If you press cancel, however, it reports false instead.</comment><header></header><code></code><translations></translations><inputs><input type="%s">What&apos;s your name?</input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="evaluate"><block s="reportJSFunction"><list><l>origin</l><l>title</l></list><l>var dialog = new DialogBoxMorph(),&#xD;    isDone = false,&#xD;    result = false;&#xD;dialog.destroy = function () {&#xD;    isDone = true;&#xD;    result = this.buttons.children[1].userState&#xD;    == &apos;highlight&apos; ? false:this.getInput();&#xD;    var world = this.world();&#xD;    world.keyboardFocus = null;&#xD;    world.hand.destroyTemporaries();&#xD;    DialogBoxMorph.uber.destroy.call(this);&#xD;}&#xD;dialog.prompt(title, origin, this.world());&#xD;return new List([() =&gt; (isDone), () =&gt; (result)]);</l></block><list><block var="default"/><block var="title"/></list></block></block><block s="doWaitUntil"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="a"/></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportListItem"><l>2</l><block var="a"/></block><list></list></block></block></script></block-definition><block-definition s="reduce list %&apos;list&apos; using %&apos;repo&apos;" type="reporter" category="lists"><comment x="0" y="0" w="90" collapsed="false">Similar to COMBINE, but with a third input that is the definite second value.</comment><header></header><code></code><translations>el:μείωση λίστας _ χρησιμοποιόντας _&#xD;de:liste reduzieren _ mit _&#xD;</translations><inputs><input type="%l">5 10 4</input><input type="%repRing"></input></inputs><script><block s="doIfElse"><block s="reportListIsEmpty"><block s="reportCDR"><block var="list"/></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="list"/></block></block></script><script><block s="doReport"><block s="evaluate"><block var="repo"/><list><block s="reportListItem"><l>1</l><block var="list"/></block><custom-block s="reduce list %l using %repRing"><block s="reportCDR"><block var="list"/></block><block var="repo"/></custom-block><block s="reportListItem"><l>1</l><block s="reportCDR"><block var="list"/></block></block></list></block></block></script></block></script></block-definition><block-definition s="snap! user stats" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportTextSplit"><block s="reportURL"><l>snap.berkeley.edu/api/v1/users/c</l></block><l><option>json</option></l></block></block></script></block-definition><block-definition s="% of %&apos;percentage&apos; in %&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="reportVariadicProduct"><list><block s="reportQuotient"><block var="percentage"/><block var="num"/></block><l>100</l></list></block></block></script></block-definition><block-definition s="split %&apos;text&apos; by sentence" type="reporter" category="operators"><header></header><code></code><translations>el:χώρισε το _ ως προς την φράση&#xD;de:trenne _ nach Satz&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="split %s by sentence"><l></l></custom-block></autolambda><list></list></block><block var="text"/></block></block></script><list></list></block><block s="doWarp"><script><block s="doDeclareVariables"><list><l>result</l><l>b</l><l>d</l></list></block><block s="doSetVar"><l>result</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>b</l><l></l></block><block s="doSetVar"><l>d</l><l></l></block><block s="doForEach"><l>item</l><block s="reportTextSplit"><block var="text"/><l><option>word</option></l></block><script><block s="doSetVar"><l>b</l><block s="reportJoinWords"><list><block var="b"/><l> </l><block var="item"/></list></block></block><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>.</l><l>!</l><l>?</l></list></block><block s="reportLetter"><l><option>last</option></l><block var="item"/></block></block><script><block s="doAddToList"><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><block var="b"/><l><option>letter</option></l></block></block></block><block var="result"/></block><block s="doSetVar"><l>b</l><block var="d"/></block></script><list></list></block></script></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="costume %&apos;costume&apos; $arrowRight color" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>function</l></list></block><block s="doSetVar"><l>function</l><block s="reportListItem"><l><option>random</option></l><block s="reportIfElse"><block s="reportIsA"><block var="costume"/><l><option>list</option></l></block><block var="costume"/><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="costume"/></block></block></block></block><block s="doReport"><custom-block s="color with RGBA %l"><block s="reportConcatenatedLists"><list><custom-block s="all but last of %l"><block var="function"/></custom-block><block s="reportVariadicProduct"><list><block s="reportQuotient"><block s="reportListItem"><l><option>last</option></l><block var="costume"/></block><l>255</l></block><l>100</l></list></block></list></block></custom-block></block></script></block-definition><block-definition s="mix colors %&apos;colors&apos; evenly" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input></inputs><script><block s="doReport"><custom-block s="color with RGBA %l"><custom-block s="average %mult%n"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%s of color %n"><l>RGBA</l><l></l></custom-block></autolambda><list></list></block><block var="colors"/></block></custom-block></custom-block></block></script></block-definition><block-definition s="$flash deep map %&apos;fun&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><custom-block s="deep map %repRing over %l"><block var="fun"/><l/></custom-block><block s="evaluate"><block var="fun"/><list><l></l></list></block></block></autolambda><list></list></block><block var="data"/></block></block></script></block-definition><block-definition s="analog time" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>var date = new Date();&#xD;return String(date.getHours() &gt; 12?&#xD;date.getHours() - 12:date.getHours())&#xD;+ &apos;:&apos; + ((date.getMinutes().toString()&#xD;.length == 1)? &apos;0&apos; + date.getMinutes()&#xD;: date.getMinutes()) + &apos; &apos; +&#xD;String(date.getHours() &gt; 12? &apos;PM&apos;:&apos;AM&apos;)</l></block><list></list></block></block></script></block-definition><block-definition s="set cookie %&apos;key&apos; %&apos;value&apos; $nl $- expires in %&apos;exp&apos; days" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">score</input><input type="%s"></input><input type="%n">365</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>cn</l><l>cv</l><l>ex</l><l>proc</l></list><l>var type = proc.reportTypeOf(cv);&#xD;if (!([&apos;text&apos;,&apos;number&apos;].includes(type)))&#xD;throw new Error(&apos;expecting text/number but getting &apos; + type);&#xD;var d = new Date();&#xD;d.setTime(d.getTime() + (ex*24*60*60*1000));&#xD;var expires = "expires="+ d.toUTCString();&#xD;document.cookie = cn + "=" + cv + ";" + expires + ";path=/";</l></block><list><block var="key"/><block var="value"/><block var="exp"/></list></block></script></block-definition><block-definition s="get cookie %&apos;name&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">score</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>cn</l><l>a</l></list><l>  var name = cn + "=";&#xD;  var decodedCookie = decodeURIComponent(document.cookie);&#xD;  var ca = decodedCookie.split(&apos;;&apos;);&#xD;  for(var i = 0; i &lt;ca.length; i++) {&#xD;    var c = ca[i];&#xD;    while (c.charAt(0) == &apos; &apos;) {&#xD;      c = c.substring(1);&#xD;    }&#xD;    if (c.indexOf(name) == 0) {&#xD;      return c.substring(name.length, c.length);&#xD;    }&#xD;  }&#xD;   throw new Error(a);</l></block><list><block var="name"/><block s="reportJoinWords"><list><l>the cookie "</l><block var="name"/><l>" does not exist</l></list></block></list></block></block></script></block-definition><block-definition s="cookie %&apos;name&apos; exists?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">score</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>cn</l></list><l>    return document.cookie.split(&apos;;&apos;).some(c =&gt; {&#xD;        return c.trim().startsWith(cn + &apos;=&apos;)});</l></block><list><block var="name"/></list></block></block></script></block-definition><block-definition s="delete cookie %&apos;name&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">score</input></inputs><script><block s="doIfElse"><custom-block s="cookie %s exists?"><block var="name"/></custom-block><script><block s="doRun"><block s="reportJSFunction"><list><l>cn</l></list><l>document.cookie = cn +&apos;=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;&apos;;</l></block><list><block var="name"/></list></block></script><script><custom-block s="error %txt"><block s="reportJoinWords"><list><l>the cookie </l><block var="name"/><l> does not exist</l></list></block></custom-block></script></block></script></block-definition><block-definition s="object keys of %&apos;block&apos; as list" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return new List(Object.keys(a.expression));</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="keys pressed" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>if (!world.repairedKeys){&#xD;StageMorph.prototype.removePressedKey = function(key) {&#xD;   if(key == "Control"){&#xD;     delete this.keysPressed["control"];&#xD;     key = "ctrl";&#xD;   }&#xD;    key = key.toLowerCase();&#xD;     Object.keys(this.keysPressed).forEach(this_key =&gt; {&#xD;        if ((this_key == key) || this_key.split(" ").includes(key)){&#xD;          delete this.keysPressed[this_key.toLowerCase()];&#xD;   }&#xD;  })&#xD;};&#xD;world.repairedKeys = true;&#xD;}&#xD;return new List(Object.keys(world.children[0].stage.keysPressed));</l></block><list></list></block></block></script></block-definition><block-definition s="key" type="reporter" category="motion"><comment x="0" y="0" w="90" collapsed="false">move with arrow  keys/WASD</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>up arrow</option></l></block><block s="reportKeyPressed"><l><option>w</option></l></block></list></block><block s="reifyScript"><script><block s="changeYPosition"><block var="speed"/></block></script><list><l>speed</l></list></block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>down arrow</option></l></block><block s="reportKeyPressed"><l><option>s</option></l></block></list></block><block s="reifyScript"><script><block s="changeYPosition"><block s="reportDifference"><l>0</l><block var="speed"/></block></block></script><list><l>speed</l></list></block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>right arrow</option></l></block><block s="reportKeyPressed"><l><option>d</option></l></block></list></block><block s="reifyScript"><script><block s="changeXPosition"><block var="speed"/></block></script><list><l>speed</l></list></block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>left arrow</option></l></block><block s="reportKeyPressed"><l><option>a</option></l></block></list></block><block s="reifyScript"><script><block s="changeXPosition"><block s="reportDifference"><l>0</l><block var="speed"/></block></block></script><list><l>speed</l></list></block><block s="reifyScript"><script></script><list></list></block></block></block></block></block></block></script></block-definition><block-definition s="reversed key" type="reporter" category="motion"><comment x="0" y="0" w="90" collapsed="false">move backward with arrow  keys/WASD</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>down arrow</option></l></block><block s="reportKeyPressed"><l><option>s</option></l></block></list></block><block s="reifyScript"><script><block s="changeYPosition"><block var="speed"/></block></script><list><l>speed</l></list></block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>up arrow</option></l></block><block s="reportKeyPressed"><l><option>w</option></l></block></list></block><block s="reifyScript"><script><block s="changeYPosition"><block s="reportDifference"><l>0</l><block var="speed"/></block></block></script><list><l>speed</l></list></block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>left arrow</option></l></block><block s="reportKeyPressed"><l><option>a</option></l></block></list></block><block s="reifyScript"><script><block s="changeXPosition"><block var="speed"/></block></script><list><l>speed</l></list></block><block s="reportIfElse"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>right arrow</option></l></block><block s="reportKeyPressed"><l><option>d</option></l></block></list></block><block s="reifyScript"><script><block s="changeXPosition"><block s="reportDifference"><l>0</l><block var="speed"/></block></block></script><list><l>speed</l></list></block><block s="reifyScript"><script></script><list></list></block></block></block></block></block></block></script></block-definition><block-definition s="bounce" type="reporter" category="sound"><variables><list struct="atomic" id="139506">samples</list></variables><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="samples"/><l><option>list</option></l></block></block><script><block s="doSetVar"><l>samples</l><block s="reportNewList"><list></list></block></block><block s="doWarp"><script><block s="doFor"><l>k</l><l>100</l><l>0</l><script><block s="doFor"><l>i</l><block s="reportMonadic"><l><option>neg</option></l><block var="k"/></block><block var="k"/><script><block s="doAddToList"><block s="reportQuotient"><block var="i"/><l>100</l></block><block var="samples"/></block></script></block></script></block></script></block></script><list></list></block><block s="doReport"><block s="reportNewSoundFromSamples"><block var="samples"/><block s="reportGetSoundAttribute"><l><option>sample rate</option></l><block var="samples"/></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></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></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></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script><list></list></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></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></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></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></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="sum %&apos;nums&apos;" type="reporter" category="operators"><comment x="0" y="0" w="202" collapsed="false">Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the result of adding them all, so&#xD;(SUM (4) (100) (8))&#xD;reports 112.</comment><header></header><code></code><translations>pt:a soma de _&#xD;</translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="nums"/></block><script><block s="doReport"><l>0</l></block></script><list></list></block><block s="doReport"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="nums"/></block><custom-block s="sum %mult%n"><block s="reportCDR"><block var="nums"/></block></custom-block></list></block></block></script></block-definition><block-definition s="product %&apos;nums&apos;" type="reporter" category="operators"><comment x="0" y="0" w="205" collapsed="false">Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the result of multiplying them all, so&#xD;(PRODUCT (4) (100) (8))&#xD;reports 3200.</comment><header></header><code></code><translations>pt:o produto de _&#xD;</translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="nums"/></block><script><block s="doReport"><l>1</l></block></script><list></list></block><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><block var="nums"/></block><custom-block s="product %mult%n"><block s="reportCDR"><block var="nums"/></block></custom-block></list></block></block></script></block-definition><block-definition s="minimum %&apos;nums&apos;" type="reporter" category="operators"><comment x="0" y="0" w="205" collapsed="false">Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the smallest of them, so&#xD;(MINIMUM (4) (100) (8))&#xD;reports 4.</comment><header></header><code></code><translations>pt:o produto de _&#xD;</translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="nums"/></block><script><block s="doReport"><block s="reportQuotient"><l>1</l><l>0</l></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicMin"><list><block s="reportListItem"><l>1</l><block var="nums"/></block><custom-block s="minimum %mult%n"><block s="reportCDR"><block var="nums"/></block></custom-block></list></block></block></script></block-definition><block-definition s="maximum %&apos;nums&apos;" type="reporter" category="operators"><comment x="0" y="0" w="205" collapsed="false">Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the largest of them, so&#xD;(MAXIMUM (4) (100) (8))&#xD;reports 100.</comment><header></header><code></code><translations>pt:o produto de _&#xD;</translations><inputs><input type="%mult%n"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="nums"/></block><script><block s="doReport"><block s="reportQuotient"><l>-1</l><l>0</l></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicMax"><list><block s="reportListItem"><l>1</l><block var="nums"/></block><custom-block s="maximum %mult%n"><block s="reportCDR"><block var="nums"/></block></custom-block></list></block></block></script></block-definition><block-definition s="%&apos;thing&apos; as string" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return a.toString();</l></block><list><block var="thing"/></list></block></block></script></block-definition><block-definition s="factors 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="reportIfElse"><block s="reportIsA"><block var="num"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportNewList"><list><l></l></list></block></list></block><custom-block s="factors of %n"><l></l></custom-block></list></block></autolambda><list></list></block><block var="num"/></block><block s="reportConcatenatedLists"><list><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="num"/><l></l></block><l>0</l></list></block></autolambda><list></list></block><block s="reportNumbers"><block s="reportMonadic"><l><option>sign</option></l><block var="num"/></block><block s="reportQuotient"><block var="num"/><l>2</l></block></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportMonadic"><l><option>abs</option></l><block var="num"/></block><l>1</l></list></block><block s="reportNewList"><list></list></block><block s="reportNewList"><list><block var="num"/></list></block></block></list></block></block></block></script></block-definition><block-definition s="%&apos;value&apos; changed?" type="predicate" category="operators"><variables><list struct="atomic" id="139972">old,count</list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicNotEquals"><list><block var="old"/><block var="value"/></list></block><block s="reportVariadicGreaterThan"><list><block var="count"/><l>0</l></list></block></list></block><script><block s="doSetVar"><l>old</l><block var="value"/></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doSetVar"><l>count</l><l>1</l></block><block s="doSetVar"><l>old</l><block var="value"/></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="shape with %&apos;sides&apos; sides, color %&apos;color&apos; , size %&apos;size&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>position</l></list></block><block s="doSetVar"><l>position</l><block s="reportNewList"><list><block s="getPenDown"></block><block s="xPosition"></block><block s="yPosition"></block><custom-block s="pen color"></custom-block><block s="direction"></block></list></block></block><block s="down"></block><block s="doWarp"><script><custom-block s="set pen color to %n"><block var="color"/></custom-block><block s="doRepeat"><block var="sides"/><script><block s="forward"><block var="size"/></block><block s="turn"><block s="reportQuotient"><l>360</l><block var="sides"/></block></block></script></block></script></block><block s="up"></block><block s="doGotoObject"><custom-block s="all but last of %l"><custom-block s="all but last of %l"><block s="reportCDR"><block var="position"/></block></custom-block></custom-block></block><block s="setHeading"><l>-90</l></block><block s="forward"><block s="reportQuotient"><block var="size"/><l>2</l></block></block><block s="setHeading"><l>180</l></block><block s="forward"><block s="reportQuotient"><block var="size"/><l>2</l></block></block><block s="floodFill"></block><block s="doIf"><block s="reportListItem"><l>1</l><block var="position"/></block><script><block s="down"></block></script><list></list></block><custom-block s="set pen color to %n"><block s="reportListItem"><l>4</l><block var="position"/></block></custom-block><block s="setHeading"><block s="reportListItem"><l><option>last</option></l><block var="position"/></block></block><block s="doGotoObject"><custom-block s="all but last of %l"><custom-block s="all but last of %l"><block s="reportCDR"><block var="position"/></block></custom-block></custom-block></block></script></block-definition><block-definition s="simplify %&apos;a&apos; : %&apos;b&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>GCD</l></list></block><block s="doSetVar"><l>GCD</l><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="2"/><l>0</l></list></block><block var="1"/><block s="evaluate"><block var="GCD"/><list><block var="2"/><block s="reportModulus"><block var="1"/><block var="2"/></block></list></block></block></autolambda><list><l>1</l><l>2</l></list></block></block><block s="doSetVar"><l>GCD</l><block s="evaluate"><block var="GCD"/><list><block var="a"/><block var="b"/></list></block></block><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block var="a"/><block var="GCD"/></block><block s="reportQuotient"><block var="b"/><block var="GCD"/></block></list></block></block></script></block-definition><block-definition s="set arrowhead sizes to %&apos;percent&apos; %" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>exp</l></list><l>MultiArgMorph.prototype.mouseClickLeft = function (pos) {&#xD;    var ide = this.parentThatIsA(IDE_Morph);&#xD;    if (!this.parentThatIsA(ScriptsMorph)) {&#xD;        this.escalateEvent(&apos;mouseClickLeft&apos;, pos);&#xD;        return;&#xD;    }&#xD;    // if the &lt;shift&gt; key is pressed, repeat action 3 times&#xD;    var target = this.selectForEdit(),&#xD;        arrows = target.arrows(),&#xD;        leftArrow = arrows.children[0],&#xD;        rightArrow = arrows.children[1],&#xD;        repetition = target.world().currentKey === 16 ? 3 : 1,&#xD;        i;&#xD;/*** Handling hitboxes ***/&#xD;    if (pos.x &gt;= rightArrow.bounds.origin.x) {&#xD;        for (i = 0; i &lt; repetition; i += 1) {&#xD;            if (rightArrow.isVisible) {&#xD;                target.addInput();&#xD;            }&#xD;        }&#xD;        if (ide) {&#xD;            ide.recordUnsavedChanges();&#xD;        }&#xD;    } else { &#xD;         if( pos.x &gt;= leftArrow.bounds.origin.x){&#xD;            for (i = 0; i &lt; repetition; i += 1) {&#xD;               if (leftArrow.isVisible) {&#xD;                  target.removeInput();&#xD;               }&#xD;            }&#xD;            if (ide) {&#xD;               ide.recordUnsavedChanges();&#xD;            }&#xD;		       } else{&#xD;            target.escalateEvent(&apos;mouseClickLeft&apos;, pos);&#xD;         }&#xD;   };&#xD;/*** Expanding arrows by exp ***/&#xD;   rightArrow.padding=0;&#xD;   leftArrow.padding=0;&#xD;   rightArrow.setSize( this.fontSize*exp);&#xD;   leftArrow.setSize( this.fontSize*exp);&#xD;   rightArrow.parent.padding=0;&#xD;   this.fixArrowsLayout();&#xD;   this.fixLayout();&#xD;};</l></block><list><block s="reportQuotient"><block var="percent"/><l>100</l></block></list></block></script></block-definition><block-definition s="embed %&apos;website&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><custom-block s="set %s to %s"><l>location</l><block s="reportJoinWords"><list><block var="website"/><l>/embed</l></list></block></custom-block></script></block-definition><block-definition s="assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="a-list"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></list></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></script><list></list></block><block s="doReport"><custom-block s="assoc %s %l"><block var="key"/><block s="reportCDR"><block var="a-list"/></block></custom-block></block></script></block-definition><block-definition s="Set Instrument To %&apos;instrument name&apos;" type="command" category="sound"><comment x="0" y="0" w="90" collapsed="false">Sets the global instrument used for playing notes to the selected instrument.</comment><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>acoustic guitar&#xD;electric guitar&#xD;piano&#xD;organ&#xD;banjo&#xD;electric bass (finger)&#xD;ukulele&#xD;cabasa&#xD;snare&#xD;bass drum&#xD;closed hi-hat&#xD;open hi-hat&#xD;mid tom&#xD;high tom&#xD;crash cymbal</options></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>setInstrument(</l><block var="instrument name"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Set Volume To %&apos;Percent&apos; %" type="command" category="sound"><comment x="0" y="0" w="403" collapsed="false">Sets the global volume percentage used when playing notes to the provided value. </comment><header></header><code></code><translations></translations><inputs><input type="%n">50</input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>setVolumePercent(</l><block var="Percent"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Set Volume of Instrument %&apos;Instrument&apos; to %&apos;VolumePercent&apos; %" type="command" category="sound"><comment x="0" y="0" w="243" collapsed="false">Sets the default volume percentage of the selected instrument to the specified number.</comment><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true"><options>acoustic guitar&#xD;electric guitar&#xD;piano&#xD;organ&#xD;banjo&#xD;electric bass (finger)&#xD;ukulele&#xD;cabasa&#xD;snare&#xD;bass drum&#xD;closed hi-hat&#xD;open hi-hat&#xD;mid tom&#xD;high tom&#xD;crash cymbal</options></input><input type="%n">50</input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>setVolumeOfInstrument(</l><block var="Instrument"/><l>,</l><block var="VolumePercent"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="%&apos;note duration&apos; Note Length" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>2</l><custom-block s="assoc %s %l"><block var="note duration"/><custom-block s="Timing"></custom-block></custom-block></block><block s="reportQuotient"><l>60</l><block s="getTempo"></block></block></list></block></block></script></block-definition><block-definition s="Play %&apos;Note&apos; for %&apos;Note Length&apos; Note Length" type="command" category="sound"><comment x="0" y="0" w="714" collapsed="false">Starts to play the selected note for the specified number of seconds. A full list of acceptable notes can be found by using the dropdown. This block does not wait for the selected note to finish playing.</comment><header></header><code></code><translations></translations><inputs><input type="%s"><options>C0&#xD;C#0&#xD;D0&#xD;D#0&#xD;E0&#xD;F0&#xD;F#0&#xD;G0&#xD;G#0&#xD;A0&#xD;A#0&#xD;B0&#xD;C1&#xD;C#1&#xD;D1&#xD;D#1&#xD;E1&#xD;F1&#xD;F#1&#xD;G1&#xD;G#1&#xD;A1&#xD;A#1&#xD;B1&#xD;C2&#xD;C#2&#xD;D2&#xD;D#2&#xD;E2&#xD;F2&#xD;F#2&#xD;G2&#xD;G#2&#xD;A2&#xD;A#2&#xD;B2&#xD;C3&#xD;C#3&#xD;D3&#xD;D#3&#xD;E3&#xD;F3&#xD;F#3&#xD;G3&#xD;G#3&#xD;A3&#xD;A#3&#xD;B3&#xD;C4&#xD;C#4&#xD;D4&#xD;D#4&#xD;E4&#xD;F4&#xD;F#4&#xD;G4&#xD;G#4&#xD;A4&#xD;A#4&#xD;B4&#xD;C5&#xD;C#5&#xD;D5&#xD;D#5&#xD;E5&#xD;F5&#xD;F#5&#xD;G5&#xD;G#5&#xD;A5&#xD;A#5&#xD;B5&#xD;C6&#xD;C#6&#xD;D6&#xD;D#6&#xD;E6&#xD;F6&#xD;F#6&#xD;G6&#xD;G#6&#xD;A6&#xD;A#6&#xD;B6&#xD;C7&#xD;C#7&#xD;D7&#xD;D#7&#xD;E7&#xD;F7&#xD;F#7&#xD;G7&#xD;G#7&#xD;A7&#xD;A#7&#xD;B7&#xD;C8&#xD;C#8&#xD;D8&#xD;D#8&#xD;E8&#xD;F8&#xD;F#8&#xD;G8&#xD;G#8&#xD;A8&#xD;A#8&#xD;B8&#xD;C9&#xD;C#9&#xD;D9&#xD;D#9&#xD;E9&#xD;F9&#xD;F#9&#xD;G9&#xD;G#9&#xD;A9&#xD;A#9&#xD;B9&#xD;C10&#xD;C#10&#xD;D10&#xD;D#10&#xD;E10&#xD;F10&#xD;F#10&#xD;G10</options></input><input type="%txt" readonly="true"><options>Whole&#xD;Half&#xD;Quarter&#xD;Eighth&#xD;Sixteenth&#xD;Dotted Half&#xD;Dotted Quarter&#xD;Dotted Eighth&#xD;Dotted Sixteenth</options></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>playSound(</l><block var="Note"/><l>,</l><custom-block s="%txt Note Length"><block var="Note Length"/></custom-block><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Look Up %&apos;Key&apos; %&apos;List&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><custom-block s="assoc %s %l"><block var="Key"/><block var="List"/></custom-block></block></block></script></block-definition><block-definition s="Play %&apos;Note&apos; For %&apos;Duration&apos; Note Length and Wait" type="command" category="sound"><comment x="0" y="0" w="638" collapsed="false">Plays the selected note for the specified number of seconds. A full list of acceptable notes can be found by using the dropdown. This block waits for the selected note to finish playing.</comment><header></header><code></code><translations></translations><inputs><input type="%txt"><options>C0&#xD;C#0&#xD;D0&#xD;D#0&#xD;E0&#xD;F0&#xD;F#0&#xD;G0&#xD;G#0&#xD;A0&#xD;A#0&#xD;B0&#xD;C1&#xD;C#1&#xD;D1&#xD;D#1&#xD;E1&#xD;F1&#xD;F#1&#xD;G1&#xD;G#1&#xD;A1&#xD;A#1&#xD;B1&#xD;C2&#xD;C#2&#xD;D2&#xD;D#2&#xD;E2&#xD;F2&#xD;F#2&#xD;G2&#xD;G#2&#xD;A2&#xD;A#2&#xD;B2&#xD;C3&#xD;C#3&#xD;D3&#xD;D#3&#xD;E3&#xD;F3&#xD;F#3&#xD;G3&#xD;G#3&#xD;A3&#xD;A#3&#xD;B3&#xD;C4&#xD;C#4&#xD;D4&#xD;D#4&#xD;E4&#xD;F4&#xD;F#4&#xD;G4&#xD;G#4&#xD;A4&#xD;A#4&#xD;B4&#xD;C5&#xD;C#5&#xD;D5&#xD;D#5&#xD;E5&#xD;F5&#xD;F#5&#xD;G5&#xD;G#5&#xD;A5&#xD;A#5&#xD;B5&#xD;C6&#xD;C#6&#xD;D6&#xD;D#6&#xD;E6&#xD;F6&#xD;F#6&#xD;G6&#xD;G#6&#xD;A6&#xD;A#6&#xD;B6&#xD;C7&#xD;C#7&#xD;D7&#xD;D#7&#xD;E7&#xD;F7&#xD;F#7&#xD;G7&#xD;G#7&#xD;A7&#xD;A#7&#xD;B7&#xD;C8&#xD;C#8&#xD;D8&#xD;D#8&#xD;E8&#xD;F8&#xD;F#8&#xD;G8&#xD;G#8&#xD;A8&#xD;A#8&#xD;B8&#xD;C9&#xD;C#9&#xD;D9&#xD;D#9&#xD;E9&#xD;F9&#xD;F#9&#xD;G9&#xD;G#9&#xD;A9&#xD;A#9&#xD;B9&#xD;C10&#xD;C#10&#xD;D10&#xD;D#10&#xD;E10&#xD;F10&#xD;F#10&#xD;G10</options></input><input type="%txt" readonly="true"><options>Whole&#xD;Dotted Half&#xD;Half&#xD;Dotted Quarter&#xD;Quarter&#xD;Dotted Eighth&#xD;Eighth&#xD;Dotted Sixteenth&#xD;Sixteenth&#xD;Dotted Thirty Second&#xD;Thirty Second</options></input></inputs><script><custom-block s="Play %s for %txt Note Length"><block var="Note"/><block var="Duration"/></custom-block><block s="doWait"><custom-block s="%txt Note Length"><block var="Duration"/></custom-block></block></script></block-definition><block-definition s="Scope %&apos;newValue&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>setScopeVisibility(</l><block var="newValue"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Play Chord %&apos;Chord Name&apos; for %&apos;Note Length&apos; Note Length" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true"><options>C Chord&#xD;F Chord&#xD;G7 Chord&#xD;A Minor Chord</options></input><input type="%txt"><options>Whole&#xD;Half&#xD;Quarter&#xD;Eighth&#xD;Sixteenth&#xD;Dotted Whole&#xD;Dotted Half&#xD;Dotted Quarter&#xD;Dotted Eighth&#xD;Dotted Sixteenth</options></input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportVariadicEquals"><list><l></l><custom-block s="Look Up %s %l"><block var="Chord Name"/><custom-block s="ukulele chords"></custom-block></custom-block></list></block></block><script><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>1</l><custom-block s="Look Up %s %l"><block var="Chord Name"/><custom-block s="ukulele chords"></custom-block></custom-block></block><block var="Note Length"/></custom-block><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>2</l><custom-block s="Look Up %s %l"><block var="Chord Name"/><custom-block s="ukulele chords"></custom-block></custom-block></block><block var="Note Length"/></custom-block><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>3</l><custom-block s="Look Up %s %l"><block var="Chord Name"/><custom-block s="ukulele chords"></custom-block></custom-block></block><block var="Note Length"/></custom-block><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>4</l><custom-block s="Look Up %s %l"><block var="Chord Name"/><custom-block s="ukulele chords"></custom-block></custom-block></block><block var="Note Length"/></custom-block></script><script><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>1</l><block var="Chord Name"/></block><block var="Note Length"/></custom-block><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>2</l><block var="Chord Name"/></block><block var="Note Length"/></custom-block><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>3</l><block var="Chord Name"/></block><block var="Note Length"/></custom-block><custom-block s="Play %s for %txt Note Length"><block s="reportListItem"><l>4</l><block var="Chord Name"/></block><block var="Note Length"/></custom-block></script></block></script></block-definition><block-definition s="Rest for %&apos;Length&apos; Length of Time" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>Whole&#xD;Half&#xD;Quarter&#xD;Eighth&#xD;Sixteenth&#xD;Dotted Half&#xD;Dotted Quarter&#xD;Dotted Eigth&#xD;Dotted Sixteenth</options></input></inputs><script><block s="doWait"><block s="reportVariadicProduct"><list><custom-block s="%txt Note Length"><block var="Length"/></custom-block><block s="reportQuotient"><l>60</l><block s="getTempo"></block></block></list></block></block></script></block-definition><block-definition s="Tone Number %&apos;Number&apos; %&apos;newOn&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>toggleOscillator(</l><block var="Number"/><l>,</l><block var="newOn"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Tone Number %&apos;number&apos; Frequency %&apos;frequency&apos; Amplitude %&apos;amplitude&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>modifyOscillator(</l><block var="number"/><l>,</l><block var="frequency"/><l>,</l><block var="amplitude"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Tone Off" type="command" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>10</l><script><custom-block s="Tone Number %s %b"><block var="i"/><l><bool>false</bool></l></custom-block></script></block></script></block-definition><block-definition s="Freeze %&apos;bool&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>setFreeze(</l><block var="bool"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Timing" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>Whole</l><l>4</l></list></block><block s="reportNewList"><list><l>Half</l><l>2</l></list></block><block s="reportNewList"><list><l>Quarter</l><l>1</l></list></block><block s="reportNewList"><list><l>Eighth</l><l>.5</l></list></block><block s="reportNewList"><list><l>Sixteenth</l><l>.25</l></list></block><block s="reportNewList"><list><l>Thirtysecond</l><l>.125</l></list></block><block s="reportNewList"><list><l>Dotted Whole</l><l>6</l></list></block><block s="reportNewList"><list><l>Dotted Half</l><l>3</l></list></block><block s="reportNewList"><list><l>Dotted Quarter</l><l>1.5</l></list></block><block s="reportNewList"><list><l>Dotted Eighth</l><l>.75</l></list></block><block s="reportNewList"><list><l>Dotted Sixteenth</l><l>.375</l></list></block><block s="reportNewList"><list><l>Dotted Thirtysecond</l><l>.187</l></list></block></list></block></block></script></block-definition><block-definition s="Text Block %&apos;ID&apos; ID %&apos;Title&apos; Title %&apos;Body&apos; Body" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>textGuide(</l><block var="ID"/><l>&#126;**&#126;</l><block var="Title"/><l>&#126;**&#126;</l><block var="Body"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Position Block %&apos;ID&apos; ID %&apos;leftPercent&apos; left % %&apos;topPercent&apos; top %" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>positionGuideFrame(</l><block var="ID"/><l>&#126;**&#126;</l><block var="leftPercent"/><l>&#126;**&#126;</l><block var="topPercent"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Video Block %&apos;ID&apos; ID %&apos;Title&apos; Title %&apos;Link&apos; Link" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>videoGuide(</l><block var="ID"/><l>&#126;**&#126;</l><block var="Title"/><l>&#126;**&#126;</l><block var="Link"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Project URL" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>http://tunescope.org/index.html#project:</l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return window.location.href;</l></block><list></list></block><l>:</l></block></block><l>&amp;editMode</l></list></block></block></script></block-definition><block-definition s="Copy Project URL to Clipboard" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="Copy To Clipboard %txt"><custom-block s="Project URL"></custom-block></custom-block><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportTextAttribute"><l><option>length</option></l><custom-block s="Project URL"></custom-block></block><l>50</l></list></block><script><custom-block s="Text Block %n ID %txt Title %txt Body"><l>1</l><l>TuneScope Project URL</l><l>Note:	A project must be shared before a TuneScope URL can be created. &#xD;&#xD;(Use the “Save As” option under the “File Menu” to access the “Share” option. The shared project will be highlighted in bold on the file menu after this has been done.)&#xD;&#xD;1.	After the project has been shared, click the TuneScope URL block.&#xD;2.	A Project URL variable will appear on the stage.&#xD;3.	Right-click the project URL on the stage.&#xD;4.	Select “Export” from the drop-down menu that appears.&#xD;5.	A text file with the TuneScope Project URL will appear in your download folder.&#xD;</l></custom-block></script><script><custom-block s="Text Block %n ID %txt Title %txt Body"><l>1</l><l>TuneScope Project URL</l><block s="reportJoinWords"><list><l>The following URL has been copied to the clipboard: </l><custom-block s="Project URL"></custom-block></list></block></custom-block></script></block></script></block-definition><block-definition s="Copy To Clipboard %&apos;string&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>copyToClipboard(</l><block var="string"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Plot Point %&apos;X&apos; %&apos;Y&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>plotPointOnScope(</l><block var="X"/><l>&#126;**&#126;</l><block var="Y"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Plot Points %&apos;Points&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doForEach"><l>item</l><block var="Points"/><script><custom-block s="Plot Point %n %n"><block s="reportListItem"><l>1</l><block var="item"/></block><block s="reportListItem"><l>2</l><block var="item"/></block></custom-block></script></block></script></block-definition><block-definition s="inner product helper with %&apos;plus&apos; . %&apos;times&apos; %&apos;a&apos; transposed %&apos;tb&apos;" type="reporter" category="other"><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><list></list></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"><autolambda><custom-block s="generalized dotproduct %l %l with sum %repRing product %repRing"><block s="reportListItem"><l>1</l><block var="a"/></block><l/><block var="plus"/><block var="times"/></custom-block></autolambda><list></list></block><block var="tb"/></block><custom-block s="inner product helper with %repRing . %repRing %l transposed %l"><block var="plus"/><block var="times"/><block s="reportCDR"><block var="a"/></block><block var="tb"/></custom-block></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><custom-block s="inner product helper with %repRing . %repRing %l 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 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="deep insert %&apos;first&apos; %&apos;rest&apos;" type="reporter" category="other"><comment x="0" y="0" w="131.33333333333334" collapsed="false">Recursively deep-inserts&#xD;the items of the first input&#xD;into the items of the second&#xD;input.  If the first input is not&#xD;a list, then it is inserted with&#xD;IN FRONT OF in the second&#xD;unless the second also isn&apos;t&#xD;a list, in which case they are&#xD;combined with LIST.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="first"/><l><option>list</option></l></block></block><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="rest"/><l><option>list</option></l></block></block><script><block s="doReport"><block s="reportNewList"><list><block var="first"/><block var="rest"/></list></block></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block var="first"/><block var="rest"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="first"/></block><l><option>list</option></l></block></block><block s="reportListIsEmpty"><block s="reportCDR"><block var="first"/></block></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="first"/></block><block var="rest"/></block></block></script><list></list></block><block s="doReport"><custom-block s="multimap %repRing %mult%l"><block s="reifyReporter"><autolambda><custom-block s="deep insert %l %l"><l/><l/></custom-block></autolambda><list></list></block><list><block var="first"/><block var="rest"/></list></custom-block></block></script></block-definition><block-definition s="sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="other"><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="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="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><list></list></block></script></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="#1"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="#2"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="#2"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="#1"/></block></script><list></list></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="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doRun"><block var="split"/><list></list></block><block s="doReport"><block s="evaluate"><block var="merge"/><list><custom-block s="sort %l ordering with %predRing"><block var="odd items"/><block var="function"/></custom-block><custom-block s="sort %l ordering with %predRing"><block var="even items"/><block var="function"/></custom-block></list></block></block></script></block-definition><block-definition s="reshape helper %&apos;shape&apos; %&apos;data&apos;" type="reporter" category="other"><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="shape"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportCombine"><block var="shape"/><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>0</l></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>partial</l></list></block><block s="doSetVar"><l>partial</l><block s="reportNewList"><list></list></block></block><block s="doIfElse"><block s="reportListIsEmpty"><block s="reportCDR"><block var="shape"/></block></block><script><block s="doRepeat"><block s="reportListItem"><l>1</l><block var="shape"/></block><script><block s="doAddToList"><block s="reportListItem"><l>1</l><block var="data"/></block><block var="partial"/></block><block s="doSetVar"><l>data</l><block s="reportConcatenatedLists"><list><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block></list></block></block></script></block></script><script><block s="doRepeat"><block s="reportListItem"><l>1</l><block var="shape"/></block><script><block s="doAddToList"><custom-block s="reshape helper %l %l"><block s="reportCDR"><block var="shape"/></block><block var="data"/></custom-block><block var="partial"/></block><block s="doRepeat"><block s="reportModulus"><block s="reportCombine"><block s="reportCDR"><block var="shape"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="data"/></block></block><script><block s="doSetVar"><l>data</l><block s="reportConcatenatedLists"><list><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block></list></block></block></script></block></script></block></script></block><block s="doReport"><block var="partial"/></block></script></block-definition><block-definition s="deep map %&apos;function&apos; %&apos;atom?&apos; %&apos;data&apos;" type="reporter" category="other"><comment x="0" y="0" w="320.6666666666667" collapsed="false">Applies the function to each &quot;atom&quot; of the data.  What&apos;s an atom?&#xD;Something for which the predicate input reports true.</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="truth %s"><block s="evaluate"><block var="atom?"/><list><block var="data"/></list></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="function"/><list><block var="data"/></list></block></block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="deep map %repRing %predRing %l"><block var="function"/><block var="atom?"/><l/></custom-block></autolambda><list></list></block><block var="data"/></block></block></script></block-definition><block-definition s="nth item 1 %&apos;n&apos; %&apos;data&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="n"/><l>0</l></list></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doReport"><custom-block s="nth item 1 %n %l"><block s="reportDifference"><block var="n"/><l>1</l></block><block s="reportListItem"><l>1</l><block var="data"/></block></custom-block></block></script></block-definition><block-definition s="Clear Plot" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>clearScope()</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Copy Scope (Scope Capture variable)" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>copyScopeToSnap</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Start Snap! Recording" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>startSnapRecording()</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Save Snap! Recording" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>saveSnapRecording()</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="RunPlaybackScript %&apos;script&apos;" type="command" category="control"><comment x="0" y="0" w="382" collapsed="false">This block allows for the generation and manipulation of Snap! blocks using syntax that is similar to that of the Logo programming language.&#xD;&#xD;Each line of a valid script is interpreted as an individual command. There are two types of commands:&#xD;1) Generation&#xD;2) Manipulation&#xD;&#xD;The basic format of a Generation command is:&#xD;x = BlockName [arg1 arg2]&#xD;&#xD;where:&#xD;- &quot;x&quot; is a variable name. Variables are stored in the global scope by default and saved between both individual commands and different calls of this block within the current Snap! project.&#xD;- &quot;BlockName&quot; is the name of the block to generate. This can be either a shortened version of a block name, such as, &quot;Move&quot; or the exact, &quot;spec&quot; of a block, such as, &quot;Play %txt For %txt Note Length and Wait&quot;&#xD;- &quot;arg1&quot; and &quot;arg2&quot; refer to the arguments that should be passed into the newly-generated block.&#xD;&#xD;The basic format of a Manipulation command is:&#xD;Manipulate [x arg1 arg2]&#xD;&#xD;where:&#xD;- &quot;x&quot; is a variable name referring to a previously-generated block.&#xD;- &quot;Manipulate&quot; is one of the following commands:&#xD;   - SetInput - sets the input of the specified block to the subsequent arguments (specified by arg1, arg2, etc.)&#xD;   - Snap - snaps the specified block to the block represented by, &quot;arg1&quot; (interpreted as a variable name) such that the block referred to by x is above the block referred to by arg1&#xD;   - Insert - inserts the specified block into the block represented by, &quot;arg1&quot; (interpreted as a variable name) such that the block referred to by x is inside of the C-shaped block referred to by arg1&#xD;   - Delete - deletes the specified block&#xD;   - Exec - executes the specified block (and any blocks snapped to it)&#xD;   - ResetBounds - causes RunPlaybackScript to begin generating blocks from the initial block generation position (top-left of the Snap! script area)</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><custom-block s="my soundscope"></custom-block><l>pausePlaybackScript()</l></list></block><script><block s="bubble"><l>Playback Script pausing! Click on Resume Playback block to resume.</l></block></script><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>runPlaybackScript(</l><block var="script"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block></script></block-definition><block-definition s="Get Hint" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>getHint()</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Fast Fourier Transform %&apos;input list&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>fastFourierTransform(</l><block var="input list"/><l>)</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Resume Playback" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>resumePlaybackScript()</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Pause Playback" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>pausePlaybackScript()</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="Stop Playback" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>message</l></list></block><block s="doSetVar"><l>message</l><block s="reportJoinWords"><list><l>stopPlaybackScript()</l></list></block></block><custom-block s="SendMessageToSoundScope %s"><block var="message"/></custom-block></script></block-definition><block-definition s="note builder (letter %&apos;letter&apos; symbol %&apos;symbol&apos; octave %&apos;octave&apos; )" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s">C<options>A&#xD;B&#xD;C&#xD;D&#xD;E&#xD;F&#xD;G</options></input><input type="%s"><options>#&#xD;b</options></input><input type="%s">4<options>1&#xD;2&#xD;3&#xD;4&#xD;5&#xD;6&#xD;7</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="symbol"/><l>b</l></list></block><script><block s="doDeclareVariables"><list><l>notes</l><l>index</l></list></block><block s="doSetVar"><l>notes</l><block s="reportNewList"><list><l>A</l><l>B</l><l>C</l><l>D</l><l>E</l><l>F</l><l>G</l></list></block></block><block s="doSetVar"><l>index</l><block s="reportListIndex"><block var="letter"/><block var="notes"/></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><script><block s="doSetVar"><l>index</l><l>7</l></block></script><script><block s="doSetVar"><l>index</l><block s="reportDifference"><block s="reportListIndex"><block var="letter"/><block var="notes"/></block><l>1</l></block></block></script></block><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="letter"/><l>C</l></list></block><block s="reportVariadicEquals"><list><block var="letter"/><l>F</l></list></block></list></block><script><block s="doSetVar"><l>symbol</l><l></l></block></script><script><block s="doSetVar"><l>symbol</l><l>#</l></block></script></block><block s="doSetVar"><l>letter</l><block s="reportListItem"><block var="index"/><block var="notes"/></block></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block var="letter"/><block var="symbol"/><block var="octave"/></list></block></block></script></block-definition><block-definition s="%&apos;p1&apos; XOR %&apos;p2&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicOr"><list><block var="p1"/><block var="p2"/></list></block><block s="reportNot"><block s="reportVariadicAnd"><list><block var="p1"/><block var="p2"/></list></block></block></list></block></block></script></block-definition><block-definition s="spec of %&apos;proc&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>console.log( proc.expression);&#xD;return proc.expression.blockSpec || proc.expression.definition.spec</l></block><list><block var="proc"/></list></block></block></script></block-definition><block-definition s="body of %&apos;proc&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>console.log( proc);&#xD;return proc.expression.definition.body;</l></block><list><block var="proc"/></list></block></block></script></block-definition><block-definition s="keys... %&apos;keys&apos; pressed?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportKeyPressed"><l></l></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="keys"/><l> </l></block></block></block></block></script></block-definition><block-definition s="params %&apos;x&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%mult%upvar"></input></inputs></block-definition><block-definition s=". %&apos;x&apos; %&apos;y&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs></block-definition><block-definition s="* %&apos;x&apos; %&apos;y&apos;" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs></block-definition><block-definition s="define %&apos;spec&apos; like %&apos;pat&apos; $nl %&apos;body&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%repRing"></input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>spec</l><l>body</l><l>pat</l></list><l>let def=new CustomBlockDefinition( spec+pat.expression.definition.spec);&#xD;//copy properties of pat&#xD;let def_pat = pat.expression.definition;&#xD;def.category = def_pat.category;&#xD;def.isGlobal = def_pat.isGlobal;&#xD;def.type = def_pat.type;&#xD;def.declarations = def_pat.declarations;&#xD;&#xD;//start procedure body&#xD;def.body = new Context( null, body.expression.fullCopy());&#xD;def.body.inputs = Array.from( def.declarations.keys());&#xD;&#xD;//register with IDE&#xD;if( def.isGlobal){&#xD;  this.parentThatIsA(StageMorph).globalBlocks.push( def);&#xD;}else{&#xD;  this.customBlocks.push(def)&#xD;};&#xD;&#xD;world.children[0].flushPaletteCache();&#xD;world.children[0].refreshPalette();</l></block><list><block var="spec"/><block var="body"/><block var="pat"/></list></block></script></block-definition><block-definition s="define %&apos;name&apos; %&apos;param defs&apos; $nl global? %&apos;scope&apos; type %&apos;type&apos; category %&apos;cat&apos; $nl %&apos;body&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%s"></input><input type="%b">true<options>global</options></input><input type="%txt" readonly="true">command<options>command&#xD;reporter&#xD;predicate</options></input><input type="%txt">other<options>motion&#xD;control&#xD;looks&#xD;sensing&#xD;sound&#xD;operators&#xD;pen&#xD;variables&#xD;other</options></input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l><l>body</l><l>scope</l><l>type</l><l>cat</l><l>params</l></list><l>let _params = params.itemsArray();&#xD;let _inputs = Array.from( _params, v =&gt; v[0] );&#xD;let spec = name + (_inputs.length ?" %"+ _inputs.join( " %") : "");&#xD;let _declarations = new Map();&#xD;_params.forEach( p =&gt; _declarations.set( p[0], p[1]));&#xD;&#xD;//build definition&#xD;let def = new CustomBlockDefinition( spec);&#xD;def.category = cat;&#xD;def.isGlobal = scope;&#xD;def.type = type;&#xD;def.declarations = _declarations;&#xD;&#xD;//start procedure body&#xD;def.body = new Context( null, body.expression.fullCopy());&#xD;def.body.inputs = _inputs;&#xD;&#xD;console.log( def);&#xD;&#xD;//register with IDE&#xD;if( def.isGlobal){&#xD;  this.parentThatIsA(StageMorph).globalBlocks.push( def);&#xD;}else{&#xD;  this.customBlocks.push( def)&#xD;};&#xD;&#xD;world.children[0].flushPaletteCache();&#xD;world.children[0].refreshPalette();</l></block><list><block var="name"/><block var="body"/><block var="scope"/><block var="type"/><block var="cat"/><block var="param defs"/></list></block></script></block-definition><block-definition s="param def %&apos;x&apos; %&apos;spec&apos; $nl %&apos;val&apos; %&apos;opt&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s">%s</input><input type="%s"></input><input type="%mlt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>x, spec, val, opt</l></list><l>return [x, [spec, val, opt, false]];</l></block><list><block var="x"/><block var="spec"/><block var="val"/><block var="opt"/></list></block></block></script></block-definition><block-definition s="define %&apos;name&apos; %&apos;params&apos; $nl global? %&apos;scope&apos; type %&apos;type&apos; category %&apos;cat&apos; $nl %&apos;body&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mult%upvar"></input><input type="%b">true<options>global</options></input><input type="%txt" readonly="true">command<options>command&#xD;reporter&#xD;predicate</options></input><input type="%txt">other<options>motion&#xD;control&#xD;looks&#xD;sensing&#xD;sound&#xD;operators&#xD;pen&#xD;variables&#xD;other</options></input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>name</l><l>body</l><l>scope</l><l>type</l><l>cat</l><l>params</l></list><l>let _inputs = params.itemsArray();&#xD;let _declarations = new Map();&#xD;_inputs.forEach( param =&gt; _declarations.set( param, [ "%s","","",false]));&#xD;let spec = name + (_inputs.length ?" %"+ _inputs.join( " %") : "");&#xD;&#xD;//build definition&#xD;let def = new CustomBlockDefinition( spec);&#xD;def.category = cat;&#xD;def.isGlobal = scope;&#xD;def.type = type;&#xD;def.declarations = _declarations;&#xD;&#xD;//start procedure body&#xD;def.body = new Context( null, body.expression.fullCopy());&#xD;def.body.inputs = _inputs;&#xD;&#xD;//register with IDE&#xD;if( def.isGlobal){&#xD;  this.parentThatIsA(StageMorph).globalBlocks.push( def);&#xD;}else{&#xD;  this.customBlocks.push( def)&#xD;};&#xD;&#xD;world.children[0].flushPaletteCache();&#xD;world.children[0].refreshPalette();</l></block><list><block var="name"/><block var="body"/><block var="scope"/><block var="type"/><block var="cat"/><block var="params"/></list></block></script></block-definition><block-definition s="type %&apos;t&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">%s<options>Upvar=%upvar&#xD;Object=%obj&#xD;Number=%n&#xD;Command (inline)=%cmdRing&#xD;Command (C-shape)=%cs&#xD;Command (C-shape loop)=%ca&#xD;Text=%txt&#xD;Any type=%s&#xD;Reporter=%repRing&#xD;Any (unevaluated)=%anyUE&#xD;List=%l&#xD;Boolean (T/F)=%b&#xD;Predicate=%predRing&#xD;Boolean (unevaluated)=%boolUE&#xD;Special={&#xD;Multi-line=%mlt&#xD;Code=%code&#xD;}&#xD;Menu={&#xD;Messages=%msg&#xD;Objects=%spr&#xD;Costumes=%cst&#xD;Sounds=%snd&#xD;Variables=%var&#xD;Piano keyboard=%note&#xD;360° dial=%dir&#xD;}&#xD;Hidden={&#xD;Attribute=%att&#xD;Boolean=%bool&#xD;Clones=%cln&#xD;Color picker=%clr&#xD;Command=%cl&#xD;Command loop=%cla&#xD;Command (inside)=%cmd&#xD;Destination=%dst &#xD;Expansion=%exp&#xD;Get attribute=%get&#xD;Inheritables=%shd&#xD;Input name=%inputName&#xD;Image source=%imgsource&#xD;Location=%lo&#xD;Objects (includes self)=%self&#xD;Ring parameters=%ringparms&#xD;Script variables=%scriptVars&#xD;Touching=%col&#xD;With inputs=%inputs&#xD;Words=%words&#xD;}&#xD;Lists={&#xD;Audio properties (volume, ..., resolution)=%audio&#xD;Codification list maps (list, item, delimiter)=%codeListPart&#xD;Codification section maps (code, header)=%codeKind&#xD;Codification type maps (String, ..., false)=%mapValue&#xD;Date options (year, ..., time in milliseconds)=%dates&#xD;Delimiters (letter, ..., json)=%delim&#xD;Dimensions (current)=%dim&#xD;Effect (color, ..., negative)=%eff&#xD;Event (clicked, ..., stopped)=%interaction&#xD;Functions (abs, ..., 2^)=%fun&#xD;HSVA (hue, ..., transparency)=%hsva&#xD;Indices (1, last, random)=%idx&#xD;Indices (1, last, all)=%ida&#xD;Instrument ((1) sine, ... (4) triangle)=%inst&#xD;Image properties (name, ..., pixels)=%img&#xD;Keys (0, ..., z)=%key&#xD;Layer depth (front, back)=%layer&#xD;Month (January, ..., December)=%month&#xD;Pen values (size, ..., transparency)=%pen&#xD;Relation (distance, direction)=%rel&#xD;Sample rates (22.05 kHz, ..., 96 kHz)=%rate&#xD;Settings (turbo mode, ..., mirror video)=%setting&#xD;Sound properties (name, ..., samples)=%aa &#xD;Stop choices (all, ..., other scripts in sprite)=%stopChoices&#xD;Text functions (encode URI, ..., hex sha512 hash)=%txtfun&#xD;Types (number, ..., predicate)=%typ&#xD;Value at location (hue, ..., sprites)=%asp&#xD;Video options (snap, motion, direction)=%vid&#xD;}&#xD;Bugged={&#xD;3 lists=%lst&#xD;Code mapping=%codeKind&#xD;Command=%c&#xD;Command loop=%loop&#xD;Command ring=%rc&#xD;Function=%f&#xD;Key (for hat)=%keyHat&#xD;Message (for hat)=%msgHat&#xD;Predicate ring=%rp&#xD;Reporter ring=%rr&#xD;Reporter slot=%r&#xD;Reporter slot (?)=%p&#xD;Template=%t&#xD;}&#xD;Images and labels={&#xD;Break=%br&#xD;Green start flag=%greenflag&#xD;Clockwise arrow=%clockwise&#xD;Counter-clockwise arrow=%counterclockwise&#xD;Lightning=%blitz&#xD;Loop arrow=%loopArrow&#xD;Pause icon=%pause&#xD;Stop sign=%stop&#xD;Turtle=%turtle&#xD;Turtle outline=%turtleOutline&#xD;}</options></input></inputs><script><block s="doReport"><block var="t"/></block></script></block-definition><block-definition s="rep1* %&apos;x&apos; %&apos;y&apos;" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><custom-block s="params %mult%upvar"><list><l>x</l><l>y</l></list></custom-block><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>88</l></block><block s="doReport"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicSum"><list><block var="y"/><block var="a"/></list></block></list></block></block></script></block-definition><block-definition s="rep4 %&apos;x&apos; %&apos;y&apos; %&apos;z&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">XX</input><input type="%b">true</input><input type="%ca">X<options>A&#xD;B&#xD;C&#xD;X</options></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>88</l></block><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><block var="x"/><block var="y"/><block var="z"/></list></block></block></script></block-definition><block-definition s="rep2 %x %y" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>88</l></block><block s="doSayFor"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicSum"><list><block var="y"/><block var="a"/></list></block></list></block><l>1</l></block></script></block-definition><block-definition s="cmd1. %&apos;x&apos; %&apos;y&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><custom-block s="params %mult%upvar"><list><l>x</l><l>y</l></list></custom-block><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><l>88</l></block><block s="doSayFor"><block s="reportVariadicSum"><list><block var="x"/><block s="reportVariadicSum"><list><block var="y"/><block var="a"/></list></block></list></block><l>1</l></block></script></block-definition><block-definition s="%&apos;width/height/size&apos; of text %&apos;text&apos; with size %&apos;size&apos;" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">size<options>width&#xD;height&#xD;size</options></input><input type="%s"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="width/height/size"/><l>size</l></list></block><block s="reportVariadicProduct"><list><custom-block s="%s of text %s with size %n"><l>width</l><block var="text"/><block var="size"/></custom-block><custom-block s="%s of text %s with size %n"><l>height</l><block var="text"/><block var="size"/></custom-block></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l></l><custom-block s="costume from text %s size %n"><block var="text"/><block var="size"/></custom-block></block></autolambda><list></list></block><list><block var="width/height/size"/></list></block></block></block></script></block-definition><block-definition s="set pallette size to %&apos;size&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">200</input></inputs><script><custom-block s="add %repRing to scripts"><block s="reifyReporter"><script><custom-block s="set pallette size to %n"><l>200</l></custom-block></script><list></list></block></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>s</l></list><l>var ide = this.parentThatIsA(IDE_Morph);&#xD;ide.setPaletteWidth(s);</l></block><list><block var="size"/></list></block></script></block-definition><block-definition s="toggle palette visibility" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>var ide = this.parentThatIsA(IDE_Morph);&#xD;if (ide.paletteWidth &gt; 0) {&#xD;  ide.setPaletteWidth(0);&#xD;} else {&#xD;  ide.setPaletteWidth(200);&#xD;}&#xD;  </l></block><list></list></block></script></block-definition><block-definition s="Base64 %&apos;which&apos; %&apos;input&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">encode<options>encode&#xD;decode</options></input><input type="%s">Hello world!</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>operation</l><l>input</l></list><l>if (!("Base64" in window))&#xD;Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",&#xD;encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f&lt;e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n&gt;&gt;2;o=(n&amp;3)&lt;&lt;4|r&gt;&gt;4;u=(r&amp;15)&lt;&lt;2|i&gt;&gt;6;a=i&amp;63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},&#xD;decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f&lt;e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s&lt;&lt;2|o&gt;&gt;4;r=(o&amp;15)&lt;&lt;4|u&gt;&gt;2;i=(u&amp;3)&lt;&lt;6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n&lt;e.length;n++){var r=e.charCodeAt(n);if(r&lt;128){t+=String.fromCharCode(r)}else if(r&gt;127&amp;&amp;r&lt;2048){t+=String.fromCharCode(r&gt;&gt;6|192);t+=String.fromCharCode(r&amp;63|128)}else{t+=String.fromCharCode(r&gt;&gt;12|224);t+=String.fromCharCode(r&gt;&gt;6&amp;63|128);t+=String.fromCharCode(r&amp;63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n&lt;e.length){r=e.charCodeAt(n);if(r&lt;128){t+=String.fromCharCode(r);n++}else if(r&gt;191&amp;&amp;r&lt;224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&amp;31)&lt;&lt;6|c2&amp;63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&amp;15)&lt;&lt;12|(c2&amp;63)&lt;&lt;6|c3&amp;63);n+=3}}return t}}&#xD;if (!([&apos;encode&apos;,&apos;decode&apos;].includes(operation)))&#xD;throw new Error(&apos;Unknown operation: &apos;+operation);&#xD;return Base64[operation](input);</l></block><list><block var="which"/><block var="input"/></list></block></block></script></block-definition><block-definition s="Script : Build %&apos;blocks&apos; $nl with module name: %&apos;name&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input><input type="%s">user created</input></inputs><script><block s="doDeclareVariables"><list><l>XML</l></list></block><block s="doSetVar"><l>XML</l><block s="reportJoinWords"><list><l>&lt;blocks app="Snap! 6, https://snap.berkeley.edu" version="1"&gt;</l><block s="reportCombine"><block var="blocks"/><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>&lt;/blocks&gt;</l></list></block></block><block s="doRun"><block s="reportJSFunction"><list><l>xmlString</l><l>xmlname</l><l>silent</l></list><l>this.parentThatIsA(IDE_Morph).rawOpenBlocksString(xmlString, xmlname, true)</l></block><list><block var="XML"/><block var="name"/></list></block></script></block-definition><block-definition s="block spec %&apos;block&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="139" collapsed="false">Returns the spec of a block</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>while (a.expression)    a = a.expression;return a.blockSpec</l></block><list><block var="block"/></list></block></block></script></block-definition><block-definition s="do %&apos;b&apos;" type="command" category="control"><comment x="0" y="0" w="134" collapsed="false">Executes a set of tasks</comment><header></header><code></code><translations></translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doForEach"><l>item</l><block var="b"/><script><block s="doRun"><block var="item"/><list></list></block></script></block></script></block-definition><block-definition s="type %&apos;type&apos;" type="reporter" category="other"><comment x="0" y="0" w="214" collapsed="false">Menu for selecting parameter types</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">%s<options>Upvar=%upvar&#xD;Object=%obj&#xD;Number=%n&#xD;Command (inline)=%cmdRing&#xD;Command (C-shape)=%cs&#xD;Command (C-shape loop)=%ca&#xD;Text=%txt&#xD;Any type=%s&#xD;Reporter=%repRing&#xD;Any (unevaluated)=%anyUE&#xD;List=%l&#xD;Boolean (T/F)=%b&#xD;Predicate=%predRing&#xD;Boolean (unevaluated)=%boolUE&#xD;Special={&#xD;Multi-line=%mlt&#xD;Code=%code&#xD;}&#xD;Menu={&#xD;Messages=%msg&#xD;Objects=%spr&#xD;Costumes=%cst&#xD;Sounds=%snd&#xD;Variables=%var&#xD;Piano keyboard=%note&#xD;360° dial=%dir&#xD;}&#xD;Hidden={&#xD;Attribute=%att&#xD;Boolean=%bool&#xD;Clones=%cln&#xD;Color picker=%clr&#xD;Command=%cl&#xD;Command loop=%cla&#xD;Command (inside)=%cmd&#xD;Destination=%dst &#xD;Expansion=%exp&#xD;Get attribute=%get&#xD;Inheritables=%shd&#xD;Input name=%inputName&#xD;Image source=%imgsource&#xD;Location=%lo&#xD;Objects (includes self)=%self&#xD;Ring parameters=%ringparms&#xD;Script variables=%scriptVars&#xD;Touching=%col&#xD;With inputs=%inputs&#xD;Words=%words&#xD;}&#xD;Lists={&#xD;Audio properties (volume, ..., resolution)=%audio&#xD;Codification list maps (list, item, delimiter)=%codeListPart&#xD;Codification section maps (code, header)=%codeKind&#xD;Codification type maps (String, ..., false)=%mapValue&#xD;Date options (year, ..., time in milliseconds)=%dates&#xD;Delimiters (letter, ..., json)=%delim&#xD;Dimensions (current)=%dim&#xD;Effect (color, ..., negative)=%eff&#xD;Event (clicked, ..., stopped)=%interaction&#xD;Functions (abs, ..., 2^)=%fun&#xD;HSVA (hue, ..., transparency)=%hsva&#xD;Indices (1, last, random)=%idx&#xD;Indices (1, last, all)=%ida&#xD;Instrument ((1) sine, ... (4) triangle)=%inst&#xD;Image properties (name, ..., pixels)=%img&#xD;Keys (0, ..., z)=%key&#xD;Layer depth (front, back)=%layer&#xD;Month (January, ..., December)=%month&#xD;Pen values (size, ..., transparency)=%pen&#xD;Relation (distance, direction)=%rel&#xD;Sample rates (22.05 kHz, ..., 96 kHz)=%rate&#xD;Settings (turbo mode, ..., mirror video)=%setting&#xD;Sound properties (name, ..., samples)=%aa &#xD;Stop choices (all, ..., other scripts in sprite)=%stopChoices&#xD;Text functions (encode URI, ..., hex sha512 hash)=%txtfun&#xD;Types (number, ..., predicate)=%typ&#xD;Value at location (hue, ..., sprites)=%asp&#xD;Video options (snap, motion, direction)=%vid&#xD;}&#xD;Bugged={&#xD;3 lists=%lst&#xD;Code mapping=%codeKind&#xD;Command=%c&#xD;Command loop=%loop&#xD;Command ring=%rc&#xD;Function=%f&#xD;Key (for hat)=%keyHat&#xD;Message (for hat)=%msgHat&#xD;Predicate ring=%rp&#xD;Reporter ring=%rr&#xD;Reporter slot=%r&#xD;Reporter slot (?)=%p&#xD;Template=%t&#xD;}&#xD;Images and labels={&#xD;Break=%br&#xD;Green start flag=%greenflag&#xD;Clockwise arrow=%clockwise&#xD;Counter-clockwise arrow=%counterclockwise&#xD;Lightning=%blitz&#xD;Loop arrow=%loopArrow&#xD;Pause icon=%pause&#xD;Stop sign=%stop&#xD;Turtle=%turtle&#xD;Turtle outline=%turtleOutline&#xD;}</options></input></inputs><script><block s="doReport"><block var="type"/></block></script></block-definition><block-definition s="multiple %&apos;type&apos;" type="reporter" category="other"><comment x="0" y="0" w="241" collapsed="false">Allows for multiples of the specified type</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true"><options>use the provided type block=</options></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>%mult</l><block var="type"/></list></block></block></script></block-definition><block-definition s="throw %&apos;error&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Throws an error</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>err</l></list><l>throw new Error(err)</l></block><list><block var="error"/></list></block></script></block-definition><block-definition s="is %&apos;item&apos; a $pair ?" type="predicate" category="variables"><comment x="0" y="0" w="168" collapsed="false">Whether or not the object is a pair</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="item"/></block><l>3</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="item"/></block><l>pair</l></list></block></list></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="is %&apos;item&apos; $xml ?" type="predicate" category="sensing"><comment x="0" y="0" w="182" collapsed="false">Whether or not a value is an XML tag</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="item"/></block><l>XML</l></list></block><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="item"/></block><l><option>text</option></l></block></list></block><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="item"/></block><l><option>list</option></l></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="join %&apos;words&apos; by %&apos;delim&apos;" type="reporter" category="operators"><comment x="0" y="0" w="147" collapsed="false">Joins a group of words with a delimeter to separate them</comment><header></header><code></code><translations></translations><inputs><input type="%mult%mlt"></input><input type="%mlt">, </input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportListItem"><l>1</l><block var="words"/></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="words"/></block><l>1</l></list></block><script><block s="doFor"><l>i</l><l>2</l><block s="reportListAttribute"><l><option>length</option></l><block var="words"/></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block var="delim"/><block s="reportListItem"><block var="i"/><block var="words"/></block></list></block></block></script></block></script><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="block spec list %&apos;blocks&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="283" collapsed="false">Returns a matrix with the block and its spec paired together</comment><header></header><code></code><translations></translations><inputs><input type="%mult%cmdRing"></input></inputs><script><block s="doReport"><custom-block s="list from %anyUE for %n"><block s="reportNewList"><list><block s="reportListItem"><l></l><block var="blocks"/></block><custom-block s="block spec %cmdRing"><block s="reportListItem"><l></l><block var="blocks"/></block></custom-block></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="blocks"/></block></custom-block></block></script></block-definition><block-definition s="list from %&apos;value&apos; for %&apos;count&apos;" type="reporter" category="lists"><comment x="0" y="0" w="189" collapsed="false">Creates a new list with a given length, mapping each value with the function</comment><header></header><code></code><translations></translations><inputs><input type="%anyUE">0</input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>new</l></list></block><block s="doSetVar"><l>new</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="count"/><script><block s="doAddToList"><block s="evaluate"><block var="value"/><list><block var="i"/></list></block><block var="new"/></block></script></block><block s="doReport"><block var="new"/></block></script></block-definition><block-definition s="join %&apos;a&apos; and %&apos;b&apos; with %&apos;c&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Wraps a set of words between two others</comment><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%mlt"></input><input type="%mult%mlt"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><block var="a"/><block s="reportJoinWords"><block var="c"/></block><block var="b"/></list></block></block></script></block-definition><block-definition s="ez add XML children $nl $- %&apos;xml&apos; $nl $- %&apos;child&apos;" type="reporter" category="sensing"><comment x="0" y="0" w="191" collapsed="false">See [add XML child]Messy form, for quickly adding children</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%mult%l"></input></inputs><script><block s="doForEach"><l>item</l><block var="child"/><script><block s="doRun"><block s="reifyScript"><script><custom-block s="add XML child %l %l"><block var="xml"/><block var="item"/></custom-block></script><list></list></block><list></list></block></script></block><block s="doReport"><block var="xml"/></block></script></block-definition><block-definition s="new custom block $nl $- type: %&apos;type&apos; $nl $- category: %&apos;category&apos; $nl $- spec: %&apos;blockSpec&apos;" type="reporter" category="variables"><comment x="0" y="0" w="332" collapsed="false">Generates the XML for a new custom block given the parameters&#xD;The spec represents the label or title for the block &#xD;To add custom variables, use the [variable parameter] object within the spec parameter</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">command<options>command&#xD;reporter&#xD;predicate</options></input><input type="%mlt" readonly="true">control<options>motion&#xD;looks&#xD;sound&#xD;pen&#xD;lists&#xD;control&#xD;sensing&#xD;operators&#xD;variables&#xD;other</options></input><input type="%mult%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>inputs</l><l>spec</l></list></block><block s="doSetVar"><l>spec</l><l></l></block><block s="doSetVar"><l>inputs</l><custom-block s="xml tag %txt"><l>inputs</l></custom-block></block><block s="doForEach"><l>param</l><block var="blockSpec"/><script><block s="doIfElse"><block s="reportIsA"><block var="param"/><l><option>list</option></l></block><script><custom-block s="add XML child %l %l"><block var="inputs"/><custom-block s="mapParam %l"><block var="param"/></custom-block></custom-block><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><l>%&apos;</l><block s="reportListItem"><l>1</l><block var="param"/></block><l>&apos;</l><l> </l></list></block></block></script><script><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><block var="param"/><l> </l></list></block></block></script></block></script></block><block s="doReport"><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>blocks</l></custom-block><l>app</l><l>Snap! 5.4, http://snap.berkeley.edu</l></custom-block><l>version</l><l>1</l></custom-block><list><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>block-definition</l></custom-block><l>s</l><custom-block s="substr %mlt from %n to %n"><block var="spec"/><l></l><l>-1</l></custom-block></custom-block><l>type</l><block var="type"/></custom-block><l>category</l><block var="category"/></custom-block><list><custom-block s="xml tag %txt"><l>header</l></custom-block><custom-block s="xml tag %txt"><l>code</l></custom-block><custom-block s="xml tag %txt"><l>translations</l></custom-block><block var="inputs"/></list></custom-block></list></custom-block></block></script></block-definition><block-definition s="menu %&apos;type&apos;" type="reporter" category="other"><comment x="0" y="0" w="375" collapsed="false">Menu for choosing interfaces or selections that appear when changing a value&#xD;These will go in the [options] section of [variable parameter]s</comment><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">§_messagesMenu<options>Messages=§_messagesMenu&#xD;Objects=§_objectsMenu&#xD;Costumes=§_costumesMenu&#xD;Sounds=§_soundsMenu&#xD;Variables=§_getVarNamesDict&#xD;Piano keyboard=§_pianoKeyboardMenu&#xD;360° dial=§_directionDialMenu</options></input></inputs><script><block s="doReport"><block var="type"/></block></script></block-definition><block-definition s="WIP DO NOT USE, new custom block $nl $- type: %&apos;type&apos; $nl $- category: %&apos;category&apos; $nl $- spec: %&apos;blockSpec&apos; $nl $- %&apos;variables&apos; %&apos;definition&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%mlt" readonly="true">command&#xD;        <options>commandreporterpredicate</options></input><input type="%mlt" readonly="true">control&#xD;        <options>motionlookssoundpenlistscontrolsensingoperatorsvariablesother</options></input><input type="%mult%txt"></input><input type="%scriptVars"></input><input type="%ca"></input></inputs><script><block s="doDeclareVariables"><list><l>inputs</l><l>spec</l></list></block><block s="doSetVar"><l>spec</l><l></l></block><block s="doSetVar"><l>inputs</l><custom-block s="xml tag %txt"><l>inputs</l></custom-block></block><block s="doForEach"><l>param</l><block var="blockSpec"/><script><block s="doIfElse"><block s="reportIsA"><block var="param"/><l><option>list</option></l></block><script><custom-block s="add XML child %l %l"><block var="inputs"/><custom-block s="mapParam %l"><block var="param"/></custom-block></custom-block><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><l>world</l><l></l></list></block></block></script><script><block s="doSetVar"><l>spec</l><block s="reportJoinWords"><list><block var="spec"/><block var="param"/><l></l></list></block></block></script></block></script></block><block s="doIf"><block s="reportVariadicAnd"><list><custom-block s="is ring %s"><block var="definition"/></custom-block><block s="reportNot"><custom-block s="empty ring %s"><block var="definition"/></custom-block></block></list></block><script><block s="doSayFor"><block var="definition"/><l>2</l></block><block s="doSayFor"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>const ide = this.parentThatIsA(IDE_Morph);return ide.serializer.serialize(a);</l></block><list><block var="definition"/></list></block><l>10</l></block></script><list></list></block><block s="doReport"><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>blocks</l></custom-block><l>app</l><l>Snap! 6.7, http://snap.berkeley.edu</l></custom-block><l>version</l><l>1</l></custom-block><list><custom-block s="ez add XML children %br $- %l %br $- %mult%l"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="ez set XML attribute %br $- %l %br $- %txt %txt"><custom-block s="xml tag %txt"><l>block-definition</l></custom-block><l>s</l><custom-block s="substr %mlt from %n to %n"><block var="spec"/><l></l><l>-1</l></custom-block></custom-block><l>type</l><block var="type"/></custom-block><l>category</l><block var="category"/></custom-block><list><custom-block s="xml tag %txt"><l>header</l></custom-block><custom-block s="xml tag %txt"><l>code</l></custom-block><custom-block s="xml tag %txt"><l>translations</l></custom-block><block var="inputs"/></list></custom-block></list></custom-block></block></script></block-definition><block-definition s="variable parameter $nl $- name: %&apos;name&apos; $nl $- type: %&apos;kind&apos; $nl $- default: %&apos;default&apos; $nl $- options: %&apos;s&apos; $nl $- readonly: %&apos;readonly&apos;" type="reporter" category="other"><comment x="0" y="0" w="389" collapsed="false">Creates a new variable parameter to be used when making a [new custom block]&#xD;Types can also be images, for making special labels&#xD;The parameters are much like the regular and right-click menu for input type selection when making a custom block &#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%mlt" readonly="true"><options>pass in multiple or type block=</options></input><input type="%mlt"></input><input type="%mlt"></input><input type="%b">false</input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="name"/><block var="kind"/><block var="default"/><block var="s"/><block var="readonly"/></list></block></block></script></block-definition><block-definition s="empty ring %&apos;value&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175" collapsed="false">Returns if the value is an empty ring without using JS</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>value</l><block s="reportJoinWords"><list><block var="value"/></list></block></block><block s="doReport"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="value"/><block s="reportJoinWords"><list><block s="reifyScript"><script></script><list></list></block></list></block></list></block><block s="reportVariadicEquals"><list><block var="value"/><block s="reportJoinWords"><list><block s="reifyReporter"><script></script><list></list></block></list></block></list></block></list></block><block s="reportVariadicEquals"><list><block var="value"/><block s="reportJoinWords"><list><block s="reifyPredicate"><script></script><list></list></block></list></block></list></block></list></block></block></script></block-definition><block-definition s="is ring %&apos;item&apos;" type="reporter" category="operators"><comment x="0" y="0" w="242" collapsed="false">Returns if the item is wrapped in some sort of ring</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block s="reportVariadicOr"><list><block s="reportIsA"><block var="item"/><l><option>command</option></l></block><block s="reportIsA"><block var="item"/><l><option>reporter</option></l></block></list></block><block s="reportIsA"><block var="item"/><l><option>predicate</option></l></block></list></block></block></script></block-definition><block-definition s="play notes %&apos;notes&apos; for %&apos;beats&apos; beats" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%mult%note">60</input><input type="%n">0.5</input></inputs><script><block s="doForEach"><l>item</l><block var="notes"/><script><block s="fork"><block s="reifyScript"><script><block s="doPlayNote"><block var="item"/><l>0.5</l></block></script><list></list></block><list></list></block></script></block><block s="doRest"><block var="beats"/></block></script></block-definition><block-definition s="log %&apos;stuff&apos; to console" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%mult%mlt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>items</l></list><l>console.log(items.contents.join(&apos;\n&apos;));</l></block><list><block var="stuff"/></list></block></script></block-definition><block-definition s="strdump %&apos;tbl&apos; %&apos;level&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">0</input></inputs><script><block s="doDeclareVariables"><list><l>tab</l><l>str</l><l>item</l></list></block><block s="doSetVar"><l>str</l><l></l></block><block s="doSetVar"><l>tab</l><custom-block s="repeat %mlt %n times"><l>    </l><block var="level"/></custom-block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="tbl"/></block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><block var="i"/><block var="tbl"/></block></block><block s="doIfElse"><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><script><block s="doSetVar"><l>str</l><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="str"/><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="i"/><custom-block s="strdump %l %n"><block var="item"/><block s="reportVariadicSum"><list><block var="level"/><l>1</l></list></block></custom-block><list><l>:&#xD;</l></list></custom-block><list><block var="tab"/></list></custom-block></block></script><script><block s="doSetVar"><l>str</l><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="str"/><l>&#xD;</l><list><block var="tab"/><custom-block s="join %mlt and %mlt with %mult%mlt"><block var="i"/><block var="item"/><list><l>:   </l></list></custom-block></list></custom-block></block></script></block></script></block><block s="doReport"><block var="str"/></block></script><scripts><script x="297.23144631250034" y="287.200002"><custom-block s="strdump %l %n"><block var="item"/><block s="reportVariadicSum"><list><block var="level"/><l>1</l></list></block></custom-block></script></scripts></block-definition><block-definition s="repeat %&apos;word&apos; %&apos;d&apos; times" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%n">1</input></inputs><script><block s="doDeclareVariables"><list><l>out</l></list></block><block s="doSetVar"><l>out</l><l></l></block><block s="doIf"><block s="reportNot"><block s="reportVariadicLessThan"><list><block var="d"/><l>1</l></list></block></block><script><block s="doFor"><l>i</l><l>1</l><block var="d"/><script><block s="doSetVar"><l>out</l><block s="reportJoinWords"><list><block var="out"/><block var="word"/></list></block></block></script></block></script><list></list></block><block s="doReport"><block var="out"/></block></script></block-definition><block-definition s="mix colors %&apos;1&apos; %&apos;2&apos; by %&apos;p&apos; %" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n">50</input></inputs><script><block s="doReport"><custom-block s="color with RGBA %l"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><custom-block s="%s of color %n"><l>RGBA</l><block var="2"/></custom-block><block s="reportQuotient"><block var="p"/><l>100</l></block></list></block><block s="reportVariadicProduct"><list><custom-block s="%s of color %n"><l>RGBA</l><block var="1"/></custom-block><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="p"/></block><l>100</l></block></list></block></list></block></custom-block></block></script></block-definition><block-definition s="ukulele chords" type="reporter" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>Ukulele</l><block s="reportNewList"><list><l>G String</l><l>C String</l><l>E String</l><l>A String</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>G String X</l><l>G String Y</l></list></block><block s="reportNewList"><list><l>C String X</l><l>C String Y</l></list></block><block s="reportNewList"><list><l>E String X</l><l>E String Y</l></list></block><block s="reportNewList"><list><l>A String X</l><l>A String Y</l></list></block></list></block></list></block><block s="reportNewList"><list><l>A Chord</l><block s="reportNewList"><list><l>A4</l><l>C#4</l><l>E4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-55</l><l>104</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>A Major 7 Chord</l><block s="reportNewList"><list><l>G#4</l><l>C#4</l><l>E4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-55</l><l>124</l></list></block><block s="reportNewList"><list><l>-55</l><l>104</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>A Minor Chord</l><block s="reportNewList"><list><l>A4</l><l>C4</l><l>E4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>A Minor 7 Chord</l><block s="reportNewList"><list><l>G4</l><l>E4</l><l>G4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-191</l><l>105</l></list></block><block s="reportNewList"><list><l>-148</l><l>83</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>A7 Chord</l><block s="reportNewList"><list><l>G4</l><l>C#4</l><l>E4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-55</l><l>104</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>B Chord</l><block s="reportNewList"><list><l>B4</l><l>D#4</l><l>F#4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-191</l><l>128</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>B Major 7 Chord</l><block s="reportNewList"><list><l>A#4</l><l>D#4</l><l>G4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-148</l><l>127</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>B Minor Chord</l><block s="reportNewList"><list><l>B4</l><l>D4</l><l>F#4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-191</l><l>128</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>B Minor 7 Chord</l><block s="reportNewList"><list><l>A4</l><l>D4</l><l>F#4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>B7 Chord</l><block s="reportNewList"><list><l>A4</l><l>D#4</l><l>F#4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>C Chord</l><block s="reportNewList"><list><l>G4</l><l>C4</l><l>E4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>C Major 7 Chord</l><block s="reportNewList"><list><l>G4</l><l>C4</l><l>E4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>C Minor Chord</l><block s="reportNewList"><list><l>G4</l><l>D#4</l><l>G4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-148</l><l>83</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>C Minor 7 Chord</l><block s="reportNewList"><list><l>A#4</l><l>D#4</l><l>G4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-148</l><l>127</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-148</l><l>83</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>C7 Chord</l><block s="reportNewList"><list><l>G4</l><l>C4</l><l>E4</l><l>A#4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-55</l><l>63</l></list></block></list></block></list></block><block s="reportNewList"><list><l>D Chord</l><block s="reportNewList"><list><l>A4</l><l>D4</l><l>F#4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>D Major 7 Chord</l><block s="reportNewList"><list><l>A4</l><l>D4</l><l>F#4</l><l>C#5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>-191</l><l>60</l></list></block></list></block></list></block><block s="reportNewList"><list><l>D Minor Chord</l><block s="reportNewList"><list><l>A4</l><l>D4</l><l>F4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>D Minor 7 Chord</l><block s="reportNewList"><list><l>A4</l><l>D4</l><l>F4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>D7 Chord</l><block s="reportNewList"><list><l>A4</l><l>C4</l><l>F#4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>E Chord</l><block s="reportNewList"><list><l>B4</l><l>E4</l><l>G#4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-191</l><l>128</l></list></block><block s="reportNewList"><list><l>-191</l><l>105</l></list></block><block s="reportNewList"><list><l>-191</l><l>83</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>E Major 7 Chord</l><block s="reportNewList"><list><l>G#4</l><l>D#4</l><l>E4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-55</l><l>124</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>E Minor Chord</l><block s="reportNewList"><list><l>G4</l><l>E4</l><l>G4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-191</l><l>105</l></list></block><block s="reportNewList"><list><l>-148</l><l>83</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>E Minor 7 Chord</l><block s="reportNewList"><list><l>G4</l><l>D4</l><l>E4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>E7 Chord</l><block s="reportNewList"><list><l>G4</l><l>D4</l><l>E4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l><l></l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>F Chord</l><block s="reportNewList"><list><l>A4</l><l>C4</l><l>F4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block></list></block></list></block><block s="reportNewList"><list><l>F Major 7 Chord</l><block s="reportNewList"><list><l>A4</l><l>E4</l><l>F4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-191</l><l>105</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>F Minor Chord</l><block s="reportNewList"><list><l>G#4</l><l>C4</l><l>F4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-55</l><l>124</l></list></block><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>F Minor 7 Chord</l><block s="reportNewList"><list><l>G#4</l><l>D#4</l><l>F4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-55</l><l>124</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>-148</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>F7 Chord</l><block s="reportNewList"><list><l>A4</l><l>D#4</l><l>F4</l><l>A4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>126</l></list></block><block s="reportNewList"><list><l>-148</l><l>105</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block></list></block></list></block><block s="reportNewList"><list><l>G Chord</l><block s="reportNewList"><list><l>G4</l><l>D4</l><l>G4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-148</l><l>83</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>G Major 7 Chord</l><block s="reportNewList"><list><l>G4</l><l>D4</l><l>F#4</l><l>C5</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-103</l><l>82</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block><block s="reportNewList"><list><l>G Minor Chord</l><block s="reportNewList"><list><l>G4</l><l>D4</l><l>G4</l><l>A#4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-148</l><l>83</l></list></block><block s="reportNewList"><list><l>-55</l><l>63</l></list></block></list></block></list></block><block s="reportNewList"><list><l>G Minor 7 Chord</l><block s="reportNewList"><list><l>G4</l><l>D4</l><l>F4</l><l>A#4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>-55</l><l>63</l></list></block></list></block></list></block><block s="reportNewList"><list><l>G7 Chord</l><block s="reportNewList"><list><l>G4</l><l>D4</l><l>F4</l><l>B4</l></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>250</l><l>250</l></list></block><block s="reportNewList"><list><l>-103</l><l>104</l></list></block><block s="reportNewList"><list><l>-55</l><l>82</l></list></block><block s="reportNewList"><list><l>-103</l><l>61</l></list></block></list></block></list></block></list></block></block></script></block-definition><block-definition s="%&apos;how&apos; copy %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>shallow&#xD;deep</options></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="how"/><l>shallow</l></list></block><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><block var="list"/></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="how"/><l>deep</l></list></block><block s="reportMonadic"><l><option>id</option></l><block var="list"/></block><block s="reportNewList"><list></list></block></block></block></block></script></block-definition><block-definition s="set volume to %&apos;d&apos; decibels" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="setVolume"><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportPower"><l>10</l><block s="reportQuotient"><block var="d"/><l>10</l></block></block><l>100</l></list></block></block></block></script></block-definition><block-definition s="filled costume %&apos;width&apos; × %&apos;height&apos; with color %&apos;color&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">80</input><input type="%n">100</input><input type="%n"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="filled costume %&apos;width&apos; × %&apos;height&apos; colored %&apos;color&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">80</input><input type="%n">100</input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNewCostumeStretched"><block s="reportNewCostume"><block s="reportNewList"><list><block s="reportConcatenatedLists"><list><custom-block s="%s of color %n"><l>RGB</l><block var="color"/></custom-block><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><custom-block s="%s of color %n"><l>A</l><block var="color"/></custom-block><l>255</l></list></block><l>100</l></block></list></block></list></block></list></block><l>1</l><l>1</l></block><block s="reportVariadicProduct"><list><block var="width"/><l>100</l></list></block><block s="reportVariadicProduct"><list><block var="height"/><l>100</l></list></block></block></block></script></block-definition><block-definition s="all of myself (costume)" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>return new Costume(this.fullImage());</l></block><list></list></block></block></script></block-definition><block-definition s="RGBA %&apos;list&apos; as hex" type="reporter" category="pen"><comment x="0" y="0" w="176" collapsed="false">Returns the list of three to four numbers as a hexadecimal value (Standard or Proper)</comment><header></header><code></code><translations>el:RGB _ ως _&#xD;de:RGB _ als _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>#</l><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="%s as %s value"><l></l><l>hexademical</l></custom-block></autolambda><list></list></block><block s="reportConcatenatedLists"><list><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block var="list"/></block></block></block><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block s="reportListItem"><l><option>last</option></l><block var="list"/></block><l>255</l></list></block><l>100</l></block></list></block></list></block></block></block></list></block></block></script></block-definition><block-definition s="%&apos;num&apos; as %&apos;type&apos; value" type="reporter" category="operators"><comment x="0" y="0" w="251" collapsed="false">NUMERICAL&#xD;Turns the hexadecimal code into an actual number&#xD;e.g.&#xD;00 = 0&#xD;0F = 15&#xD;48 = 72&#xD;96 = 150&#xD;FF = 255&#xD;GG = 0 (Won&apos;t go above FF)&#xD;HEXADECIMAL (Hexademical is the option to choose)&#xD;Turns the actual number into a hexadecimal code&#xD;e.g.&#xD;0 = 00&#xD;15 = 0F&#xD;72 = 48&#xD;150 = 96&#xD;255 = FF&#xD;280 = FF (Won&apos;t go above 255)</comment><header></header><code></code><translations>el:_ ως _ τιμή&#xD;de:_ als _ wert&#xD;</translations><inputs><input type="%s">0A</input><input type="%s" readonly="true">numerical<options>numerical&#xD;hexademical</options></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="type"/><l>numerical</l></list></block><script><block s="doReport"><custom-block s="%n between %n and %n"><custom-block s="%s of %n decimal as number"><block var="num"/><l>16</l></custom-block><l>0</l><l>255</l></custom-block></block></script><script><custom-block s="let %upvar be %s"><l>num</l><custom-block s="%n as %n decimal number"><custom-block s="%n between %n and %n"><block var="num"/><l>0</l><l>255</l></custom-block><l>16</l></custom-block></custom-block><block s="doReport"><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><block var="num"/><l><option>letter</option></l></block></block></block><l></l></list></block><block s="reportJoinWords"><list><l>0</l><block var="num"/></list></block><block var="num"/></block></block></script></block></script></block-definition><block-definition s="%&apos;num&apos; of %&apos;n&apos; decimal as number" type="reporter" category="operators"><comment x="0" y="0" w="251" collapsed="false">Turns the X number of the Y decimal number into an actual number&#xD;e.g.&#xD;X and Y of 1010011010 and 2 respectively = 666&#xD;Χ and Y of 6378 and 7 respectively = 2262&#xD;X and Y of F1F7 and 16 respectively = 61943&#xD;X and Y of -FF0 and 16 respectively = -4080&#xD;X and Y of LAB and 22 respectively = 10395&#xD;X and Y of ZEBRA and 36 respectively = 59454982&#xD;X and Y of 5Y3F and 36 respectively = 277467</comment><header></header><code></code><translations>el:_ του _ δεκαδικού ως νούμερο&#xD;de:_ von _ dezimal als Zahl&#xD;</translations><inputs><input type="%s">100</input><input type="%n">16</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>Result</l><l>letters</l><l>Numbers</l><l>d</l></list></block><block s="doSetVar"><l>letters</l><block s="reportNewList"><list><l>0</l><l>1</l><l>2</l><l>3</l><l>4</l><l>5</l><l>6</l><l>7</l><l>8</l><l>9</l><l>A</l><l>B</l><l>C</l><l>D</l><l>E</l><l>F</l><l>G</l><l>H</l><l>I</l><l>J</l><l>K</l><l>L</l><l>M</l><l>N</l><l>O</l><l>P</l><l>Q</l><l>R</l><l>S</l><l>T</l><l>U</l><l>V</l><l>W</l><l>X</l><l>Y</l><l>Z</l></list></block></block><block s="doSetVar"><l>Numbers</l><block s="reportNumbers"><l>0</l><block s="reportDifference"><block var="n"/><l>1</l></block></block></block><block s="doSetVar"><l>d</l><block s="reportTextAttribute"><l><option>length</option></l><block var="num"/></block></block><block s="doSetVar"><l>Result</l><l>0</l></block><block s="doUntil"><block s="reportVariadicEquals"><list><block var="d"/><l>0</l></list></block><script><block s="doChangeVar"><l>Result</l><block s="reportVariadicProduct"><list><block s="reportListItem"><block s="reportListIndex"><block s="reportLetter"><block var="d"/><block var="num"/></block><block var="letters"/></block><block var="Numbers"/></block><block s="reportPower"><block var="n"/><block s="reportDifference"><block s="reportTextAttribute"><l><option>length</option></l><block var="num"/></block><block var="d"/></block></block></list></block></block><block s="doChangeVar"><l>d</l><l>-1</l></block></script></block></script></block><block s="doReport"><block s="reportIfElse"><custom-block s="%s %s %s"><block var="num"/><l>starts with</l><l>-</l></custom-block><block s="reportJoinWords"><list><l>-</l><block var="Result"/></list></block><block var="Result"/></block></block></script></block-definition><block-definition s="%&apos;num&apos; between %&apos;num1&apos; and %&apos;num2&apos;" type="reporter" category="operators"><comment x="0" y="0" w="180" collapsed="false">Returns the specified number but won&apos;t be smaller than the 2nd input and larger than the 3rd ones</comment><header></header><code></code><translations>el:θέση του _ μεταξύ του _ και _&#xD;de:Position von _ innerhalb _ und _&#xD;</translations><inputs><input type="%n">11</input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="reportVariadicMin"><list><block s="reportVariadicMax"><list><block var="num"/><block var="num1"/></list></block><block var="num2"/></list></block></block></script></block-definition><block-definition s="%&apos;number&apos; as %&apos;n2&apos; decimal number" type="reporter" category="operators"><comment x="0" y="0" w="432" collapsed="false">Returns the number as what Χ would be if Y decimals would be used¨&#xD;&#xD;e.g.&#xD;X/Y of 10/2 = 1010&#xD;X/Y of 37/5 = 122&#xD;X/Y of 100/16 = 64 (See also X AS (Numerical/Hexadecimal) NUMBER for more examples)&#xD;X/Y of 1024/36 = SG</comment><header></header><code></code><translations>el:_ ως _ δεκαδικό νούμερο&#xD;de:_ als _ dezimal Zahl&#xD;</translations><inputs><input type="%n">10</input><input type="%n">2</input></inputs><script><block s="doReport"><custom-block s="%s string %s"><l>uppercase</l><block s="evaluate"><block s="reportJSFunction"><list><l>num</l><l>dec</l></list><l>return Math.floor(num).toString(dec);</l></block><list><block var="number"/><custom-block s="%n between %n and %n"><block var="n2"/><l>2</l><l>36</l></custom-block></list></block></custom-block></block></script></block-definition><block-definition s="$flash factors 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="reportIfElse"><block s="reportIsA"><block var="num"/><l><option>list</option></l></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportNewList"><list><l></l></list></block></list></block><custom-block s="$flash factors of %n"><l></l></custom-block></list></block></autolambda><list></list></block><block var="num"/></block><block s="reportConcatenatedLists"><list><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="num"/><l></l></block><l>0</l></list></block></autolambda><list></list></block><block s="reportNumbers"><block s="reportMonadic"><l><option>sign</option></l><block var="num"/></block><block s="reportQuotient"><block var="num"/><l>2</l></block></block></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportMonadic"><l><option>abs</option></l><block var="num"/></block><l>1</l></list></block><block s="reportNewList"><list></list></block><block s="reportNewList"><list><block var="num"/></list></block></block></list></block></block></block></script></block-definition><block-definition s="my soundscope" type="reporter" category="Soundscopes"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="getLastMessage"></block></block></script></block-definition><block-definition s="Runt Tests" type="command" category="Soundscopes"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="my soundscope"></custom-block><l>getHint()</l></list></block><script><block s="doForEach"><l>item</l><block var="r"/><script><block s="doRun"><block var="item"/><list></list></block></script></block></script><list></list></block></script><scripts><script x="167.9951171875" y="139.4666666666667"><block s="reportJoinWords"><list><l>Welcome </l><custom-block s="setting %s"><l>User</l></custom-block><l> you are logged in to Snap!</l></list></block></script><script x="227" y="98.63333333333338"><block s="doSayFor"><l>Yo</l><l>2</l></block></script><script x="31.0322265625" y="151.46666666666687"><block var="item"/></script><script x="302" y="47.19999999999999"><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="my soundscope"></custom-block><l>\</l></list></block><script><block s="doForEach"><l>item</l><block var="r"/><script><block s="doRun"><block var="item"/><list></list></block></script></block></script><list></list></block></script></scripts></block-definition><block-definition s="talk %&apos;main sprite&apos; to %&apos;another sprite&apos;" type="command" category="Sprites"><header></header><code></code><translations></translations><inputs><input type="%cs"></input><input type="%cs"></input></inputs><script><block s="doTellTo"><block s="reportAskFor"><custom-block s="closest sprite"></custom-block><block s="reifyReporter"><autolambda><custom-block s="closest sprite"></custom-block></autolambda><list></list></block><list></list></block><block var="main sprite"/><list></list></block><block s="doTellTo"><custom-block s="closest sprite"></custom-block><block var="another sprite"/><list></list></block></script><scripts><script x="45.0322265625" y="131.66666666666669"><block s="reportAskFor"><l></l><block s="reifyReporter"><autolambda><custom-block s="closest sprite"></custom-block></autolambda><list></list></block><list></list></block></script><script x="242.6611328125" y="108.50000000000004"><block var="main sprite"/></script></scripts></block-definition><block-definition s="add idea %&apos;things&apos;" type="command" category="Soundscopes"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doAddToList"><block var="things"/><block var="r"/></block></script></block-definition><block-definition s="delete idea %&apos;num&apos;" type="command" category="Soundscopes"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doDeleteFromList"><block var="num"/><block var="r"/></block></script></block-definition><block-definition s="clear all ideas" type="command" category="Soundscopes"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeleteFromList"><l><option>all</option></l><block var="r"/></block></script></block-definition><block-definition s="test block %&apos;test&apos;" type="predicate" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;a&apos; contains %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">apple</input><input type="%s">a</input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l></list><l>return a.match(b)</l></block><list><block var="a"/><block var="b"/></list></block></block><l>0</l></list></block></block></script></block-definition><block-definition s="index of %&apos;thing&apos; in %&apos;string&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">a</input><input type="%s">apple</input></inputs><script><block s="doReport"><block s="reportListIndex"><block var="thing"/><block s="reportTextSplit"><block var="string"/><l><option>letter</option></l></block></block></block></script></block-definition><block-definition s="last costume" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>clone</l></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportDifference"><block s="getCostumeIdx"></block><l>1</l></block></block></script><list></list></block><list></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><autolambda><block s="getCostumeIdx"></block></autolambda><list></list></block><list></list></block><l>0</l></list></block><script><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block><block s="doSetVar"><l>clone</l><block s="newClone"><l><option>myself</option></l></block></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="doWarp"><script><block s="setYPosition"><block s="getCostumeIdx"></block></block><block s="doUntil"><block s="reportVariadicEquals"><list><block s="getCostumeIdx"></block><l>0</l></list></block><script><block s="changeYPosition"><l>1</l></block><block s="doSwitchToCostume"><block s="reportVariadicSum"><list><block s="getCostumeIdx"></block><l>1</l></list></block></block></script></block><block s="changeYPosition"><l>-1</l></block></script></block></script><list></list></block><list></list></block><block s="doSwitchToCostume"><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block><list></list></block></block></script><script><block s="doSwitchToCostume"><block s="reportAskFor"><block var="clone"/><block s="reifyReporter"><autolambda><block s="getCostumeIdx"></block></autolambda><list></list></block><list></list></block></block></script></block><block s="doTellTo"><block var="clone"/><block s="reifyScript"><script><block s="removeClone"></block></script><list></list></block><list></list></block></script></block></script></block-definition><block-definition s="while %&apos;bool&apos; %&apos;code&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="bool"/><list></list></block></block><script><block s="doRun"><block var="code"/><list></list></block></script></block></script></block-definition><block-definition s="if answered %&apos;answer&apos; then %&apos;script&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%anyUE">Yes!</input><input type="%cs"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="evaluate"><block var="answer"/><list></list></block><block s="getLastAnswer"></block></list></block><script><block s="doRun"><block var="script"/><list></list></block></script><list></list></block></script></block-definition><block-definition s="if answered %&apos;answer&apos; then %&apos;script&apos; else %&apos;script2&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%anyUE">Yes!</input><input type="%cs"></input><input type="%cs"></input></inputs><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="evaluate"><block var="answer"/><list></list></block><block s="getLastAnswer"></block></list></block><script><block s="doRun"><block var="script"/><list></list></block></script><script><block s="doRun"><block var="script2"/><list></list></block></script></block></script></block-definition><block-definition s="open %&apos;url&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>url</l></list><l>window.open(url);</l></block><list><block var="url"/></list></block></script></block-definition><block-definition s="https:// %&apos;url&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>https://</l><block var="url"/></list></block></block></script></block-definition><block-definition s="repeat for %&apos;time&apos; seconds %&apos;script&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>end</l></list></block><block s="fork"><block s="reifyScript"><script><block s="doWait"><l>1</l></block><block s="doSetVar"><l>end</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><list></list></block><block s="doUntil"><block var="end"/><script><block s="doRun"><block var="script"/><list></list></block></script></block></script></block-definition><block-definition s="replace %&apos;a&apos; in %&apos;b&apos; with %&apos;c&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">apple</input><input type="%s">tasty apples!</input><input type="%s">banana</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l><l>b</l><l>c</l></list><l>return b.replace(a,c)</l></block><list><block var="a"/><block var="b"/><block var="c"/></list></block></block></script></block-definition><block-definition s="letters %&apos;a&apos; through %&apos;b&apos; of %&apos;c&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">1</input><input type="%n">3</input><input type="%s">apple</input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicLessThanOrEquals"><list><block var="index"/><block var="b"/></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block var="index"/><block var="a"/></list></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block s="reportTextSplit"><block var="c"/><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="ask %&apos;prompt&apos; and wait" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>str</l></list><l>return prompt(str)</l></block><list><block var="prompt"/></list></block></block></script></block-definition><block-definition s="ask %&apos;prompt&apos; and go" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s">what&apos;s your name?</input></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doAsk"><block var="prompt"/></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; ; %&apos;predicate&apos; ; %&apos;iter&apos; %&apos;script&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input><input type="%boolUE"></input><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>i</l><block s="evaluate"><block var="start"/><list></list></block></block><custom-block s="while %boolUE %cs"><block s="evaluate"><block var="predicate"/><list></list></block><script><block s="doRun"><block var="script"/><list></list></block><block s="doSetVar"><l>i</l><block s="evaluate"><block var="iter"/><list></list></block></block></script></custom-block></script></block-definition><block-definition s="number of clones for %&apos;sprite&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">myself</input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportAskFor"><block s="reportObject"><block var="sprite"/></block><block s="reifyReporter"><autolambda><block s="reportGet"><l><option>neighbors</option></l></block></autolambda><list></list></block><list></list></block></block></block></script></block-definition><block-definition s="stretch %&apos;dimension&apos; by %&apos;percent&apos; %" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s">width<options>width&#xD;height</options></input><input type="%n">50</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>width</l></list></block><script><block s="doSwitchToCostume"><block s="reportNewCostumeStretched"><l><option>current</option></l><block var="percent"/><l>100</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="dimension"/><l>height</l></list></block><script><block s="doSwitchToCostume"><block s="reportNewCostumeStretched"><l><option>current</option></l><l>100</l><block var="percent"/></block></block></script><list></list></block></script></block-definition><block-definition s="flip sprite %&apos;direction&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s">vertically<options>vertically&#xD;horizontally</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="direction"/><l>vertically</l></list></block><script><custom-block s="stretch %s by %n %"><l>height</l><l>-100</l></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="direction"/><l>horizontally</l></list></block><script><custom-block s="stretch %s by %n %"><l>width</l><l>-100</l></custom-block></script><list></list></block></script></block-definition><block-definition s="reload site" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>location.reload()</l></block><list></list></block></script></block-definition><block-definition s="pop letter %&apos;index&apos; from %&apos;string&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%s">hello world!</input></inputs><script><block s="doDeclareVariables"><list><l>word</l></list></block><block s="doSetVar"><l>word</l><block s="reportTextSplit"><block var="string"/><l><option>letter</option></l></block></block><block s="doDeleteFromList"><block var="index"/><block var="word"/></block><block s="doReport"><block s="reportJoinWords"><block var="word"/></block></block></script></block-definition><block-definition s="distance from %&apos;object&apos; to %&apos;object2&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><block var="object"/></block><block s="reportAttributeOf"><l><option>x position</option></l><block var="object2"/></block></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block s="reportAttributeOf"><l><option>y position</option></l><block var="object"/></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="object2"/></block></block><l>2</l></block></list></block></block></block></script></block-definition><block-definition s="distance from x: %&apos;x1&apos; y: %&apos;y1&apos; to x: %&apos;x2&apos; y: %&apos;y2&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block s="reportPower"><block s="reportDifference"><block var="x2"/><block var="x1"/></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block var="y2"/><block var="y1"/></block><l>2</l></block></list></block></block></block></script></block-definition><block-definition s="%&apos;1&apos; %&apos;operation&apos; %&apos;2&apos; sqrt? %&apos;roott/f&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s" readonly="true"><options>+&#xD;-&#xD;x&#xD;/&#xD;^</options></input><input type="%s"></input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>after</l></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>+</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportVariadicSum"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>-</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportDifference"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>x</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportVariadicProduct"><list><block var="1"/><block var="2"/></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>/</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportQuotient"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>^</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportPower"><block var="1"/><block var="2"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>+</l></list></block><block s="reportVariadicEquals"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block var="roott/f"/></list></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicSum"><list><block var="1"/><block var="2"/></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>-</l></list></block><block s="reportVariadicEquals"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block var="roott/f"/></list></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportDifference"><block var="1"/><block var="2"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>x</l></list></block><block s="reportVariadicEquals"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block var="roott/f"/></list></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportVariadicProduct"><list><block var="1"/><block var="2"/></list></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>/</l></list></block><block s="reportVariadicEquals"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block var="roott/f"/></list></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportQuotient"><block var="1"/><block var="2"/></block></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="operation"/><l>^</l></list></block><block s="reportVariadicEquals"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block var="roott/f"/></list></block></list></block><script><block s="doSetVar"><l>after</l><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportPower"><block var="1"/><block var="2"/></block></block></block></script><list></list></block><block s="doReport"><block var="after"/></block></script></block-definition><block-definition s="go inbetween %&apos;object3&apos; and %&apos;object4&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="gotoXY"><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="object3"/></block><block s="reportAttributeOf"><l><option>x position</option></l><block var="object4"/></block></list></block><l>2</l></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="object3"/></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="object4"/></block></list></block><l>2</l></block></block></script></block-definition><block-definition s="midpoint of %&apos;object3&apos; and %&apos;object4&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>x position</option></l><block var="object3"/></block><block s="reportAttributeOf"><l><option>x position</option></l><block var="object4"/></block></list></block><l>2</l></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>y position</option></l><block var="object3"/></block><block s="reportAttributeOf"><l><option>y position</option></l><block var="object4"/></block></list></block><l>2</l></block></list></block></block></script></block-definition><block-definition s="speak %&apos;text&apos;" type="command" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%s">Hello World!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>window.speechSynthesis.speak(new SpeechSynthesisUtterance(msg))</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="$brush draw square size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>4</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>90</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush draw pentagon size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>5</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>72</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush draw hexagon size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>6</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>60</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush draw heptagon size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>7</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>51</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush draw decagon size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>10</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>36</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush draw nonagon size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>9</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>40</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush draw octagon size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>8</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>45</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush draw triangle size: %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><l>3</l><script><block s="forward"><block var="squaresize"/></block><block s="turn"><l>120</l></block></script></block><block s="up"></block></script></block-definition><block-definition s="$brush render triangle x: %&apos;x1&apos; y: %&apos;y1&apos; x: %&apos;x2&apos; y: %&apos;y2&apos; x: %&apos;x3&apos; y: %&apos;y3&apos;" type="command" category="Advanced Render"><header></header><code></code><translations></translations><inputs><input type="%s">-30</input><input type="%s">0</input><input type="%s">0</input><input type="%s">-30</input><input type="%s">30</input><input type="%s">0</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="gotoXY"><block var="x1"/><block var="y1"/></block><block s="gotoXY"><block var="x2"/><block var="y2"/></block><block s="gotoXY"><block var="x3"/><block var="y3"/></block><block s="up"></block></script></block-definition><block-definition s="$brush render quadrilateral x: %&apos;x1&apos; y: %&apos;y1&apos; x: %&apos;x2&apos; y: %&apos;y2&apos; x: %&apos;x3&apos; y: %&apos;y3&apos; x: %&apos;x4&apos; y: %&apos;y4&apos;" type="command" category="Advanced Render"><header></header><code></code><translations></translations><inputs><input type="%s">-30</input><input type="%s">0</input><input type="%s">-30</input><input type="%s">-30</input><input type="%s">0</input><input type="%s">-30</input><input type="%s">0</input><input type="%s">0</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="gotoXY"><block var="x1"/><block var="y1"/></block><block s="gotoXY"><block var="x2"/><block var="y2"/></block><block s="gotoXY"><block var="x3"/><block var="y3"/></block><block s="gotoXY"><block var="x4"/><block var="y4"/></block><block s="up"></block></script></block-definition><block-definition s="go inbetween x: %&apos;object3&apos; y: %&apos;object4&apos; x: %&apos;object5&apos; y: %&apos;object6&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s">-30</input><input type="%s">0</input><input type="%s">0</input><input type="%s">-30</input></inputs><script><block s="gotoXY"><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="object3"/><block var="object5"/></list></block><l>2</l></block><block s="reportQuotient"><block s="reportVariadicSum"><list><block var="object4"/><block var="object6"/></list></block><l>2</l></block></block></script></block-definition><block-definition s="$brush render polygon coords: %&apos;coords&apos;" type="command" category="Advanced Render"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doForEach"><l>item</l><block var="coords"/><script><block s="gotoXY"><block s="reportListItem"><l>1</l><block var="item"/></block><block s="reportListItem"><l>2</l><block var="item"/></block></block></script></block><block s="gotoXY"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="coords"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="coords"/></block></block></block><block s="up"></block></script></block-definition><block-definition s="dialog %&apos;text2&apos;" type="command" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello World!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>confirm(msg);</l></block><list><block var="text2"/></list></block></script></block-definition><block-definition s="prompt %&apos;text2&apos;" type="command" category="JavaScript"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello World!</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>prompt(msg)</l></block><list><block var="text2"/></list></block></script></block-definition><block-definition s="initiate log show %&apos;show&apos;" type="command" category="Logs"><header></header><code></code><translations></translations><inputs><input type="%b">false</input></inputs><script><block s="doSetVar"><l>log</l><block s="reportNewList"><list></list></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="show"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doShowVar"><l>log</l></block></script><script><block s="doHideVar"><l>log</l></block></script></block></script></block-definition><block-definition s="log" type="reporter" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block var="log"/></block></script></block-definition><block-definition s="add %&apos;input&apos; to log" type="command" category="Logs"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doForEach"><l>item</l><block var="input"/><script><block s="doAddToList"><block var="item"/><block var="log"/></block></script></block></script></block-definition><block-definition s="clear log" type="command" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>log</l><block s="reportNewList"><list></list></block></block></script></block-definition><block-definition s="$brush draw polygon sides %&apos;sides&apos; size %&apos;squaresize&apos;" type="command" category="Render"><header></header><code></code><translations></translations><inputs><input type="%n">3</input><input type="%s">30</input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="getPenDown"></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><script><block s="down"></block></script><list></list></block><block s="doRepeat"><block var="sides"/><script><block s="forward"><block var="squaresize"/></block><block s="turn"><block s="reportQuotient"><l>360</l><block var="sides"/></block></block></script></block><block s="up"></block></script></block-definition><block-definition s="log empty ?" type="predicate" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="log"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="log"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block-definition><block-definition s="show log" type="command" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doShowVar"><l>log</l></block></script></block-definition><block-definition s="hide log" type="command" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doHideVar"><l>log</l></block></script></block-definition><block-definition s="newest addition to log" type="reporter" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportListAttribute"><l><option>length</option></l><block var="log"/></block><block var="log"/></block></block></script></block-definition><block-definition s="first addition to log" type="reporter" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="log"/></block></block></script></block-definition><block-definition s="addition %&apos;value&apos; of log" type="reporter" category="Logs"><header></header><code></code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doReport"><block s="reportListItem"><block var="value"/><block var="log"/></block></block></script></block-definition><block-definition s="log length exceeds %&apos;value&apos; ?" type="predicate" category="Logs"><header></header><code></code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="log"/></block><block var="value"/></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="value"/><block s="reportListAttribute"><l><option>length</option></l><block var="log"/></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script></block-definition><block-definition s="kill log" type="command" category="Logs"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>log</l><l>Log Killed :(, Use initiate log block to fix restore</l></block></script></block-definition><block-definition s="ask %&apos;value&apos; and report" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doAsk"><block var="value"/></block><block s="doReport"><block s="getLastAnswer"></block></block></script></block-definition><block-definition s="keys %&apos;z&apos; pressed at the same time" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>demomantf2</l></list></block><block s="doSetVar"><l>demomantf2</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><block var="z"/><script><block s="doAddToList"><block var="item"/><block var="demomantf2"/></block></script></block><block s="doIfElse"><block s="reportKeyPressed"><block var="demomantf2"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="when is empty" type="hat" category="Other2"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="is empty?" type="predicate" category="Other2"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNot"><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script></block-definition><block-definition s="$|||||||||||||||||||||||||||||||||||||||||||||||-0.5-255-255-255" type="command" category="Other2"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="$." type="predicate" category="Other2"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="custom dialog, title %s costume %s body %mlt %br button names %mult%txt on button clicks %mult%cmdRing"><l>Hey!</l><l>Mr Blobby</l><l>what are you listening to?</l><list><l>speaking?</l><l>do nothing.</l></list><list><block s="reifyScript"><script><custom-block s="common regular blobby"></custom-block></script><list></list></block><block s="reifyScript"><script><custom-block s="do nothing"></custom-block></script><list></list></block></list></custom-block><block s="doReport"><l></l></block></script></block-definition><block-definition s="track1" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>2</l><script><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>64</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>67</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>2</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>69</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>71</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>69</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>67</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>62</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block></script></block></script></block-definition><block-definition s="track2" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>64</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>67</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>2</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>69</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>71</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>69</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>67</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>62</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>4</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>64</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>2</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>62</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>2</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>59</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>2</l></block></custom-block><custom-block s="play frequency %n Hz for %n secs until done"><custom-block s="hz from note %n"><l>62</l></custom-block><block s="reportQuotient"><block s="reportQuotient"><l>120</l><l>100</l></block><l>2</l></block></custom-block></script></block-definition></blocks><primitives><block-definition s="move %&apos;steps&apos; steps" type="command" category="motion" selector="forward"><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">10</input></inputs><script><block s="doPrimitive"><l><bool>false</bool></l><l>forward</l></block><block s="doGotoObject"><block s="reportVariadicSum"><list><block s="getPosition"></block><block s="reportVariadicProduct"><list><block s="reportNewList"><list><block s="reportMonadic"><l><option>sin</option></l><block s="direction"></block></block><block s="reportMonadic"><l><option>cos</option></l><block s="direction"></block></block></list></block><block var="steps"/></list></block></list></block></block></script></block-definition><block-definition s="go to x: %&apos;x&apos; y: %&apos;y&apos;" type="command" category="motion" selector="gotoXY" primitive="gotoXY"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>gotoXY</l></block><block s="doGotoObject"><block s="reportNewList"><list><block var="x"/><block var="y"/></list></block></block></script></block-definition><block-definition s="go to %&apos;dest&apos;" type="command" category="motion" selector="doGotoObject"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">$_random position<options>§_destinationsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>pattern</l></list></block><block s="doSetVar"><l>pattern</l><block s="reportListItem"><block s="reportGet"><l><option>name</option></l></block><block var="_embroider"/></block></block><block s="doIfElse"><block s="reportIsA"><block var="pattern"/><l><option>list</option></l></block><script><block s="doSetGlobalFlag"><l><option>log pen vectors</option></l><l><bool>true</bool></l></block><block s="down"></block><block s="doRun"><block s="reifyScript"><script><block s="doWarp"><script><custom-block s="%s stitch to %s in steps of %n width %n center %b"><l></l><block var="dest"/><l></l><l></l><l/></custom-block></script></block></script><list></list></block><block var="pattern"/></block><block s="up"></block></script><script><custom-block s="primitive go to %s"><block var="dest"/></custom-block></script></block></script></block-definition><block-definition s="change x by %&apos;delta&apos;" type="command" category="motion" selector="changeXPosition"><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">10</input></inputs><script><block s="doPrimitive"><l><bool>false</bool></l><l>changeXPosition</l></block><block s="setXPosition"><block s="reportVariadicSum"><list><block s="xPosition"></block><block var="delta"/></list></block></block></script></block-definition><block-definition s="set x to %&apos;x&apos;" type="command" category="motion" selector="setXPosition"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doPrimitive"><l><bool>false</bool></l><l>setXPosition</l></block><block s="doGotoObject"><block s="reportNewList"><list><block var="x"/><block s="yPosition"></block></list></block></block></script></block-definition><block-definition s="change y by %&apos;delta&apos;" type="command" category="motion" selector="changeYPosition"><header></header><code></code><translations></translations><inputs><input type="%n">10</input><input type="%n">10</input></inputs><script><block s="doPrimitive"><l><bool>false</bool></l><l>changeYPosition</l></block><block s="setYPosition"><block s="reportVariadicSum"><list><block s="yPosition"></block><block var="delta"/></list></block></block></script></block-definition><block-definition s="set y to %&apos;y&apos;" type="command" category="motion" selector="setYPosition"><header></header><code></code><translations></translations><inputs><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doPrimitive"><l><bool>false</bool></l><l>setYPosition</l></block><block s="doGotoObject"><block s="reportNewList"><list><block s="xPosition"></block><block var="y"/></list></block></block></script></block-definition><block-definition s="say %&apos;msg&apos; for %&apos;time&apos; secs" type="command" category="looks" selector="doSayFor" primitive="doSayFor"><header></header><code></code><translations></translations><inputs><input type="%s">Hello!</input><input type="%n">2</input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>doSayFor</l></block><block s="bubble"><block var="msg"/></block><block s="doWait"><block var="time"/></block><custom-block s="stop speaking"></custom-block></script></block-definition><block-definition s="think %&apos;msg&apos; for %&apos;time&apos; secs" type="command" category="looks" selector="doThinkFor" primitive="doThinkFor"><header></header><code></code><translations></translations><inputs><input type="%s">Hmm...</input><input type="%n">2</input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>doThinkFor</l></block><block s="doThink"><block var="msg"/></block><block s="doWait"><block var="time"/></block><custom-block s="stop speaking"></custom-block></script></block-definition><block-definition s="play sound %&apos;target&apos; until done" type="command" category="sound" selector="doPlaySoundUntilDone" primitive="doPlaySoundUntilDone"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_soundsMenu</options></input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>doPlaySoundUntilDone</l></block><block s="doDeclareVariables"><list><l>sound</l></list></block><block s="doSetVar"><l>sound</l><block s="reportIfElse"><block s="reportIsA"><block var="target"/><l><option>sound</option></l></block><block var="target"/><block s="reportIfElse"><block s="reportIsA"><block var="target"/><l><option>list</option></l></block><block s="reportNewSoundFromSamples"><block var="target"/><l>44100</l></block><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportGetSoundAttribute"><l><option>name</option></l><l></l></block><block var="target"/></list></block></autolambda><list></list></block><block s="reportGet"><l><option>sounds</option></l></block></block></block></block></block><block s="doIf"><block s="reportIsA"><block var="sound"/><l><option>sound</option></l></block><script><block s="playSound"><block var="sound"/></block><block s="doWait"><block s="reportGetSoundAttribute"><l><option>duration</option></l><block var="sound"/></block></block></script><list></list></block></script></block-definition><block-definition s="call %#1 %#2" type="reporter" category="control" selector="evaluate" primitive="evaluate"><header></header><code></code><translations></translations><inputs><input type="%repRing" readonly="true" irreplaceable="true"></input><input type="%mult%s" readonly="true" expand="with inputs"></input></inputs></block-definition><block-definition s="create a clone of %&apos;target&apos;" type="command" category="control" selector="createClone" primitive="createClone"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">$_myself<options>§_clonablesMenu</options></input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>createClone</l></block><block s="doChangeVar"><l>clones</l><l>1</l></block><block s="doReport"><block s="newClone"><block var="target"/></block></block></script></block-definition><block-definition s="delete this clone" type="command" category="control" selector="removeClone" primitive="removeClone"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>removeClone</l></block></script></block-definition></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="146952"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="146953"></list></costumes><sounds><list struct="atomic" id="146954"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="146959"><costumes><list id="146960"><item><ref mediaID="sprunki oc (flag)_Sprite_cst_Polo_esveegee"></ref></item></list></costumes><sounds><list id="146961"><item><ref mediaID="sprunki oc (flag)_Sprite_snd_mixed-audio "></ref></item></list></sounds><blocks></blocks><variables></variables><scripts><script x="257" y="97.33333333333337"><block s="receiveGo"></block><custom-block s="track1"></custom-block><custom-block s="track2"></custom-block></script><script x="382" y="95.33333333333337"><block s="receiveKey"><l><option>space</option></l><list></list></block><block s="playSound"><l>mixed-audio </l></block><block s="doWait"><l>0.1</l></block><custom-block s="track1"></custom-block><custom-block s="track2"></custom-block></script></scripts></sprite></sprites></stage><variables><variable name="1"><l>0</l></variable><variable name="2"><l>0</l></variable><variable name="3"><l>0</l></variable><variable name="4"><l>0</l></variable><variable name="5"><l>0</l></variable><variable name="6"><l>0</l></variable><variable name="7"><l>0</l></variable><variable name="8"><l>0</l></variable><variable name="ALLBLOCKS"><l></l></variable><variable name="ALLVARS"><list struct="atomic" id="146979"></list></variable><variable name="SciSnap!Properties"><list id="146980"><item><list struct="atomic" id="146981">key,value</list></item><item><list struct="atomic" id="146982">typeOfData,not set</list></item><item><list struct="atomic" id="146983">width,not set</list></item><item><list struct="atomic" id="146984">height,not set</list></item><item><list struct="atomic" id="146985">minValue,not set</list></item><item><list struct="atomic" id="146986">maxValue,not set</list></item><item><list struct="atomic" id="146987">columns,0</list></item><item><list struct="atomic" id="146988">rows,0</list></item><item><list struct="atomic" id="146989">maxSetValue,500</list></item></list></variable><variable name="SciSnap!Data"><list struct="atomic" id="146990"></list></variable><variable name="SciSnap!Messages"><list struct="atomic" id="146991">&lt;transpose vector or matrix&gt; signals:     ERROR: structure is not rectangular!    ,&lt;transpose vector or matrix&gt; signals:     ERROR: structure is not rectangular!    ,&lt;transpose vector or matrix&gt; signals:       ERROR: vector or matrix required!      ,&lt;transpose vector or matrix&gt; signals:     ERROR: structure is not rectangular!    ,&lt;remove/create category&gt; signals:         ERROR: unknown category!        ,&lt;remove/create category&gt; signals:         ERROR: unknown category!        </list></variable><variable name="__module__beetle__"><l>libraries/beetle/init.js</l></variable><variable name="_embroider"><list struct="atomic" id="146992"></list></variable><variable name="THE EMPTY STREAM"><list struct="atomic" id="146993">*the empty stream*</list></variable><variable name="counter"><l>0</l></variable><variable name="✐ last crayon" transient="true"/><variable name="✐ crayon colors"><list id="146994"><item><list struct="atomic" id="146995">0,0,0,black,0</list></item><item><list struct="atomic" id="146996">18,18,18,gray7,1</list></item><item><list struct="atomic" id="146997">36,36,36,gray14,2</list></item><item><list struct="atomic" id="146998">54,54,54,gray21,3</list></item><item><list struct="atomic" id="146999">72,72,72,gray28,4</list></item><item><list struct="atomic" id="147000">92,92,92,gray36,5</list></item><item><list struct="atomic" id="147001">109,109,109,gray43,6</list></item><item><list struct="atomic" id="147002">127,127,127,gray50,7</list></item><item><list struct="atomic" id="147003">145,145,145,gray57,8</list></item><item><list struct="atomic" id="147004">163,163,163,gray64,9</list></item><item><list struct="atomic" id="147005">181,181,181,gray71,10</list></item><item><list struct="atomic" id="147006">200,200,200,gray78,11</list></item><item><list struct="atomic" id="147007">218,218,218,gray85,12</list></item><item><list struct="atomic" id="147008">236,236,236,gray92,13</list></item><item><list struct="atomic" id="147009">255,255,255,white,14</list></item><item><list struct="atomic" id="147010">255,20,147,deep pink,15</list></item><item><list struct="atomic" id="147011">255,105,180,hot pink,16</list></item><item><list struct="atomic" id="147012">255,0,127,bright pink,17</list></item><item><list struct="atomic" id="147013">227,11,93,raspberry,18</list></item><item><list struct="atomic" id="147014">229,43,80,amaranth,19</list></item><item><list struct="atomic" id="147015">255,0,0,red,20</list></item><item><list struct="atomic" id="147016">144,0,32,burgundy,21</list></item><item><list struct="atomic" id="147017">153,0,0,cherry,22</list></item><item><list struct="atomic" id="147018">164,0,0,dark candy apple red,23</list></item><item><list struct="atomic" id="147019">192,0,0,sanguine,24</list></item><item><list struct="atomic" id="147020">128,0,0,maroon,25</list></item><item><list struct="atomic" id="147021">201,0,22,crimson,26</list></item><item><list struct="atomic" id="147022">217,77,17,Lists,27</list></item><item><list struct="atomic" id="147023">255,8,0,candy apple red,28</list></item><item><list struct="atomic" id="147024">255,56,0,coquelicot,29</list></item><item><list struct="atomic" id="147025">139,69,19,saddle brown,30</list></item><item><list struct="atomic" id="147026">123,63,0,chocolate,31</list></item><item><list struct="atomic" id="147027">107,68,35,kobicha,32</list></item><item><list struct="atomic" id="147028">112,66,20,sepia,33</list></item><item><list struct="atomic" id="147029">149,69,53,chestnut,34</list></item><item><list struct="atomic" id="147030">101,67,33,dark brown,35</list></item><item><list struct="atomic" id="147031">150,75,0,brown,36</list></item><item><list struct="atomic" id="147032">153,101,21,golden brown,37</list></item><item><list struct="atomic" id="147033">184,115,51,cinnamon,38</list></item><item><list struct="atomic" id="147034">210,105,30,copper,39</list></item><item><list struct="atomic" id="147035">255,127,0,orange,40</list></item><item><list struct="atomic" id="147036">255,88,0,Pantone orange,41</list></item><item><list struct="atomic" id="147037">255,117,24,pumpkin,42</list></item><item><list struct="atomic" id="147038">243,118,29,Variables,43</list></item><item><list struct="atomic" id="147039">232,97,0,Spanish orange,44</list></item><item><list struct="atomic" id="147040">204,85,0,burnt orange,45</list></item><item><list struct="atomic" id="147041">203,65,11,sinopia,46</list></item><item><list struct="atomic" id="147042">204,119,34,ochre,47</list></item><item><list struct="atomic" id="147043">237,145,33,carrot,48</list></item><item><list struct="atomic" id="147044">242,133,0,tangerine,49</list></item><item><list struct="atomic" id="147045">255,255,0,yellow,50</list></item><item><list struct="atomic" id="147046">230,168,34,Control,51</list></item><item><list struct="atomic" id="147047">184,134,11,dark goldenrod,52</list></item><item><list struct="atomic" id="147048">218,165,32,goldenrod,53</list></item><item><list struct="atomic" id="147049">244,196,48,saffron,54</list></item><item><list struct="atomic" id="147050">236,213,64,sandstorm,55</list></item><item><list struct="atomic" id="147051">255,219,88,mustard,56</list></item><item><list struct="atomic" id="147052">255,215,0,gold,57</list></item><item><list struct="atomic" id="147053">254,227,62,egg yolk,58</list></item><item><list struct="atomic" id="147054">251,225,8,rubber duck,59</list></item><item><list struct="atomic" id="147055">0,255,0,lime,60</list></item><item><list struct="atomic" id="147056">141,182,0,apple green,61</list></item><item><list struct="atomic" id="147057">98,194,19,Operators,62</list></item><item><list struct="atomic" id="147058">34,139,34,forest green,63</list></item><item><list struct="atomic" id="147059">0,128,0,green,64</list></item><item><list struct="atomic" id="147060">0,100,0,dark green,65</list></item><item><list struct="atomic" id="147061">3,192,60,dark pastel green,66</list></item><item><list struct="atomic" id="147062">80,200,120,emerald,67</list></item><item><list struct="atomic" id="147063">62,180,137,mint,68</list></item><item><list struct="atomic" id="147064">0,161,120,Pen,69</list></item><item><list struct="atomic" id="147065">0,255,255,aqua,70</list></item><item><list struct="atomic" id="147066">0,139,139,dark cyan,71</list></item><item><list struct="atomic" id="147067">0,123,167,cerulean,72</list></item><item><list struct="atomic" id="147068">113,166,210,iceberg,73</list></item><item><list struct="atomic" id="147069">4,148,220,Sensing,74</list></item><item><list struct="atomic" id="147070">0,128,128,teal,75</list></item><item><list struct="atomic" id="147071">135,206,250,light sky blue,76</list></item><item><list struct="atomic" id="147072">0,191,255,deep sky blue,77</list></item><item><list struct="atomic" id="147073">30,144,255,dodger blue,78</list></item><item><list struct="atomic" id="147074">0,127,255,azure,79</list></item><item><list struct="atomic" id="147075">0,0,255,blue,80</list></item><item><list struct="atomic" id="147076">25,25,112,midnight blue,81</list></item><item><list struct="atomic" id="147077">0,51,153,dark powder blue,82</list></item><item><list struct="atomic" id="147078">0,71,171,cobalt,83</list></item><item><list struct="atomic" id="147079">21,96,189,denim,84</list></item><item><list struct="atomic" id="147080">0,0,128,navy blue,85</list></item><item><list struct="atomic" id="147081">70,130,180,steel blue,86</list></item><item><list struct="atomic" id="147082">74,108,212,Motion,87</list></item><item><list struct="atomic" id="147083">100,149,237,cornflower,88</list></item><item><list struct="atomic" id="147084">106,90,205,slate blue,89</list></item><item><list struct="atomic" id="147085">128,0,255,violet,90</list></item><item><list struct="atomic" id="147086">143,86,227,Looks,91</list></item><item><list struct="atomic" id="147087">111,45,168,grape,92</list></item><item><list struct="atomic" id="147088">75,0,130,indigo,93</list></item><item><list struct="atomic" id="147089">160,32,240,x11 purple,94</list></item><item><list struct="atomic" id="147090">255,0,255,magenta,95</list></item><item><list struct="atomic" id="147091">153,50,204,dark orchid,96</list></item><item><list struct="atomic" id="147092">207,74,217,Sound,97</list></item><item><list struct="atomic" id="147093">127,0,127,purple,98</list></item><item><list struct="atomic" id="147094">139,0,139,dark magenta,99</list></item><item><list struct="atomic" id="147095">0,255,255,cyan,100</list></item><item><list struct="atomic" id="147096">255,0,255,fuchia,101</list></item><item><list struct="atomic" id="147097">18,18,18,grey7,102</list></item><item><list struct="atomic" id="147098">36,36,36,grey14,103</list></item><item><list struct="atomic" id="147099">54,54,54,grey21,104</list></item><item><list struct="atomic" id="147100">72,72,72,grey28,105</list></item><item><list struct="atomic" id="147101">92,92,92,grey36,106</list></item><item><list struct="atomic" id="147102">109,109,109,grey43,107</list></item><item><list struct="atomic" id="147103">127,127,127,grey50,108</list></item><item><list struct="atomic" id="147104">145,145,145,grey57,109</list></item><item><list struct="atomic" id="147105">163,163,163,grey64,110</list></item><item><list struct="atomic" id="147106">181,181,181,grey71,111</list></item><item><list struct="atomic" id="147107">200,200,200,grey78,112</list></item><item><list struct="atomic" id="147108">218,218,218,grey85,113</list></item><item><list struct="atomic" id="147109">236,236,236,grey92,114</list></item></list></variable><variable name="project data"><list struct="atomic" id="147110">Sprite,scripts,block,snap,current microphone sample,&quot;&lt;scriptsonly app=&quot;&quot;Snap! 10.7.2, https://snap.berkeley.edu&quot;&quot; version=&quot;&quot;2&quot;&quot;&gt;&lt;script x=&quot;&quot;416&quot;&quot; y=&quot;&quot;347.83333333333326&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;inline block (Command) %cs&quot;&quot;&gt;&lt;script&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;block s=&quot;&quot;doReport&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... (2)&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/block&gt;&lt;/script&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;591&quot;&quot; y=&quot;&quot;347.1666666666665&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;... %s&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;inline block (boolean) %cs&quot;&quot;&gt;&lt;script&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;block s=&quot;&quot;doReport&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... (2)&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/block&gt;&lt;/script&gt;&lt;/custom-block&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;797&quot;&quot; y=&quot;&quot;348&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;... %s&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;inline block %cs&quot;&quot;&gt;&lt;script&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;/custom-block&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;515&quot;&quot; y=&quot;&quot;475.5&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;inline block (Event Hat) %cs&quot;&quot;&gt;&lt;script&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;block s=&quot;&quot;doReport&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... (2)&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/block&gt;&lt;/script&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;... // %txt&quot;&quot;&gt;&lt;l&gt;Runs When I Dont Know When&lt;/l&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;643&quot;&quot; y=&quot;&quot;158.83333333333337&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;Dig It Dig It Dig It&quot;&quot;&gt;&lt;comment w=&quot;&quot;90&quot;&quot; collapsed=&quot;&quot;false&quot;&quot;&gt;Joke Block,&lt;/comment&gt;&lt;/custom-block&gt;&lt;custom-block s=&quot;&quot;...&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;147&quot;&quot; y=&quot;&quot;389.66666666666674&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;stop this script if %b&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... (3)&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;150&quot;&quot; y=&quot;&quot;510.33333333333326&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... %s&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;project data&quot;&quot;&gt;&lt;comment w=&quot;&quot;80&quot;&quot; collapsed=&quot;&quot;false&quot;&quot;&gt;Get The Project Data.&amp;#xD;IMPORTANT!:&amp;#xD;Do NOT Delete Any Script In Stage That Uses The Project Data Variable or you will NOT be able to use this block&lt;/comment&gt;&lt;/custom-block&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;163&quot;&quot; y=&quot;&quot;266&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... %s&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;cast %s to boolean&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... (2)&quot;&quot;&gt;&lt;/custom-block&gt;&lt;comment w=&quot;&quot;90&quot;&quot; collapsed=&quot;&quot;false&quot;&quot;&gt;Cast anything into boolean.&lt;/comment&gt;&lt;/custom-block&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;166&quot;&quot; y=&quot;&quot;209&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... %s&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;current microphone sample&quot;&quot;&gt;&lt;/custom-block&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;802&quot;&quot; y=&quot;&quot;501&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;... %s&quot;&quot;&gt;&lt;custom-block s=&quot;&quot;empty list&quot;&quot;&gt;&lt;comment w=&quot;&quot;90&quot;&quot; collapsed=&quot;&quot;false&quot;&quot;&gt;Return A Empty List&lt;/comment&gt;&lt;/custom-block&gt;&lt;/custom-block&gt;&lt;/script&gt;&lt;script x=&quot;&quot;178&quot;&quot; y=&quot;&quot;131.66666666666669&quot;&quot;&gt;&lt;block s=&quot;&quot;doPlaySoundUntilDone&quot;&quot;&gt;&lt;l&gt;&lt;/l&gt;&lt;/block&gt;&lt;/script&gt;&lt;/scriptsonly&gt;&quot;,1747770488179</list></variable><variable name="n"><l>0</l></variable><variable name="c"><l>0</l></variable><variable name="m"><l>0</l></variable><variable name="w"><l>0</l></variable><variable name="✐ last set as" transient="true"/><variable name="✐ fair?" transient="true"/><variable name="✐ color scale" transient="true"/><variable name="✐ HSL" transient="true"/><variable name="✐ last X11" transient="true"/><variable name="✐ raw HSL" transient="true"/><variable name="r"><l></l></variable><variable name="log"><list struct="atomic" id="147111">dodeca,dev,dodeca,dev,dodeca,dev</list></variable></variables></scene></scenes></project><media name="sprunki oc (flag)" app="Snap! 10.7.2, https://snap.berkeley.edu" version="2"><costume name="Polo_esveegee" center-x="88" center-y="180" image="data:image/png;base64,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" mediaID="sprunki oc (flag)_Sprite_cst_Polo_esveegee"/><sound name="mixed-audio " sound="data:audio/mpeg;base64,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" mediaID="sprunki oc (flag)_Sprite_snd_mixed-audio "/></media></snapdata>