<snapdata remixID="12379183"><project name="fancy assert block" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><notes>assert block that gives you debugging info</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAACqElEQVR4Xu3XMY7aUABF0e99QA/LAYkN0bAgEKuBjUBBRqSYYmaSKIWvZB3Xlp58/xHG0+vjGi4FogITgFF5s+8CAIKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAJjmNw4gA2kBANP8xgFkIC0AYJrfOIAMpAUATPMbB5CBtACAaX7jADKQFgAwzW8cQAbSAgCm+Y0DyEBaAMA0v3EAGUgLAPhD/u12O47H4zgcDukBLX0cwD+c8H6/H6/X633H7XYb1+t1rNfrpZuY9fkA/Evu3W735Y5pmsbz+Rzn83nWw1riGID/CfDxeIzL5bJEE7M+E4D/+Aq+3+/vV/BqtZr1gJY+BuAPJ7zZbMbpdBrfvYKXjmLO5wNwztq2vv6f/vjK+/2Z51IgKOAXMIhu8rMAgDSkBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNb/wXK14Ct+2fpIIAAAAASUVORK5CYII=</thumbnail><scenes select="1"><scene name="fancy assert block"><notes>assert block that gives you debugging info</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="assert %&apos;predicate&apos; label: %&apos;label&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>parts</l><l>block</l><l>args</l><l>evaluated args</l></list></block><block s="doSetVar"><l>parts</l><block s="reportTextSplit"><block var="predicate"/><l><option>blocks</option></l></block></block><block s="doSetVar"><l>block</l><block s="reportListItem"><l>1</l><block var="parts"/></block></block><block s="doSetVar"><l>args</l><block s="reportCDR"><block var="parts"/></block></block><block s="doSetVar"><l>evaluated args</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>argument</l><block var="args"/><script><block s="doAddToList"><custom-block s="call or return %repRing"><block var="argument"/></custom-block><block var="evaluated args"/></block></script><comment w="107" collapsed="false">evaluate each argument on its own</comment></block><block s="doIf"><block s="evaluate"><block s="reportJoinWords"><custom-block s="lists $arrowRight split list creation blocks %l"><block s="reportCONS"><block var="block"/><block var="evaluated args"/></block></custom-block></block><list></list></block><script><block s="doReport"><l></l></block></script><comment w="132" collapsed="false">return if the predicate is true (assertion succeeded)</comment></block><block s="doDeclareVariables"><list><l>error message</l></list></block><block s="doSetVar"><l>error message</l><block s="reportJoinWords"><list><l>assertion `</l><block var="label"/><l>&apos; failed</l></list></block><comment w="139" collapsed="false">otherwise, build a nice error message and throw it</comment></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="evaluated args"/></block><l>1</l></list></block><script><block s="doSetVar"><l>error message</l><block s="reportJoinWords"><list><block var="error message"/><l>: argument = </l><custom-block s="serialise %l"><block s="reportListItem"><l>1</l><block var="evaluated args"/></block></custom-block></list></block></block></script><script><block s="doIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="evaluated args"/></block><l>2</l></list></block><script><block s="doSetVar"><l>error message</l><block s="reportJoinWords"><list><block var="error message"/><l>: LHS = </l><custom-block s="serialise %l"><block s="reportListItem"><l>1</l><block var="evaluated args"/></block></custom-block><l>, RHS = </l><custom-block s="serialise %l"><block s="reportListItem"><l>2</l><block var="evaluated args"/></block></custom-block></list></block></block></script><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="evaluated args"/></block><l>2</l></list></block><script><block s="doSetVar"><l>error message</l><block s="reportJoinWords"><list><block var="error message"/><l>: args = </l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="serialise %l"><l/></custom-block></autolambda><list></list></block><block var="evaluated args"/></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></script></block></script></block><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="error message"/></list></block></script><scripts><comment x="513" y="427.2000000000001" w="112" collapsed="false">apologies for this nasty nested IF/ELSE</comment></scripts></block-definition><block-definition s="call or return %&apos;item&apos;" type="reporter" category="control"><comment w="447" collapsed="false">if item is a reporter or predicate then return the result of calling it,&#xD;if item is a list where the head is a reporter or predicate, join it and return the result of calling it,&#xD;otherwise return item as-is</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportIsA"><block var="item"/><l><option>reporter</option></l></block><block s="reportIsA"><block var="item"/><l><option>predicate</option></l></block></list></block><script><block s="doReport"><block s="evaluate"><block var="item"/><list></list></block></block></script></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportIsA"><block var="item"/><l><option>list</option></l></block><block s="reportVariadicOr"><list><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="item"/></block><l><option>reporter</option></l></block><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="item"/></block><l><option>predicate</option></l></block></list></block></list></block><script><block s="doReport"><block s="evaluate"><block s="reportJoinWords"><block var="item"/></block><list></list></block></block></script></block><block s="doReport"><block var="item"/></block></script></block-definition><block-definition s="serialise %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="199.66666666666654" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).&#xD;&#xD;Will not work on circular lists.</comment><header></header><code></code><translations>ca:notació textual de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportAtomicCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="serialise %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><block s="doIf"><block s="reportIsA"><block var="data"/><l><option>text</option></l></block><script><block s="doReport"><block s="reportJoinWords"><list><l>"</l><block s="reportPipe"><block var="data"/><list><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l><option>letter</option></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><l>\</l></list></block><l>\\</l><l></l></block></autolambda><list></list></block><l/></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><l></l><l>"</l></list></block><l>\"</l><l></l></block></autolambda><list></list></block><l/></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list></list></block></autolambda><list></list></block></list></block><l>"</l></list></block></block></script></block><block s="doIf"><block s="reportIsA"><block var="data"/><l><option>number</option></l></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doIf"><block s="reportIsA"><block var="data"/><l><option>Boolean</option></l></block><script><block s="doReport"><block s="reportIfElse"><block var="data"/><l>t</l><l>f</l></block></block></script></block><custom-block s="error %txt"><block s="reportJoinWords"><list><l>can&apos;t make this properly printable: </l><block var="data"/></list></block></custom-block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="lists $arrowRight split list creation blocks %&apos;items&apos;" type="reporter" category="lists"><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="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportNewList"><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><l/></block><l/></block></list></block><l></l></block></autolambda><list></list></block><block var="items"/></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="460"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="461"></list></costumes><sounds><list struct="atomic" id="462"></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="0" color="80,80,80,1" pen="tip" id="467"><costumes><list struct="atomic" id="468"></list></costumes><sounds><list struct="atomic" id="469"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><custom-block s="assert %boolUE label: %s"><block s="reportVariadicEquals"><list><l>2</l><l>2</l></list></block><l>check integer equality</l></custom-block></script><script x="20" y="63"><custom-block s="assert %boolUE label: %s"><block s="reportVariadicEquals"><list><l>3</l><l>2</l></list></block><l>check integer equality again</l></custom-block></script><script x="20" y="106"><custom-block s="assert %boolUE label: %s"><block s="reportVariadicAnd"><list><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><l>check many Booleans</l></custom-block></script><script x="20" y="168"><custom-block s="assert %boolUE label: %s"><block s="reportMouseDown"></block><l>no args</l></custom-block></script><script x="20" y="207.83333333333326"><custom-block s="assert %boolUE label: %s"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>space</option></l></block><block s="reportKeyPressed"><l><option>enter</option></l></block></list></block><l>non-constant args</l></custom-block></script><script x="20" y="269.83333333333326"><custom-block s="assert %boolUE label: %s"><block s="reportVariadicEquals"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>three</l></list></block><block s="reportNumbers"><l>1</l><l>3</l></block></list></block><l>compare lists</l></custom-block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="fancy assert block" app="Snap! 8.2, https://snap.berkeley.edu" version="2"></media></snapdata>