<snapdata remixID="13481374"><project name="json extension" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>this extension is slimilar to lists except that it uses json and its whole purpose is bring json to snap, see inside</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAzlJREFUeF7t10FKY2EQhdFfUXDiFtyPGxB0oAbcidvJJrIeceIkBAevwVkPlOZy6QI5GaeqyHkfPHK2bdu2fAgMCZwJcEje2S8BAQphVECAo/yOC1ADowICHOV3XIAaGBUQ4Ci/4wLUwKiAAEf5HRegBkYFBDjK77gANTAqIMBRfscFqIFRAQGO8jsuQA2MCghwlN9xAWpgVECAo/yOC1ADowICHOV3XIAaGBUQ4Ci/4wLUwKiAAEf5HRegBkYFBDjK77gANTAqIMBRfscFqIFRAQGO8jsuQA2MCghwlN9xAWpgVECAo/yOC1ADowICHOV3XIAaGBUQ4Ci/4wLUwKiAAEf5HRegBkYFBDjK77gANTAqIMBRfscFqIFRAQGO8jsuQA2MCghwlN9xAWpgVECAo/yOC1ADowICHOV3XIAaGBUQ4Ci/4wLUwKiAAL/h3+/36/39fd3e3q6bm5vRh/Sbjwvwm6f78fGxXl5e1ufn53p7e1v39/fr4uJiPT09raurq9/cxH/9bQL8gftwOKzX19d1fX3917eOx+N6fn5e27Z9hemTCwgwCPB0Oq3Hx8d1fn6+7u7ucn2TS4D/+Ap+eHj4egXvdrt1eXkpnZKAAP0JKaWUrRFg5maqJCDAEqQ1mYAAMzdTJQEBliCtyQQEmLmZKgkIsARpTSYgwMzNVElAgCVIazIBAWZupkoCAixBWpMJCDBzM1USEGAJ0ppMQICZm6mSgABLkNZkAgLM3EyVBARYgrQmExBg5maqJCDAEqQ1mYAAMzdTJQEBliCtyQQEmLmZKgkIsARpTSYgwMzNVElAgCVIazIBAWZupkoCAixBWpMJCDBzM1USEGAJ0ppMQICZm6mSgABLkNZkAgLM3EyVBARYgrQmExBg5maqJCDAEqQ1mYAAMzdTJQEBliCtyQQEmLmZKgkIsARpTSYgwMzNVElAgCVIazIBAWZupkoCAixBWpMJCDBzM1USEGAJ0ppMQICZm6mSgABLkNZkAgLM3EyVBARYgrQmExBg5maqJCDAEqQ1mYAAMzdTJQEBliCtyQQEmLmZKgkIsARpTSYgwMzNVElAgCVIazIBAWZupkoCfwBN/Be3THjJawAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="json extension"><notes>this extension is slimilar to lists except that it uses json and its whole purpose is bring json to snap, see inside</notes><palette><category name="JSON" color="33,31,255,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block var="json"/></block></block></script></block-definition><block-definition s="find %&apos;marker&apos; in json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block var="marker"/></list></block></autolambda><list></list></block><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></block></script></block-definition><block-definition s="item %&apos;marker&apos; of json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="marker"/><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></script></block-definition><block-definition s="map %&apos;command&apos; over json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportMap"><block var="command"/><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></block></script></block-definition><block-definition s="multimap %&apos;command&apos; over json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%mult%repRing"></input><input type="%mlt"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block><block s="doForEach"><l>item</l><block var="command"/><script><block s="doSetVar"><l>a</l><block s="reportMap"><block var="item"/><block var="a"/></block></block></script></block><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block var="a"/></block></block></script></block-definition><block-definition s="empty json" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="json %mult%s"><list></list></custom-block></block></script></block-definition><block-definition s="%&apos;menu&apos; of json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>length&#xD;sorted&#xD;shuffled&#xD;reversed&#xD;list</options></input><input type="%mlt"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="menu"/><l>length</l></list></block><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></script><list><block s="reportVariadicEquals"><list><block var="menu"/><l>sorted</l></list></block><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportListAttribute"><l><option>sorted</option></l><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="menu"/><l>shuffled</l></list></block><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportListAttribute"><l><option>shuffled</option></l><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="menu"/><l>reversed</l></list></block><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></block></script><block s="reportVariadicEquals"><list><block var="menu"/><l>list</l></list></block><script><block s="doReport"><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></script></list></block></script></block-definition><block-definition s="key %&apos;key&apos; value %&apos;value&apos;" type="reporter" category="JSON"><header></header><code></code><translations></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="keep %&apos;marker&apos; from json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportKeep"><block var="marker"/><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></block></script></block-definition><block-definition s="json %&apos;json&apos; contains %&apos;marker&apos;" type="predicate" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block><block var="marker"/></block></block></script></block-definition><block-definition s="is json %&apos;json&apos; empty?" type="predicate" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportListIsEmpty"><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></script></block-definition><block-definition s="add %&apos;item&apos; to json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%mlt"></input></inputs><script><block s="doSetVar"><l>json</l><custom-block s="%s of json %mlt"><l>list</l><block var="json"/></custom-block></block><block s="doAddToList"><block var="item"/><block var="json"/></block><block s="doSetVar"><l>json</l><block s="reportListAttribute"><l><option>json</option></l><block var="json"/></block></block><block s="doReport"><block var="json"/></block></script></block-definition><block-definition s="delete %&apos;input&apos; of json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%mlt"></input></inputs><script><block s="doSetVar"><l>json</l><custom-block s="%s of json %mlt"><l>list</l><block var="json"/></custom-block></block><block s="doDeleteFromList"><block var="input"/><block var="json"/></block><block s="doSetVar"><l>json</l><block s="reportListAttribute"><l><option>json</option></l><block var="json"/></block></block><block s="doReport"><block var="json"/></block></script></block-definition><block-definition s="insert %&apos;item&apos; at %&apos;pos&apos; in json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input><input type="%mlt"></input></inputs><script><block s="doSetVar"><l>json</l><custom-block s="%s of json %mlt"><l>list</l><block var="json"/></custom-block></block><block s="doInsertInList"><block var="item"/><block var="pos"/><block var="json"/></block><block s="doSetVar"><l>json</l><block s="reportListAttribute"><l><option>json</option></l><block var="json"/></block></block><block s="doReport"><block var="json"/></block></script></block-definition><block-definition s="replace %&apos;pos&apos; of json %&apos;json&apos; with %&apos;item&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%mlt"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>json</l><custom-block s="%s of json %mlt"><l>list</l><block var="json"/></custom-block></block><block s="doReplaceInList"><block var="pos"/><block var="json"/><block var="item"/></block><block s="doSetVar"><l>json</l><block s="reportListAttribute"><l><option>json</option></l><block var="json"/></block></block><block s="doReport"><block var="json"/></block></script></block-definition><block-definition s="is %&apos;json&apos; valid json?" type="predicate" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%mlt"></input></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></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="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;ca:prova de forma segura _ i si _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></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="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>ca:prova de forma segura reportant _ i si _ reportant _&#xD;</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="merge json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%mult%mlt"></input></inputs><script><block s="doSetVar"><l>json</l><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block><block s="doReport"><block s="reportListAttribute"><l><option>json</option></l><block s="reportConcatenatedLists"><block var="json"/></block></block></block></script></block-definition><block-definition s="index of %&apos;marker&apos; in json %&apos;json&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListIndex"><block var="marker"/><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block></block></script></block-definition><block-definition s="move %&apos;pos1&apos; of json %&apos;json&apos; at %&apos;pos2&apos;" type="reporter" category="JSON"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%mlt"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>json</l><block s="reportTextSplit"><block var="json"/><l><option>json</option></l></block></block><block s="doSetVar"><l>a</l><custom-block s="item %n of json %mlt"><block var="pos1"/><block var="json"/></custom-block></block><block s="doDeleteFromList"><custom-block s="index of %s in json %s"><block var="a"/><block var="json"/></custom-block><block var="json"/></block><block s="doInsertInList"><block var="a"/><block var="pos2"/><block var="json"/></block><block s="doSetVar"><l>json</l><block s="reportListAttribute"><l><option>json</option></l><block var="json"/></block></block><block s="doReport"><block var="json"/></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="449"><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="450"></list></costumes><sounds><list struct="atomic" id="451"></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="456"><costumes><list struct="atomic" id="457"></list></costumes><sounds><list struct="atomic" id="458"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="json extension" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>