<snapdata remixID="14485347"><project name="15_puzzle_v4" app="Snap! 11.0.0, https://snap.berkeley.edu" version="2"><notes>This version handles the initiation of the 15 puzzle through cloning and applying the right - premade - costume to each clone.&#xD;&#xD;The positions of all slides are collected into a list called RowList - containing id, row, column, xpos, ypos.&#xD;&#xD;The gap is item 16.&#xD;&#xD;At clicking the neighbours are checked through a double keep items (see nextToGap). If the gap is neighbouring, the swap between the clicked slide and the gap is done. The positions in Rowlist are updated.&#xD;&#xD;The scrambling is done through a list of 16 unique numbers.&#xD;To check solvability the number of inversions is counted.&#xD;After that the gap-row is established (bottom-row =1)&#xD;If both counter and gap-row share the same parity, the puzzle should be solvable. If it turns out not to be solvable, the scrambling is repeated.</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADOklEQVR4AezSMZLbMABD0Z29/52TykUKW4oliiDx3HjGskjg4//+8UFgIoHfHx8EJhIg4ET4rv75ISALphIg4FT8LicgB6YS6BVwKnaXvwgQ8EXC9xQCBJyC3aUvAgR8kfA9hQABp2B36YsAAV8kfE8hQMAp2KdeGnU5AaPm6AtDwL7NoxoTMGqOvjAE7Ns8qjEBo+boC0PAvs2jGj8qYFRzYSIIEDBiht4QBOzdPqI5ASNm6A1BwN7tI5oTMGKG3hAEfGR7l7wjQMB3ZPz+CAECPoLZJe8IEPAdGb8/QoCAj2B2yTsCBHxHxu+PECDgI5h7LzlqTsAjQp4PJUDAoXgdfkSAgEeEPB9KgIBD8Tr8iAABjwh5PpQAAYfidfgRgX0FPGrueQQBAkbM0BuCgL3bRzQnYMQMvSEI2Lt9RHMCRszQG4KA+22/VCMCLjXXfmEJuN+mSzUi4FJz7ReWgPttulQjAi41135hCbjfpks1ulXApZoLG0GAgBEz9IYgYO/2Ec0JGDFDbwgC9m4f0ZyAETP0hiDgLds75FsCBPyWnPduIUDAWzA65FsCBPyWnPduIUDAWzA65FsCBPyWnPduIUDAWzD2HnK1OQGvEvT+JQIEvITPy1cJEPAqQe9fIkDAS/i8fJUAAa8S9P4lAgS8hM/LVwmsK+DV5t6PIEDAiBl6QxCwd/uI5gSMmKE3BAF7t49oTsCIGXpDEHC97bdKTMCt5lyvDAHX22yrxATcas71yhBwvc22SkzAreZcrwwB19tsq8T/JeBWzZWJIEDAiBl6QxCwd/uI5gSMmKE3BAF7t49oTsCIGXpDEPDU9v40igABR5F17ikCBDyFyZ9GESDgKLLOPUWAgKcw+dMoAgQcRda5pwgQ8BSm3j+Nbk7A0YSd/5EAAT/i8XA0AQKOJuz8jwQI+BGPh6MJEHA0Yed/JEDAj3g8HE0gV8DRzZ0fQYCAETP0hiBg7/YRzQkYMUNvCAL2bh/RnIARM/SGIGDe9lWJCFg1d15ZAuZtUpWIgFVz55UlYN4mVYkIWDV3XlkC5m1SlegfAauaKxtBgIARM/SGIGDv9hHNCRgxQ28IAvZuH9H8LwAAAP//kzkAMgAAAAZJREFUAwCaJ36PlSbwAgAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="15_puzzle_v4"><notes>This version handles the initiation of the 15 puzzle through cloning and applying the right - premade - costume to each clone.&#xD;&#xD;The positions of all slides are collected into a list called RowList - containing id, row, column, xpos, ypos.&#xD;&#xD;The gap is item 16.&#xD;&#xD;At clicking the neighbours are checked through a double keep items (see nextToGap). If the gap is neighbouring, the swap between the clicked slide and the gap is done. The positions in Rowlist are updated.&#xD;&#xD;The scrambling is done through a list of 16 unique numbers.&#xD;To check solvability the number of inversions is counted.&#xD;After that the gap-row is established (bottom-row =1)&#xD;If both counter and gap-row share the same parity, the puzzle should be solvable. If it turns out not to be solvable, the scrambling is repeated.</notes><hidden></hidden><headers></headers><code></code><blocks><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;pl:utwórz zmienną _ _&#xD;</translations><inputs><input type="%s" readonly="true">global<options>global&#xD;sprite&#xD;script</options></input><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><block var="_scope"/><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="delete var %&apos;_names&apos;" type="command" category="variables"><comment x="0" y="0" w="217" collapsed="false">This block deletes all the variables with the names given (inside input list).&#xD;&#xD;Each name will make only one variable deletion, and this will be the variable found following the scope order: &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;If we have a &quot;testing&quot; sprite variable and also a &quot;testing&quot; global one, deleting &quot;testing&quot; will delete only the sprite one (Yes! we can also do &quot;delete var (testing, testing)&quot; to delete both.&#xD;&#xD;If one variable does not exists (in any scope) an error happens, stopping block action in that point. You can check it before with the &quot;does var (name) exists?&quot;block. </comment><header></header><code></code><translations>pt:remove as variáveis _&#xD;ca:esborra les variables _&#xD;es:borrar variables _&#xD;de:löschen var _&#xD;pl:usuń zmienną _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>_item</l><block var="_names"/><script><block s="doApplyExtension"><l>err_ignore</l><list><custom-block s="var %s"><block var="_item"/></custom-block></list></block><block s="doApplyExtension"><l>var_delete(name)</l><list><block var="_item"/></list></block></script></block></script></block></script></block-definition><block-definition s="set var %&apos;_name&apos; to %&apos;_value&apos;" type="command" category="variables"><comment x="0" y="0" w="240.4931640625" collapsed="false">This block sets the given value (last input) to the variable named with the name givent (var input).&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>ca:assigna a _ el valor _&#xD;es:asignar a _ el valor _&#xD;pt:altera _ para _&#xD;de:setze var _ auf _&#xD;pl:ustaw zmienną _ na _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>var_set(name, val)</l><list><block var="_name"/><block var="_value"/></list></block></script></block-definition><block-definition s="var %&apos;_name&apos;" type="reporter" category="variables"><comment x="0" y="0" w="178.00000000000003" collapsed="false">This block reports the value of the variable with the name given.&#xD;&#xD;It looks for that variable following the scope order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos; (the first match it finds).&#xD;&#xD;If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the &quot;does var (name) exists?&quot; block. </comment><header></header><code></code><translations>pt:o valor de _&#xD;pl:zmienna _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></block></script></block-definition><block-definition s="does var %&apos;_name&apos; exist?" type="predicate" category="variables"><comment x="0" y="0" w="146" collapsed="false">This block reports &quot;true&quot; if there is a variable with this given name (input slot) in that context.&#xD;&#xD;It can be a global, sprite or script variable.&#xD;&#xD;Otherwise it reports &quot;false&quot;.</comment><header></header><code></code><translations>pt:a variável _ existe&#xD;ca:existeix la variable _ ?&#xD;es:existe la variable _ ?&#xD;de:existiert var _ ?&#xD;pl:zmienna _ istnieje?&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doApplyExtension"><l>err_ignore</l><list><block s="reportApplyExtension"><l>var_get(name)</l><list><block var="_name"/></list></block></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="reifyScript"><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="show var %&apos;_name&apos;" type="command" category="variables"><comment x="0" y="0" w="181" collapsed="false">This block turns on (show) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:mostra la variable _&#xD;es:mostrar variable _&#xD;pt:mostra a variável _&#xD;de:zeige var _&#xD;pl:pokaż zmienną _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_show(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="hide var %&apos;_name&apos;" type="command" category="variables"><comment x="0" y="0" w="181" collapsed="false">This block turns off (hide) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).&#xD;&#xD;It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order &apos;script&apos; -&gt; &apos;sprite&apos; -&gt; &apos;global&apos;.&#xD;&#xD;No errors if that variable does not exist.</comment><header></header><code></code><translations>ca:amaga la variable _&#xD;es:esconder variable _&#xD;pt:esconde a variável _&#xD;de:verstecke var _&#xD;pl:ukryj zmienną _&#xD;</translations><inputs><input type="%s"><options>§_getVarNamesDict</options></input></inputs><script><block s="doApplyExtension"><l>var_hide(name)</l><list><block var="_name"/></list></block></script></block-definition><block-definition s="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;ca:vestit amb el text _ i mida _&#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>tmp</l><l>trails</l><l>pen state</l></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="text"/><l> </l></list></block><script><block s="doSetVar"><l>tmp</l><custom-block s="costume from text %s size %n"><l>A</l><block var="size"/></custom-block></block><block s="doReport"><block s="reportNewCostume"><block s="reportReshape"><l>0</l><block s="reportListAttribute"><l><option>dimensions</option></l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="tmp"/></block></block></block><block s="reportGetImageAttribute"><l><option>width</option></l><block var="tmp"/></block><block s="reportGetImageAttribute"><l><option>height</option></l><block var="tmp"/></block></block></block></script><list></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><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="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="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="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;pl:przechwyć _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><custom-block s="run %cmdRing with continuation"><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></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;pl:wyrzuć _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;pl:przechwyć _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><custom-block s="run %cmdRing with continuation"><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></custom-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;pl:wyrzuć _ _&#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"><comment x="0" y="0" w="263.3333333333333" collapsed="false">This is a breakpoint block, to be used in debugging.&#xD;The Boolean input specifies the condition under which&#xD;the program should pause.  (Use True for an unconditional breakpoint.)  The intent is that the script should have&#xD;SHOW VARIABLE blocks for the process&apos;s local variables.&#xD;After the pause, this block automatically hides all temporary variables.</comment><header></header><code></code><translations>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;pt:se _ , então _ e faz pausa em tudo $pause-1-255-220-0&#xD;pl:jeżeli _ wykonaj _ i pauzuj wszystko $pause-1-255-220-0&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script><list></list></block></script></block-definition><block-definition s="ignore %&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;pl:ignoruj _&#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;ca:en cascada _ vegades _ _ _&#xD;pl:kaskada _ razy _ _ _&#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;ca:en cascada fins _ _ _ _&#xD;pl:kaskada aż _ _ _ _&#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;ca:composa _ _&#xD;pl:skomponuj _ _&#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;ca:repeteix _ fins _&#xD;pl:powtarzaj _ aż _&#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;ca:repeteix _ mentre _&#xD;pl:powtarzaj _ gdy _&#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;pl:powtarzaj gdy _ _&#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="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;ca:repeteix _ _ _&#xD;pl:powtórz _ _ _&#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="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;ca:per _ = _ incrementant _ fins _ _&#xD;pl:dla _ = _ co _ do _ _&#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;ca:fes que _ sigui _ al _ _&#xD;pl:ustaw _ na _ w _ _&#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="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="positionSlides + fill rowList" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>c</l></list></block><block s="doSetVar"><l>rowList</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>startList</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>c</l><l>1</l></block><block s="doFor"><l>row</l><l>1</l><l>4</l><script><block s="doFor"><l>column</l><l>1</l><l>4</l><script><block s="doTellTo"><block s="reportListItem"><block var="c"/><block s="reportGet"><l><option>clones</option></l></block></block><block s="reifyScript"><script><block s="gotoXY"><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="start_pos"/></block><block s="reportRound"><block s="reportVariadicProduct"><list><block var="piece_size"/><block var="column"/></list></block></block></list></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="start_pos"/></block><block s="reportRound"><block s="reportVariadicProduct"><list><block var="piece_size"/><block var="row"/></list></block></block></block></block></script><list></list></block><list></list></block><block s="doAddToList"><block s="reportNewList"><list><block var="c"/><block var="row"/><block var="column"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="start_pos"/></block><block s="reportRound"><block s="reportVariadicProduct"><list><block var="piece_size"/><block var="column"/></list></block></block></list></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="start_pos"/></block><block s="reportRound"><block s="reportVariadicProduct"><list><block var="piece_size"/><block var="row"/></list></block></block></block></list></block><block var="rowList"/><comment w="90" collapsed="false">Fill list with id, row, column, x and y position</comment></block><block s="doAddToList"><block s="reportNewList"><list><block var="c"/><block var="row"/><block var="column"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="start_pos"/></block><block s="reportRound"><block s="reportVariadicProduct"><list><block var="piece_size"/><block var="column"/></list></block></block></list></block><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="start_pos"/></block><block s="reportRound"><block s="reportVariadicProduct"><list><block var="piece_size"/><block var="row"/></list></block></block></block></list></block><block var="startList"/><comment w="90" collapsed="false">Fill list with id, row, column, x and y position</comment></block><block s="doChangeVar"><l>c</l><l>1</l></block></script></block></script><comment w="90" collapsed="false">set pieces in position. Try to get the puzzle centered on the canvas</comment></block></script></block-definition><block-definition s="checkItemsNextToGap %&apos;rnd&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doSetVar"><l>gapRow</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>16</l><block var="rowList"/></block></block><comment w="90" collapsed="false">now the gap is the piece to be replaced</comment></block><block s="doSetVar"><l>gapColumn</l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>16</l><block var="rowList"/></block></block></block><block s="doSetVar"><l>gapX</l><block s="reportListItem"><l>4</l><block s="reportListItem"><l>16</l><block var="rowList"/></block></block></block><block s="doSetVar"><l>gapY</l><block s="reportListItem"><l>5</l><block s="reportListItem"><l>16</l><block var="rowList"/></block></block></block><block s="doSetVar"><l>lookupList</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>lookupList</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>6</l><l/></block><block s="reportDifference"><block var="rnd"/><l>1</l></block></list></block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><l/></block><block var="gapRow"/></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block s="reportVariadicSum"><list><block var="gapColumn"/><l>1</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block s="reportDifference"><block var="gapColumn"/><l>1</l></block></list></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><l/></block><block s="reportVariadicSum"><list><block var="gapRow"/><l>1</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block var="gapColumn"/></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><l/></block><block s="reportDifference"><block var="gapRow"/><l>1</l></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block var="gapColumn"/></list></block></list></block></list></block></autolambda><list></list></block><block var="rowList"/></block></block></block></script></block-definition><block-definition s="puzzleSwap %&apos;rnd&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="lookupList"/></block><l>0</l></list></block><script><block s="doSetVar"><l>gap</l><block s="reportListItem"><l>16</l><block var="rowList"/></block></block><block s="doSetVar"><l>pieceToSwap</l><custom-block s="selectSwapPiece"></custom-block></block><block s="doSetVar"><l>slidePiece</l><block s="reportListItem"><block var="pieceToSwap"/><block var="rowList"/></block></block><block s="doTellTo"><block s="reportListItem"><block var="pieceToSwap"/><block s="reportGet"><l><option>clones</option></l></block></block><block s="reifyScript"><script><block s="gotoXY"><block var="gapX"/><block var="gapY"/></block></script><list></list></block><list></list></block><block s="doSetVar"><l>slideRow</l><block s="reportListItem"><l>2</l><block var="slidePiece"/></block></block><block s="doSetVar"><l>slideColumn</l><block s="reportListItem"><l>3</l><block var="slidePiece"/></block></block><block s="doSetVar"><l>slideXpos</l><block s="reportListItem"><l>4</l><block var="slidePiece"/></block></block><block s="doSetVar"><l>slideYpos</l><block s="reportListItem"><l>5</l><block var="slidePiece"/></block></block><block s="doTellTo"><block s="reportListItem"><l>16</l><block s="reportGet"><l><option>clones</option></l></block></block><block s="reifyScript"><script><block s="gotoXY"><block var="slideXpos"/><block var="slideYpos"/></block></script><list></list></block><list></list></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="pieceToSwap"/><block var="rowList"/></block><block var="gapRow"/></block><block s="doReplaceInList"><l>3</l><block s="reportListItem"><block var="pieceToSwap"/><block var="rowList"/></block><block var="gapColumn"/></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><block var="pieceToSwap"/><block var="rowList"/></block><block var="gapX"/></block><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="pieceToSwap"/><block var="rowList"/></block><block var="gapY"/></block><block s="doReplaceInList"><l>6</l><block s="reportListItem"><block var="pieceToSwap"/><block var="rowList"/></block><block var="rnd"/></block><block s="doReplaceInList"><l>6</l><block s="reportListItem"><block var="pieceToSwap"/><block var="startList"/></block><block var="rnd"/><comment w="90" collapsed="false">to make sure this column does not disturb the comparison between starlist and rowlist</comment></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideRow"/></block><block s="doReplaceInList"><l>3</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideColumn"/></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideXpos"/></block><block s="doReplaceInList"><l>5</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideYpos"/></block></script><list><l><bool>true</bool></l><script><block s="doSetVar"><l>stillPiecesLeftToSwap</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></list></block></script></block-definition><block-definition s="selectSwapPiece" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>cnt</l></list></block><block s="doSetVar"><l>cnt</l><block s="reportListAttribute"><l><option>length</option></l><block var="lookupList"/></block></block><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportListItem"><block s="reportRandom"><l>1</l><block var="cnt"/></block><block var="lookupList"/></block></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;pl:$flash sortuj _ za pomocą _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="function"/></list></block></block></script></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;pl:$flash skojarz _ _&#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></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;pl:_ dla każdego _ z _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doForEach"><l>inner item</l><block var="data"/><script><block s="doSetVar"><l>item</l><block var="inner item"/></block><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="☠︎ linked? %&apos;data&apos;" type="predicate" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_linked(list)</l><list><block var="data"/></list></block></block></script></block-definition><block-definition s="☠︎ link %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block var="data"/></block></script><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).&#xD;&#xD;Will not work on circular lists.</comment><header></header><code></code><translations>ca:notació textual de _&#xD;pl:tekstowa _&#xD;</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="reportAtomicCombine"><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="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>ca:frase _&#xD;pl:zdanie _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><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><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="$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>pl:$flash spakuj _&#xD;</translations><inputs><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block var="lists"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="lists"><comment x="0" y="0" w="105.33333333333333" 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="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>ca:multi-mapeja _ sobre _&#xD;pl:mapuj wielokrotnie _ na _&#xD;</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><custom-block s="$flash zip %mult%l"><block var="lists"/></custom-block></block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;pl:zdanie $arrowRight lista _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></block></script></block-definition><block-definition s="insert Random Number from %&apos;lower&apos; to %&apos;upper&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1">1</input><input type="%s" initial="1">16</input></inputs><script><block s="doDeclareVariables"><list><l>scrambledList</l></list></block><block s="doSetVar"><l>scrambledList</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><block var="lower"/><block var="upper"/><script><block s="doInsertInList"><block var="i"/><l><option>random</option></l><block var="scrambledList"/></block></script></block><block s="doReport"><block var="scrambledList"/></block></script></block-definition><block-definition s="scramblePuzzle" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>cnt</l><l>find</l><l>rw</l><l>cl</l><l>x</l><l>y</l></list></block><block s="doSetVar"><l>rowList</l><block s="reportMonadic"><l><option>id</option></l><block var="startList"/></block></block><block s="doSetVar"><l>scrList</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>scrList</l><custom-block s="insert Random Number from %s to %s"><l>1</l><l>16</l></custom-block></block><block s="doSetVar"><l>cnt</l><l>1</l></block><block s="doForEach"><l>item</l><block s="reportGet"><l><option>clones</option></l></block><script><block s="doTellTo"><block var="item"/><block s="reifyScript"><script><custom-block s="findNewPosition %s"><block var="cnt"/></custom-block></script><list></list></block><list></list></block><block s="doChangeVar"><l>cnt</l><l>1</l></block></script><comment w="90" collapsed="false">give them all new positions</comment></block><block s="doFor"><l>i</l><l>1</l><l>16</l><script><block s="doSetVar"><l>find</l><block s="reportListItem"><block var="i"/><block var="scrList"/></block></block><block s="doSetVar"><l>rw</l><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="find"/><block var="startList"/></block></block></block><block s="doSetVar"><l>cl</l><block s="reportListItem"><l>3</l><block s="reportListItem"><block var="find"/><block var="startList"/></block></block></block><block s="doSetVar"><l>x</l><block s="reportListItem"><l>4</l><block s="reportListItem"><block var="find"/><block var="startList"/></block></block></block><block s="doSetVar"><l>y</l><block s="reportListItem"><l>5</l><block s="reportListItem"><block var="find"/><block var="startList"/></block></block></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="i"/><block var="rowList"/></block><block var="rw"/></block><block s="doReplaceInList"><l>3</l><block s="reportListItem"><block var="i"/><block var="rowList"/></block><block var="cl"/></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><block var="i"/><block var="rowList"/></block><block var="x"/></block><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="i"/><block var="rowList"/></block><block var="y"/></block></script><comment w="90" collapsed="false">update rowlist positions</comment></block></script></block-definition><block-definition s="findNewPosition %&apos;itemNo&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>idx</l><l>rw</l><l>cl</l><l>x</l><l>y</l></list></block><block s="doSetVar"><l>idx</l><block s="reportListIndex"><block s="reportListItem"><block var="itemNo"/><block var="scrList"/></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><block var="rowList"/></block></block></block><block s="doSetVar"><l>rw</l><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="idx"/><block var="rowList"/></block></block></block><block s="doSetVar"><l>cl</l><block s="reportListItem"><l>3</l><block s="reportListItem"><block var="idx"/><block var="rowList"/></block></block></block><block s="doSetVar"><l>x</l><block s="reportListItem"><l>4</l><block s="reportListItem"><block var="idx"/><block var="rowList"/></block></block></block><block s="doSetVar"><l>y</l><block s="reportListItem"><l>5</l><block s="reportListItem"><block var="idx"/><block var="rowList"/></block></block></block><block s="doGlide"><l>0.1</l><block var="x"/><block var="y"/></block></script></block-definition><block-definition s="updateRowlist %&apos;rw&apos; %&apos;cl&apos; %&apos;x&apos; %&apos;y&apos; %&apos;ItemNo&apos;" type="command" category="motion"><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><input type="%s" initial="1"></input><input type="%s" initial="1"></input></inputs><script><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="ItemNo"/><block var="rowList"/></block><block var="rw"/></block><block s="doReplaceInList"><l>3</l><block s="reportListItem"><block var="ItemNo"/><block var="rowList"/></block><block var="cl"/></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><block var="ItemNo"/><block var="rowList"/></block><block var="x"/></block><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="ItemNo"/><block var="rowList"/></block><block var="y"/></block></script></block-definition><block-definition s="PuzzleIsSolvable" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>count</l><l>even</l><l>odd</l><l>manhattanDistance</l><l>cRow</l><l>cCol</l></list></block><block s="doFor"><l>outer</l><l>1</l><block s="reportDifference"><block s="reportListAttribute"><l><option>length</option></l><block var="scrList"/></block><l>1</l></block><script><block s="doFor"><l>inner</l><block s="reportVariadicSum"><list><block var="outer"/><l>1</l></list></block><block s="reportListAttribute"><l><option>length</option></l><block var="scrList"/></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><block var="outer"/><block var="scrList"/></block><block s="reportListItem"><block var="inner"/><block var="scrList"/></block></list></block><script><block s="doChangeVar"><l>count</l><l>1</l></block></script><list></list></block></script></block></script><comment w="90" collapsed="false">determine nr of puzzle inversions</comment></block><block s="doSetVar"><l>cRow</l><block s="reportDifference"><l>5</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>16</l><block var="rowList"/></block></block></block><comment w="90" collapsed="false">now get the gap and establihs it&apos;s current row - counting from the bottom</comment></block><block s="doReport"><block s="reportVariadicEquals"><list><custom-block s="parity %s"><block var="count"/></custom-block><custom-block s="parity %s"><block var="cRow"/></custom-block></list></block></block></script></block-definition><block-definition s="parity %&apos;inputNumber&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportModulus"><block var="inputNumber"/><l>2</l></block><l>0</l></list></block></block></script></block-definition></blocks><primitives><block-definition s="not %&apos;bool&apos;" type="predicate" category="operators" selector="reportNot"><header></header><code></code><translations></translations><inputs><input type="%b" readonly="true"></input></inputs></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="1884"><pentrails>data:image/png;base64,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</pentrails><costumes><list id="1885"><item><ref mediaID="15_puzzle_v4_Stage_cst_XY Grid"></ref></item></list></costumes><sounds><list struct="atomic" id="1886"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>gID</l><l>0</l></block><block s="doSetVar"><l>grid_size</l><l>4</l></block><block s="doSetVar"><l>size</l><l>24</l></block><block s="doSetVar"><l>rowList</l><block s="reportNewList"><list></list></block></block><block s="doBroadcastAndWait"><l>switchInitialCostume</l><list></list><comment w="172" collapsed="false">takes care of the right slide size - starting from the turtle will get the wrong size</comment></block><block s="doSetVar"><l>start_x</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>width</option></l><l>Stage</l></block><block s="reportVariadicProduct"><list><block var="grid_size"/><block s="reportAttributeOf"><l><option>width</option></l><l>puzzle_piece</l></block></list></block></block><l>2</l></block></list></block></block></block><block s="doSetVar"><l>start_y</l><block s="reportRound"><block s="reportQuotient"><block s="reportDifference"><block s="reportAttributeOf"><l><option>height</option></l><l>Stage</l></block><block s="reportVariadicProduct"><list><block var="grid_size"/><block s="reportAttributeOf"><l><option>height</option></l><l>puzzle_piece</l></block></list></block></block><l>2</l></block></block><comment w="214" collapsed="false">calculate starting posision:&#xD;&#xD;- take width from canvas&#xD;- distract columns x width of puzzle_piece&#xD;- divide by 2&#xD;- take height from canvas&#xD;- distract rows x height of puzzle_piece&#xD;- divide by2 </comment></block><block s="doSetVar"><l>start_pos</l><block s="reportNewList"><list><block var="start_x"/><block var="start_y"/></list></block></block><block s="doSetVar"><l>piece_size</l><block s="reportRound"><block s="reportAttributeOf"><l><option>width</option></l><l>puzzle_piece</l></block></block></block><block s="doSetVar"><l>slidePositions</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>puzzleUnsolved</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doBroadcast"><l>goCostumes</l><list></list></block></script></scripts><sprites select="1"><sprite name="puzzle_piece" idx="1" x="-110.17533924686813" y="71.01285023604353" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="15" color="0,44,53,1" pen="tip" id="1994"><costumes><list id="1995"><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_16"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_14"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_13"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_12"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_11"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_10"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_9"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_8"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_7"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_6"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_5"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_4"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_3"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_2"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_1"></ref></item><item><ref mediaID="15_puzzle_v4_puzzle_piece_cst_15"></ref></item></list></costumes><sounds><list struct="atomic" id="1996"></list></sounds><blocks><block-definition s="nextToGap" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>slideXpos</l><block s="reportRound"><block s="xPosition"></block></block></block><block s="doSetVar"><l>slideYpos</l><block s="reportRound"><block s="yPosition"></block></block></block><block s="doSetVar"><l>slideRow</l><block s="reportListItem"><l>2</l><block s="reportListItem"><block var="ID"/><block var="rowList"/></block></block></block><block s="doSetVar"><l>slideColumn</l><block s="reportListItem"><l>3</l><block s="reportListItem"><block var="ID"/><block var="rowList"/></block></block></block><block s="doSetVar"><l>lookupList</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>lookupList</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><l/></block><l>16</l></list></block></autolambda><list></list></block><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicOr"><list><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><l/></block><block var="slideRow"/></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block s="reportVariadicSum"><list><block var="slideColumn"/><l>1</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block s="reportDifference"><block var="slideColumn"/><l>1</l></block></list></block></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><l/></block><block s="reportVariadicSum"><list><block var="slideRow"/><l>1</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block var="slideColumn"/></list></block></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><l/></block><block s="reportDifference"><block var="slideRow"/><l>1</l></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><l>3</l><l/></block><block var="slideColumn"/></list></block></list></block></list></block></autolambda><list></list></block><block var="rowList"/></block></block></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="lookupList"/></block><l>1</l></list></block></block></script></block-definition><block-definition s="swapWithGap" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>gap</l><block s="reportListItem"><l>16</l><block var="rowList"/></block></block><block s="doSetVar"><l>gapX</l><block s="reportListItem"><l>4</l><block var="gap"/></block></block><block s="doSetVar"><l>gapY</l><block s="reportListItem"><l>5</l><block var="gap"/></block></block><block s="doSetVar"><l>gapRow</l><block s="reportListItem"><l>2</l><block var="gap"/></block></block><block s="doSetVar"><l>gapColumn</l><block s="reportListItem"><l>3</l><block var="gap"/></block></block><block s="gotoXY"><block var="gapX"/><block var="gapY"/></block><block s="doTellTo"><block s="reportListItem"><l>15</l><block s="reportGet"><l><option>other clones</option></l></block></block><block s="reifyScript"><script><block s="gotoXY"><block var="slideXpos"/><block var="slideYpos"/></block></script><list></list></block><list></list></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><block var="ID"/><block var="rowList"/></block><block var="gapRow"/></block><block s="doReplaceInList"><l>3</l><block s="reportListItem"><block var="ID"/><block var="rowList"/></block><block var="gapColumn"/></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><block var="ID"/><block var="rowList"/></block><block var="gapX"/></block><block s="doReplaceInList"><l>5</l><block s="reportListItem"><block var="ID"/><block var="rowList"/></block><block var="gapY"/></block><block s="doReplaceInList"><l>2</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideRow"/></block><block s="doReplaceInList"><l>3</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideColumn"/></block><block s="doReplaceInList"><l>4</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideXpos"/></block><block s="doReplaceInList"><l>5</l><block s="reportListItem"><l>16</l><block var="rowList"/></block><block var="slideYpos"/></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="gapX"/><block s="reportListItem"><l>4</l><block s="reportListItem"><block var="ID"/><block var="startList"/></block></block></list></block><block s="reportVariadicEquals"><list><block var="gapY"/><block s="reportListItem"><l>5</l><block s="reportListItem"><block var="ID"/><block var="startList"/></block></block></list></block></list></block><script><block s="setEffect"><l><option>color</option></l><l>25</l></block></script><list><l><bool>true</bool></l><script><block s="setEffect"><l><option>color</option></l><l>100</l></block></script></list></block></script></block-definition></blocks><variables><variable name="ID"><l>16</l></variable></variables><scripts><script x="20" y="10.000000000000014"><block s="receiveMessage"><l>switchInitialCostume</l><list></list><comment w="90" collapsed="true">call from stage</comment></block><block s="doSwitchToCostume"><l>1</l></block></script><script x="20" y="84.00000000000065"><block s="receiveMessage"><l>goCostumes</l><list></list><comment w="90" collapsed="true">call from stage</comment></block><block s="show"></block><custom-block s="create %s var %mult%txt"><l>sprite</l><list><l>ID</l></list></custom-block><block s="doRepeat"><l>16</l><script><block s="doSetVar"><l>ID</l><block s="reportVariadicSum"><list><block var="gID"/><l>1</l></list></block></block><block s="doChangeVar"><l>gID</l><l>1</l></block><block s="createClone"><l><option>myself</option></l></block></script></block><block s="hide"></block><custom-block s="positionSlides + fill rowList"></custom-block><block s="doSetVar"><l>solvable</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="repeat %cs until %boolUE"><script><custom-block s="scramblePuzzle"></custom-block></script><custom-block s="PuzzleIsSolvable"><comment w="359" collapsed="false">Paritychecks are done here: both the count of the inversions and the row number (bottom row = 1) should have the same parity. </comment></custom-block></custom-block></script><script x="20" y="477.83333333333303"><block s="receiveInteraction"><l><option>pressed</option></l></block><block s="doIf"><block var="puzzleUnsolved"/><script><block s="doIf"><custom-block s="nextToGap" scope="local"></custom-block><script><custom-block s="swapWithGap" scope="local"></custom-block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="startList"/><block var="rowList"/></list></block><script><block s="doSetVar"><l>puzzleUnsolved</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSayFor"><l>PuzzleSolved</l><l>2</l></block></script><list></list></block></script><script x="19" y="417.83333333333724"><block s="receiveOnClone"><comment w="90" collapsed="false">give each clone the proper - handmade - costume</comment></block><block s="doSwitchToCostume"><block var="ID"/></block></script></scripts></sprite><watcher scope="puzzle_piece" s="xPosition" style="normal" x="0" y="135.39130608695717" color="74,108,212" hidden="true"/><watcher scope="puzzle_piece" s="yPosition" style="normal" x="133.91304347825928" y="51.304351304347904" color="74,108,212" hidden="true"/><watcher var="piece_size" style="normal" x="175.6521739130419" y="93.91304347826069" color="243,118,29" hidden="true"/><watcher var="costume" style="normal" x="94.81481481481478" y="82.96296296296269" color="243,118,29" hidden="true"/><watcher var="start_pos" style="normal" x="10.000000000000455" y="31.000001999999817" color="243,118,29" hidden="true"/><watcher var="size" style="normal" x="10.000000000000455" y="52.00000399999975" color="243,118,29" hidden="true"/><watcher var="gID" style="normal" x="10.000000000000455" y="73.00000600000011" color="243,118,29" hidden="true"/><watcher scope="puzzle_piece" var="ID" style="normal" x="10.000000000000455" y="94.00000799999988" color="243,118,29" hidden="true"/><watcher var="grid_size" style="normal" x="10.000000000000455" y="9.999999999999986" color="243,118,29" hidden="true"/><watcher scope="Stage" s="getCostumeIdx" style="normal" x="9.85446460255821" y="9.854464602559347" color="143,86,227" hidden="true"/><watcher var="piecesInPosition" style="normal" x="9.85446460255821" y="30.548842238827476" color="243,118,29" hidden="true"/><watcher var="start_x" style="normal" x="10.000000000000455" y="31.00000199999998" color="243,118,29" hidden="true"/><watcher var="start_y" style="normal" x="10.000000000000455" y="52.000004000000004" color="243,118,29" hidden="true"/><watcher var="slidePositions" style="normal" x="32.985179007846796" y="81.05018396986895" color="243,118,29" hidden="true"/><watcher var="swapX" style="normal" x="10.000000000000455" y="120.00000200000005" color="243,118,29" hidden="true"/><watcher var="swapY" style="normal" x="10.000000000000455" y="141.0000039999998" color="243,118,29" hidden="true"/><watcher var="gap" style="normal" x="10.000000000000455" y="162.00000599999996" color="243,118,29" hidden="true"/><watcher var="newGapX" style="normal" x="10.000000000000455" y="255.00000799999992" color="243,118,29" hidden="true"/><watcher var="newGapY" style="normal" x="10.000000000000455" y="276.0000100000001" color="243,118,29" hidden="true"/><watcher var="slideXpos" style="normal" x="7.132243684991863" y="7.132243684992567" color="243,118,29" hidden="true"/><watcher var="slideYpos" style="normal" x="7.132243684991863" y="22.109956849925794" color="243,118,29" hidden="true"/><watcher var="theOtherSlides" style="normal" x="25.714285714286007" y="73.92857142857135" color="243,118,29" hidden="true"/><watcher var="gapRow" style="normal" x="10.714285714286234" y="10.714285714285786" color="243,118,29" hidden="true"/><watcher var="gapColumn" style="normal" x="10.714285714286234" y="33.21428785714288" color="243,118,29" hidden="true"/><watcher var="slideRow" style="normal" x="10.714285714286234" y="55.71428999999998" color="243,118,29" hidden="true"/><watcher var="slideColumn" style="normal" x="10.714285714286234" y="78.214292142857" color="243,118,29" hidden="true"/><watcher var="gapX" style="normal" x="10.714285714286234" y="100.71429428571426" color="243,118,29" hidden="true"/><watcher var="gapY" style="normal" x="10.714285714286234" y="123.21429642857152" color="243,118,29" hidden="true"/><watcher var="gapNeighbours" style="normal" x="10.714285714286234" y="145.71429857142863" color="243,118,29" hidden="true"/><watcher var="slidePiece" style="normal" x="19.642665651970674" y="140.26656698036916" color="243,118,29" hidden="true"/><watcher var="pieceToSwap" style="normal" x="54.503000847501426" y="289.5867997301838" color="243,118,29" hidden="true"/><watcher var="lookupList" style="normal" x="62.56983240223508" y="17.15083798882683" color="243,118,29" hidden="true"/><watcher var="stillPiecesLeftToSwap" style="normal" x="8.938547486033485" y="8.938547486033485" color="243,118,29" hidden="true"/><watcher var="unSolvedItems" style="normal" x="9.479921000658237" y="9.479921000658315" color="243,118,29" hidden="true"/><watcher var="startList" style="normal" x="251.21790651744527" y="20.137412095137577" color="243,118,29" hidden="true"/><watcher var="listA" style="normal" x="9.479921000658237" y="29.387756998024983" color="243,118,29" hidden="true"/><watcher var="listB" style="normal" x="9.479921000658237" y="49.29559299539167" color="243,118,29" hidden="true"/><watcher scope="puzzle_piece" s="getScale" style="normal" x="18.337078651685374" y="48.5393258426966" color="143,86,227" hidden="true"/><watcher var="cpyScrList" style="normal" x="0" y="1.0000059999999849" color="243,118,29" hidden="true"/><watcher var="scrList" style="normal" x="21.693551590116613" y="7.188116811881045" color="243,118,29" hidden="true"/><watcher var="solvable" style="normal" x="10.000000000000114" y="31.00000199999998" color="243,118,29" hidden="true"/><watcher var="puzzleUnsolved" style="normal" x="10.000000000000114" y="55.00000399999999" color="243,118,29" hidden="true"/><watcher var="rowList" style="normal" x="76.0090090090091" y="54.41441297297297" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="gID"><l>16</l></variable><variable name="grid_size"><l>4</l></variable><variable name="start_pos"><list struct="atomic" id="2452">-84,96</list></variable><variable name="size"><l>24</l></variable><variable name="piece_size"><l>42</l></variable><variable name="slidePositions"><list struct="atomic" id="2453"></list></variable><variable name="start_x"><l>-84</l></variable><variable name="start_y"><l>96</l></variable><variable name="rowList"><list id="2454"><item><list struct="atomic" id="2455">1,1,1,-42,54</list></item><item><list struct="atomic" id="2456">2,1,2,0,54</list></item><item><list struct="atomic" id="2457">3,1,3,42,54</list></item><item><list struct="atomic" id="2458">4,1,4,84,54</list></item><item><list struct="atomic" id="2459">5,2,1,-42,12</list></item><item><list struct="atomic" id="2460">6,2,2,0,12</list></item><item><list struct="atomic" id="2461">7,2,3,42,12</list></item><item><list struct="atomic" id="2462">8,2,4,84,12</list></item><item><list struct="atomic" id="2463">9,3,1,-42,-30</list></item><item><list struct="atomic" id="2464">10,3,2,0,-30</list></item><item><list struct="atomic" id="2465">11,3,3,42,-30</list></item><item><list struct="atomic" id="2466">12,3,4,84,-30</list></item><item><list struct="atomic" id="2467">13,4,1,-42,-72</list></item><item><list struct="atomic" id="2468">14,4,2,0,-72</list></item><item><list struct="atomic" id="2469">15,4,3,42,-72</list></item><item><list struct="atomic" id="2470">16,4,4,84,-72</list></item></list></variable><variable name="lookupList"><list id="2471"><item><ref id="2470"></ref></item></list></variable><variable name="gap"><ref id="2470"></ref></variable><variable name="slideXpos"><l>84</l></variable><variable name="slideYpos"><l>-72</l></variable><variable name="gapRow"><l>4</l></variable><variable name="gapColumn"><l>3</l></variable><variable name="slideRow"><l>4</l></variable><variable name="slideColumn"><l>4</l></variable><variable name="gapX"><l>42</l></variable><variable name="gapY"><l>-72</l></variable><variable name="pieceToSwap"><l>2</l></variable><variable name="slidePiece"><list struct="atomic" id="2472">2,2,1,-42,12,40</list></variable><variable name="stillPiecesLeftToSwap"><bool>false</bool></variable><variable name="startList"><list id="2473"><item><list struct="atomic" id="2474">1,1,1,-42,54</list></item><item><list struct="atomic" id="2475">2,1,2,0,54</list></item><item><list struct="atomic" id="2476">3,1,3,42,54</list></item><item><list struct="atomic" id="2477">4,1,4,84,54</list></item><item><list struct="atomic" id="2478">5,2,1,-42,12</list></item><item><list struct="atomic" id="2479">6,2,2,0,12</list></item><item><list struct="atomic" id="2480">7,2,3,42,12</list></item><item><list struct="atomic" id="2481">8,2,4,84,12</list></item><item><list struct="atomic" id="2482">9,3,1,-42,-30</list></item><item><list struct="atomic" id="2483">10,3,2,0,-30</list></item><item><list struct="atomic" id="2484">11,3,3,42,-30</list></item><item><list struct="atomic" id="2485">12,3,4,84,-30</list></item><item><list struct="atomic" id="2486">13,4,1,-42,-72</list></item><item><list struct="atomic" id="2487">14,4,2,0,-72</list></item><item><list struct="atomic" id="2488">15,4,3,42,-72</list></item><item><list struct="atomic" id="2489">16,4,4,84,-72</list></item></list></variable><variable name="listA"><list struct="atomic" id="2490">16,4,4,84,-72</list></variable><variable name="listB"><list struct="atomic" id="2491">16,4,1,-41.999999999999986,-71.99999999999999</list></variable><variable name="scrList"><list struct="atomic" id="2492">16,12,2,3,4,9,11,13,1,14,8,15,10,6,7,5</list></variable><variable name="solvable"><bool>false</bool></variable><variable name="puzzleUnsolved"><bool>false</bool></variable></variables></scene></scenes></project><media name="15_puzzle_v4" app="Snap! 11.0.0, https://snap.berkeley.edu" version="2"><costume name="XY Grid" center-x="240" center-y="180" image="data:image/png;base64,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" mediaID="15_puzzle_v4_Stage_cst_XY Grid"/><costume name="16" center-x="22" center-y="22" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAsCAYAAAD8WEF4AAAApElEQVR4AezQQQqFMBRDUXXw4e9/sYITtULmCQSscIXyHITX9GzL/f3O/Zz93DWXbZQcP7Of0fORnb2o+lFWEu2JbFtU+5CVRHsi2xbVPmQl0Z7ItkW1D1lJtCeybVHtQ1YS7YlsW1T7XpHV5emkbCrm5pF1pdIcsqmYm0fWlUpzyKZibh5ZVyrNIZuKuXlkXak0h2wq5ua/JXus/9V92Zu50fMCAAD//yWyfdEAAAAGSURBVAMAF+WCjDk+I8EAAAAASUVORK5CYII=" mediaID="15_puzzle_v4_puzzle_piece_cst_16"/><costume name="14" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAADdklEQVR4AeyXWUhUURjH/zMuJVrq5JoMziC4kaWlkoYJlpoJQb5oi6RPFQSFvtRDlgUVUUFhD/lQkgtBmqYV6YNbGqaZy2iWu0WaSy65a3q75xAi09w7d5w7lDCH+x3uvd93vvOb737nO2ekSY8amP9dcko/MVKsk2YEFftDGSNqjKjYERDbnzFH/1lEGYbB5Oggvne3YLS/Bwuz03qxzEyOYejLZ+pvamxIqy9Bn55A1b3KQNblI8i5Go+SjCsYYIGxxjY/O4XaFw+RdSmO+lNVPGM9MaxwX1pBCdDLBxdQnZeGWTYK3K6Ea5rLctFc/lT4ANaSF/T968fIvXkSPU1vYGljBytbB3aIfldf6zt0NVbg18K8To44QeuLM1HzPB3LS4vwDYvFoTO3ofTZo5NzdeO56Ul0N1Wiv7MJcu9AyL0C1E04nzlByQhrexeEJ6QgLP489I0ms7wMkostlQWQOSkg9/CHpbUdmUaQcIIqt4cg+vQNeAVHC3KkzainuQrtdcVYnJ+BR2AEFW1jVus5QWXOCsiclZBIJKvt13RPylpXQzkGe9uwK/I4FV0dcYLq6ojLnmGW0VpdyEoR7OXucHHfCXMLKy5zzvcGB+2sL0N7bQlMTM3huTsKbr57OWH4FAYFnZ4YQd/HGox864JX0EGa7xKpCR8Pp86goKrKfHal58NJ4Q03v1BY2dhzgmhTGAy0taoQLRX5MDPfCPeACCi2BWtj4dUbBJQcWnpV1fj5YwC++2Lhtz8OEql+UwkdzftrVytJYe/4UIpOthyRVW4lc6Q5SkrTaiF5Ozc9QYdOjQ/T0kX05J6+VOtEB12cn8Xc1DiWFhcw/LUdpZnXkZ169C8pSktGr+otxSE7VnbqMWqjKs+j79Q70UGlJiZ0o1D4BINPSD21/LO4bBzkIDlM7G0c5eqM9Fl0UFN28fiExiAm6T6vRCSmQO7pTyFI6YpJTqP2XkGat2zRQenMBug0gg72taHg7lncSfRbkfSkSJC6SBj6OxqRd+vUio7YPbmWCHLWJHpDiEZQQ0ykr0+NoJtlTrT+hSdcZM+jwiQgKgFbtiohtJHzrf+BEzh87h49AwAS8DWNoBabbOkqJItCqNAtUoe/KmYbLODg6gHljhDYOrnyMVKdlPbroDOCiv2RjBE1RlTsCIjtz5ijYkf0NwAAAP//rJWHcwAAAAZJREFUAwBL+bhW7nYsfAAAAABJRU5ErkJggg==" mediaID="15_puzzle_v4_puzzle_piece_cst_14"/><costume name="13" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAEx0lEQVR4AexXDUzUZRj/3Z87CDoROEGR7yCVTAUSx4CmYsyYm4XDGSwU5rQ0R0UbkxiWsYg1czGdDpqDKZEfEEhJogsTkUTAJL6D+PYQOlAj4ODgrvf9N+i+/tzN3Z263bs9770fv+d5fve8X8+fScz5TfG0S355q4LBM1LMRA29UOaImiNq6AgY2p55jz6xiCoUCoyODOJ+ZyNGxF2YmhjTmwvVHXsoQW9LDZqrfkRjRTE67lzDw6E+yGem9bKj19JTUjWlucj7NBr5abG4kvsZBghh6FHudzWiNCsZOclvouDLvbj8TSqu5BxGybFE5CZH4ru0neioK9dpidGFoIQuEUc3C49jYvSBLrjKfMP1IkLoI7RVl2FK+t8KCO2dQIUC5fIZDPa0oDQ7BTU/5dIhTpmXaO3l0yQK76Cr/gaet1s054DTmtJEJ9H5/Xoh/nkwBBtbETbtTAFJfrD3aBkrH5yqRdjbB2GzUITpKSn+uH0VVEfJhEqTk2hd2RncupgN+YwMfmE7sPXAV/BaFaKiPF9n+F4Hhvs7ILCyxtrXY7FmY5QKnGEs4LdpB/xfiwZjwWf3/Yi4UwWj3OEkSkELHV0QHncIYbEHMbtcdFyXTI6PQjYpZQmIXF6AyMWbU8XKZgGoyEhUqXABOYl6rX4VW/ZlwDd4C5cu5zh1HBy5DwdOViImNQ9eq0M5sQzDgCHRZSwsQCPLBWS4JhycPeHg7AUej8cFMcj4lHScPWh0iwgsn+O0yUmUU8OAE+3kWqL3qmxyAm4rXiGyltO6yYhKxx5Bcu9PDHa3oKmyBOe+2I1LJ5IgIQfO/aV1CNgcC0f35eAqJiPa3VCFH8gl/+3hGJSd+gTi9rtY5OqDiD1peCPha7guC8B8xWRE1UkoFHIM9bbhl/wjqDifiWHyLKtjlPsmI7oiKALxGRfZSz8h61fsSisgd+t2TMsmUV9+DlfJs9zTdEuZm0rbZESVvfLJ6Ra5epPX6mOEbHsPVtZCditQovRgKWNn28xsQ8ev0aaXBYaDCnUgbq+HuKOeNjXEqERp1kVFw6vSAH3xqNCh8dERjHMkPkYh2t9WhwskpTu+PxRVRSdAn1RKRJvQfJRmUXSOL7ACX2BJmxpiFKJC+8VzuUFv8230NldrOJ4d6GutQ19rLdsV2jtCaOfEttUroxC1c3Ild+SLoIdGQrIomr79LRlQ981GuruhEgNkX/J4PCz2XAknD18NHB1gaKUuNJktznwfR+P95yQ7cTMaKopYqJhc1oVH3p2bo7iz6fHoafo/cj7+G+ATsIHF05fobHocfj6djs67N9Dfdgc3i06SL4YY1JXlQUE+c5x91sB1eQAs+HxWR73SSlQd9Dh9+yUeCI1KgB/JOQWW1mwCXX/tAoozE3A+YzeqS7Lx6K9+1jQlGBK5Hx4rg9i+tkorUVuHJayD8LhUko/qJ4ERcRAt9YJysRU5Y2NMEmIOnUEwIeLmu45gvNmsbCmJoH94NKKSshD54TG4+QYqq2q0tRK1XmAPz5eDsWr9Nr3F2389hOR7SN0Dj2FAE+egrXuwnZDa9XkB4tK/x1spueyfcCfkBVY26moafa1ENVBPwYCZqKEXwRxRc0QNHQFD2zPvUUNH9F8AAAD//4mSNwMAAAAGSURBVAMAnBEjZd9hHoMAAAAASUVORK5CYII=" mediaID="15_puzzle_v4_puzzle_piece_cst_13"/><costume name="12" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAEfUlEQVR4AexYf0xVVRz/3Pt4/Pal8CiBXDwRmisMBaNo5IYRMQy31uZaw1BJzWo2tzb6g9LayvLHarNm2MQZNStd0MThK1OeSTKQH4LE4PFDQ35oPBD5+R7v3s45jrdF510uDx/4Ns/e975zv+f743PP+Z7v+d4r7sivlu91+qHULIvwgCbLEjwCqCAIngFUFDWeAVSS7B4CVJY9AyhIEwnd8z8vjdf9Gb2rq2SzWdXPqEwC+ralB92t9bB0tsE6MqQajCxJGOjtQmutCfWmQjSUncS1hnIM9t0EtTuVIVGjUQeUgqo4dQQFO1/B9x9lwnjkQ3QRwFDR2i5fwI+fZiM/Zy0KP98OY/4ulBzKxfE9W3E4JwMnv3qX2KpTtCRAmBooBVT89Xu4cOIARm73YTqtyvgdTh3MwfWmatjHbRDJptDpwxC44EFmZtw6iubKMzhz9BO01JQyHu8iiIIy0MqSozj+2Ra01Z5HwHy9wwFUtCt/FIECHRsZZHopWbl455sKZO8pxub9p7HtQCniUjMhkFPnxtW/0GW+DDuJRZ5pya6Q8C+d/hYXi/Ig2W2ITV6HjLf2wRDzDM/O/3h2+zj6b3RgwNINH79AxL+wHjGrXvqPnG+AjvGiVz7H+ObqszBXn2N93kXkMSd4D4SEIyXrfSRn5mBiuSbGlP4tna3ovd4CslMQ/ugKRjz5oNAI6MOXgIbE8C0Lhgd6eWIQRRFOgRqWJSH9jd1YmpjOVVZihiyKxpo392LblyakbtrFwMBJoyApORl2sJ0CpU8bFGqAIAgO4el06Cz4+s+DX+B8aLy0XFWJhIh1bBjjtjHQUPD113HlCAjnM8rXuLvcjqYqdDReYiES8XgiImISuQ5sVuvcAR261Yumil9J6qqC1scPupAw+M1bwAWq1WrnBujo0ABo6qs/XwSN1hsJL77OMgMXJWEKgsJmIuNu+Q3232SHR5WxADSO49NeQ+zqdYq+7LNdOHe11MF4eCdqz/4Eb98APJWxGQnpm0jfXxGopJTwFTVdGGytMeH3gt1orytjh8DTa7fgyfSN8PL2mdKaloSH0/Q0SdvlW1o5NZQV49yxfehpb0BweCRSNn6AFc+/qtqmDNn9m6mxvAQXf8lDf881GJ5IYgdAdPydY1MtUllyM9A7IA8xkFFxq5H08ttYaHhMLT6HnOzODxD/dJjRXPEb+rrbQZN5fNp66B+OcjifTkcQBPctPa3mKdEjdHHsswiNXAZXmyhq+EB7SH1Y+MV27N+w3EF5O1JRZ/qZ+epsrsGJvVsdY1Tu2McbcPVKORv/u7GS7W5aLI8M9rPdTmWmoj8LDzL9yRfJXUtvGx2GjRQbkx26ei+Rdy6Rp6wLWshOC1qVq6WVaVkIDjOANv2iKCSsySa1bO60aPHyVVSdS1ygtDigG4BW5WopkjiZKK51waFYEpfMKni1+lTuoUeWckHe/wDBnZYZMG3kpY+79DOw6RZVUaPhpye3eJuBUVGcg3rUVbyiq4qzqTer9ehMH8wjZtSjYvRfAAAA//9mNEfFAAAABklEQVQDALQ4KXFtTtjKAAAAAElFTkSuQmCC" mediaID="15_puzzle_v4_puzzle_piece_cst_12"/><costume name="11" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAACuUlEQVR4AexXXUhTYRh+zpkRjJLIIij7u2gUUWFYREE1Em0RhGSBFHUR9oeRiYUR/VxkBEGtbpJYSUQDJQqJtJF0kTeaZt6Yw+jCVYSTtNzcdrazre8dDZzu287Rg3+cA8/Ozve9z/s+5/m+A98rltd8jk532N87oyJmyKUL1XqhdEd1R7V2QOt8s3OPhsMy/N6/8A664RsagBySVBkXDPgYt5/BjWBgWBVXsaOegT4011phq9iHR+UFeHXvHFxfPioqFpZD+NrehLrbJxg3H48v7UdnU60ibjxIkdBvnR9Q/+ACOt49R0jyxbmK7kO/f6G5zgrHkxtw9zoVcZIFpRRKy0tFGqorWZFuGDLmxJAsUbKx7pZGvLhzmr2gHbIUgGjIAAQB47m4Qn/2dKCh+jLaGp8yF/0wbc3HnmNXsHztFkV1Wl/b4LBdw58+F4yZWTAfrcT2wjMwkFhFGRKDuEIlnxeS34O5xvnYebgMlpKbyFq6OpGd4inCPrxoJAxTbh6KLj7EJnNRiuj0U1yhgihixfptOHDeilzLcVVLTmWNmQuxq7gCllO3sCh7DQ1NCFyhK5nIHYVnkW3aPK4CG82HkJNXrPoFecW4QmnjE3jEdOOCILDvRkgXpnieK1RxhkkK1IVqbbTuqO5oGgemfFrfo1ovge7opDka9A/Hehvqj+LweQYhy8GYBjrGBf73T/F5uhOPeik6dNPzSEh+L6KMTZAC3rH5U/Rh3KX/5HjG+puCBNTfL8MPZzsrBfR/78Fb29WEeeqliOfqamU9VemYubY3NYiw/olA/yl+JF7eLUVvV0ss/+gfcfTAdH3mCt2w+yCOXLerBvGWmXKwt6RKNddysop7/uUKnbdgMZasWqcaxKP2hdoWtXziEDfZqnKFJgueyjFdqNbu647qjmrtgNb5Zswe/QcAAP//vwCpcgAAAAZJREFUAwC+07lWcw84ngAAAABJRU5ErkJggg==" mediaID="15_puzzle_v4_puzzle_piece_cst_11"/><costume name="10" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAElUlEQVR4AexXC0xbVRj+aLvWQgsUitCC2sJ8bAEEdclEJzrdnMNsZmoWt0yYiW4z6uLMjErUuanxtYlOTUY04ItgssmcGzo23IK6sbAxUAzQEWC2MLEb8lgftHDrOafh4eVeuDXtHklP8p2ec/7//Pfrf8+9/3dlG0pO+i51lP3U4pPhMmlhosG+UeGMhjMa7AwEO174jF60jPp8Pgz29uCv9ib0dnfA43IExMV9vh/dbY1oqf0Bv9dUoO3kYfTZbeBGhiXFkXTrKam6ylJ8tekRlG1ZharSzThDCENCc/SdxZGKT1BauAzlbxSgcsdLOFCyGXs+fBafFz6IPdufQ9ephmkjTUuUEtq340X8uusjuAb/mTbgRAfqf2zvZ6j9/lM4B3qZSaO7EvHJaVBFajHi9aC9sQYHS7fAUlfF7GLdlESP//gFdr6zBh2NPyMqVg96EbFAQusN1d+gobocIMcm886HsKboAJ7Yth/5r+/Euu2HcNeKjVBrY3Guux2W49Xkt0MoDFsTJXpi/5eo/a6YnCEvsuYvx5KntsKccRvbJKWztZ6ArbWeuc7OuR9zFucjKkbP5rSTyeTIXrACtyzKh0J5BTp/+4WB2oQgSpQ6xyQkY0HBK5i/6gUEms2ezmb0nG6GUh2FhKuvR0xCCg05CcnXZYPC43ai728rOSLnJvnQBVGi5sx5yFv3Fmbl5FG/gMBxIxhyDsLjdiA6zoDo+CTR/Ymm2aCgDnbrKVDQMR8y/sLoPM5gQpzBjIiIiNElyb/99i6SHRs7m/qUmdCnXCu6V66YAblcweyOgbNw9AeYUbbzf3bu832goNuj9UaSUQMdTgF/MrxuF7xDLkE/0YwKektcHCavnWHvEPNmGZuhZGPRzs8Twx43wQUk6iUPhnfIKcpLzOAn6v+DfJ+QZJR/EanzCJlM9JmQSQ1yIfzkCiXkIsckJERptVFrdNL/m8/vSl/8CqXaP+H1Uonytk09Vam1pJZrmJOT6IPROs8WBDs/U5VaAxUpEEIuISEaRXTBaLmkkrD3jHgN5zgOnI9j3NRaHSjYhNeFhChVRpEx8ey82a0WUm0svMuOT+3WVtj/9NupqqIYt46PQkKUhtfqEkHhdg6AVipaUuk6H11EuHRZ6qEgwiQ28SpoYhP4LmweMqJUI8y6dTEro81H9qH5aCW74MTO2lKHtvpDTBcY0zJhTMuYaP7PWJAoVT27P1iPbauzx1C84V72CUF3dxNFvuu9tWM26lf+5mqc/uMYNY/BlHk7TEQaukhJPVz2Liref5rozoPobDqKqpLXmLq3ETmoJA+ROesOoqJuglgTJCrmHOi6ITUdc5c8TsjmEO3MoYNozr0fb8S3W59EU81ulkld0jW459FC3LxwJaZqgkSj45KQdfdyokVflow59xUg3mgGvxln3oi8tW9j6TNFSJ+3lEk6+sCkZuWy2A8/X4wb5i7ib5s0FyRKXxGm9Bxk5C6TjLTsXIiJa1WkBqnk1i58bBNWvvo1+xR5YH0Riy22h89UkCjf6VKYh4kG+y6EMxrOaLAzEOx44TMa7Iz+CwAA//9K75q/AAAABklEQVQDAAwrBGWRGC0EAAAAAElFTkSuQmCC" mediaID="15_puzzle_v4_puzzle_piece_cst_10"/><costume name="9" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAE9UlEQVR4AexYC1CUVRT+dmGX5ZWuK8lrYHkIGcFAouRjolILp2zSatKZSiayosmptJnMtMapSG0mzWq0bKICC3KYKXw/wBlASYmX8kgWF1BgwQVkecOyu91zZ8RQwL27OJMz+89+Z8+599x7vj3/nXPvXem61FLL/x2/5v5jkeIueRxEJ/tFOTLqyOhkZ2Cy55u0NdqkKUVe5pc48v2HyN+/C82acpiGhyeNr81ELRYLWuurkf31euxImo3MlFfw99E0VBceRtHhVGSkJOKrNXNw4Jv3oL9SA/K3h7XNRCvz/2Qk30VtSS4sZvO4HDTFOTi05wPUnDsOe8jaRLSCkSzM/g7dHa2c4BQvP8xfnozVn2Xhrd0FeG3HcTz24gao/EJ4f0ezFiUn9qGhopDbtghhogZ9ExovFqO7vYXHC7g/DgmvfoK4ZWug8g2GXOEOj6leiF70Ap58Yytmxi7mfrpLFWioOouhgV5uiwphonXnC0CgQG73qDgRv7AYSCQSahqF6f6hUD8wDx7Ke1m7BU01JQylTBf/CBMd7O/BYF8Pj+QfHgN/RpIb44jQBx8FgbpbtBUgkC4KIaKmYSOMA30wm4w8jqfKBwRujCNc3Dzh4upxU6/lJvv2phDRIZbNof+sMbmLG+QKtwmjSJ2cofCYCrmrO+gxtDXDoG8mVQhCRBXuU0AQisCcnZxlcHKSMQ3ovHqFoZHrIkKIqEQqBWVIInXiMbradehq03F9ImEcGgCBfHo79SCQLgIhojSxzEUBmVxBKtoaNRzcGEfQcukztGGYkSUXKm8G/R3OKAVSequh9FGTCv3lGjTXlsM42M/tsYSWlTNtecFYXUJtwhlVRy6AOnI+D2I2m0C7VEX+HzCZbj2AaIpzce7gj2xNXoaELRsaREtH6uxMqhCEiUpZwPviliJs7uM8UF9XO/J+34m0zc8j55cUlJ7MQG76Nvy0cQUO7X4fHbo69sMWIGDWXNDjOW0GPJXepApBmCjNrvINwrynX0fYnCVkwmQcYoTqUX5qP07t24aynAxm17F6O4zYhJcRFb9iZOt0Z9srgQ8UENYSvWVKlV8wnkjagsWJm+AVEA6Ziyv3oVfr6jkN4XEJWLXpZyx8bi0n2d/dyftpO/VQenFdRNhMlIIQuaj4Z/HSlgys3XMG7I8MvPNDEZJ35bADyefwCYkiN/Qa2jnIUPkEgUC6COwiak0gKkv93ddYZei74S6R3NCt1O440R5W4HuuXeV0ZHLXkSXCGwSETUSpYJflZOKv7L3sOlI1YbiaohMgkFNwzMMIjo4nVRjCRFvqKnn5yU3fiuJjaewQXQLLOFeR1oZqviHQqUvKtl3ljEDQbUCYJRsgTNQ7KAIENpadS7tRWZANTfFJmFnxp7br0Gkv4HTWt9CW5fEmNdsoQmIeAR1QeIOgECZK89NBmEA67fdH9m5G+scr2SVuA44y/bdPVyPri2TUXzhNLpjuF4qIhcswQz2L27YIqS2DqG7GLk1EILtm0Hgq+G2Ntbh49hiqzhyE7tJ5Xjupz3dmNOJXrUfo7EVk2gybiFI039AoPPP2TixJ/IitO39qGgW66D315nas3JiKwIiHxrxTjRpwG8NmojSvk7MckfHLkbT9AC/261JLR77p6nx9iyVfe2EXUXuDi4x3EBXJljW+joxakyURH0dGRbJlje+/AAAA//8IfOEVAAAABklEQVQDAHoBKGXTp3rcAAAAAElFTkSuQmCC" mediaID="15_puzzle_v4_puzzle_piece_cst_9"/><costume name="8" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAFD0lEQVR4AexYe1CUVRT/AcsiDxGVjZFXhqwahiBhjmRYiP+EJDgm4/TWZsyaMWXGbCzIyaaBmknB6SUhDoWmWApkoSD4KCA0aOUR8pCXrLCgrLCwLbvsdu9d1wFmd9m70EzN7Dd7znfPuee75/ed795z7l37xKxq3X+djpU06OzxP7lsQKf7Q9kiaovodEdgusebljkql3Wi7PSXyHxnHQ5sDceRd9fjwrcpuH2zdtrwWg1Uqx1F49UiZCdvwpE9z6Ei/zDu9XZBR/Tyng5ISk7g+P6XcJAAL8xIwt3bbdDpdFYDtxpo1fkcnMvch77OJuZcIJwBDy8/+C4OZzRzjhfs7OxBX6i+7CcUfpOEtprfrAZrFVBJ6Slc+yUbatUwBEInBK/egJf3n8SWlHxs2pPBaEtqAeJ3HYLPwjDQq5tMg7/Kf4Zc1kFFbuIGqlYpySfuxPDAHeYsKCIWEfHb4fGQH5MNzEHgiPnBEXgsMg7unt5MTadK49Vi1uZl3EClLdchbb7O/Li4z4XIfxFcZ3ky2RgLWLoKASFPsS7tqAZajZq0+ecqN9B7slskol3EGSB0dmXEBBOMzl06PcZ18+MEN1CBoxMEjsJxfs0JdEFRMmdjSR83UHfPeXCfq59zquFBqIYGzPrRqFXQqEfG29jZjZctkLiBegeGwFscwoZWDvbjjrTlwcJiygmst+MGejsamJYuKneRD2vzMm6g9g4C+C4KJ2BDma+aS6dJcs/FqEbD5LFMIe9Fw+/ncOtGFVOLH4+COCyKtXkZN1Dq4OElKxDyzPPw8PIHXcnleV/j6N44lOSkQlKai4qCDJxMeR2Zu2NQc+kH0JcLejIWS8kzdAHSMXjJKqDUyaMrn0X8znQsi94MZzcPlgn+LP4eF7I/RtmPX5Ao/kGirIbXI0uwbnsq1r6ahNnkxeiz1pDVQGVk7lWezUJ92VkoFXKTvnva6nHxxGeoLj4O5aBpO5MD3O+wCmjTtWIUHn4Pdb/mQTU8AL/Fy7F+x0G8kV6CtzMqGW07cB6rNu6Am4cIA2SzciU3DVdOpWGgT3rfNd+NG6iiX4a22jL0dbUwTyFRCYh5MxULlq2Gy8zZoKWTkisB+ETMa9iQ+DnE4dHQabWovXyGvFw+e46XWQr0wbisXlcWMZmmqsCwpxlApjDCPH0D4SMOhZOzG+uVNksgbZKwNg/jAjpK6jTNnSrlEPNB67zIbyFrm2PURuSvt2uvq0B7Xbk5c6N9XEBHlAqoCAH6Yk0/tYv7HKMDj1UKXdzInkAf0bF6njYX0IkD09KoISVyov7fkLmAOpPFQnOmAYiivweKuzKDaPJOjybynk6T/ZZ0cAGlA9LKIpzhSpugu/buVvMHODqvezsayZmplT1D96YBoZGszcO4gXoHhpI6r9+U9JNDXENFIWhSN+WUZQmSdw39XvODQMkgW3q3t9TQYDdvQTDZsUeyskl1NyWXcSZtJ4qOfoTmqlLI2hvQ3VpH8mUB8tJ3sZIqJy9EbWk+FS9fS5vcxA2Ueghdk4DoV94HzZFUHiK7JLr5yD+UiO/2bcaxD18kJ9RktFRfxMjf+lRGQa6M2wZPnwBYc1kFlDoSh6/BCx/kkM1GMmaJfKnKKNFkv3H3V4h961MCMpDY2BHi/1kNlLpyEAjJUTkeWz8pAPnX2igl7M2Cf9AKaj4lmhLQKXnmfNgGlDNgk5rbIjppiDgNbBHlDNik5v8AAAD//25ZFJsAAAAGSURBVAMAOH4pZaQM9EYAAAAASUVORK5CYII=" mediaID="15_puzzle_v4_puzzle_piece_cst_8"/><costume name="7" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAACj0lEQVR4AeyY0U9SURzHv1wQhSAUZcCQISqQRm4o2taLa2b67B/Q6g/opV7rX+itza2H3nq1t6iHtnww8YWCzYGkaxhjScuYEnBB6Z7fQ+uBLS/n3GbuMr7f/c7d4ZwP33Pu5QzpwfNU+7zrxdtsW8J/8tJBRS+UnqieqOgERI93cffo+5ereHIv1rUSzx6hUv6iOvCLm+hobB6Ldx+rUnjuNkzmXkrRYh+AxdZPtRpTnag7MIFr8ytnli88DYPBgJbcwIA7APfIJMwWmxpG6iuRa2i5ZAK55GuaIRRfQGhmgWq1pilo5t0aMutrxDQ+fROR60sw9piprdY0Az36/hWlvTSODw9wyTGEkegNuPxhtXy/+2sGmt18hexmQpnIgNDsoqJbSt39WxPQwvYW9j6uKzdQHU5vAL7xqa7u9D+/lnDQk5aMwnYSxZ0UzROZW1L25jLVPCYc9HNmA0wMajgyAyZW80ooaLNRQzGfwkEhS1z+K3H4J2ap5jWhoKXdNEqf0sTkC8fAHvbUEGBCQdm+LOY/EJYnGIVnNEq1CBMGyk5ElXKRmOyDXgz6xmDus1JbhJ0V9K9z5bbegIl19AQn4QleZaUwCQM9acpgjyZG5nANw+HysVKYhICW93dQ3s8TlPWykyB7ei3UFmVCQEu7GeV3PUNMbH/anR6qRZoQULlehVyrEhdbcrb01BBo3KDt01OCbDZ+EpZNOSnZ+oeoFmncoNXKNzAxKINBQp/NgV6rnTWFihu0dvwDtaNDgpKMRkiSiWrRJvEO2JLrynGuQcNIRhMk0zkFJcJ/YNyJesemsPLwKZR/rXF/dQPx5TuaYHODakLVYVAdtEMoXJf0RLni6/BhPdEOoXBd+gUAAP//2C1A1wAAAAZJREFUAwDL3DlWHzG3RgAAAABJRU5ErkJggg==" mediaID="15_puzzle_v4_puzzle_piece_cst_7"/><costume name="6" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAE4ElEQVR4AeyXD0zUZRjHv3fc8U/+HH81OKkMAf+sBAMrFkzFMrKp6cbE/qwkxWRry0ZQrrU5pc2KyGVaa1Q0K9BqFiIhEJUkIjAEEQSUU6IDiUOOv8cd1/u8eIwU2r0/zi23+23Pc+/7vM/7Pp8993vf5/3JX82uMf/f5XBJo1mOO+Sxg9r6j7Jn1J5RW2fA1uvZ9B1tv1iN4py9yD+Yhsr8bPR0XLYZ74xAzWYzdFoNCj7ZhcwXlyI3YwtqS/LQVFGI3458iM/ffBpZW5eh7Jv3MajXzQhaMihBttWdQsGnu3Dhj3yYzWNTgphGDagqzEHxF3vQ3d48pY81Rsmg2kt1qCn6GtpL9TyOr3o+VjyThqR9+Uj5+BReyPgBEasS4eTixsdbqkvQUP4TDMMDvC+qJIO21ZWjrb6cx5v/YBzik/diycoEePgGwNHZFV5z7kbspp2IWrMFSkcXlnEzWqpK0VpTBimPXMqkc78cxbmyo3wqZTLsodXwDQzm/clKJpNjccx6LIpZy80mkxEm4yhviypJoAO91zDQ2w3IZAhaGIW5YZGY7nFx88SKza+D3dDw0rvHsfjRcejp/KezC4PSLtd1XuHruan84BN4H5xnefD+7VTCoNrL50FCUCr/uVD5q6l520UYdLj/Oob7ezmYq4c3XD18eJvUGHsHKdu0yehUGBnsI7NNRBjUZBplG8LIg7sSqLsXrjZWIvedJHyQFInstLX47r0dOLz7OXy0IxYHUmJx9sSXE3P4RAlKGHTMaMQYg6VYjuyMPP/7MRzbvxPtTVVkukWGB/rw67eZOH4onR34LbeMW2sQBjUZDSw740dMc+VJ1JV9z2OFRj2Gda9kYfv+UiRnFeOJrXsQEPwAHyPVfPYkK6+5GOzroa6wCINOjqDr1EAml2Pls+mI35aBeUti4OKmYu+tNxY8HI8Nrx3EI+u2Q+nkyqc1VpxA4+kC3hZVMwKlirMo+imERj3OgW8OrnRyxv3LN2Jh9Bo+NDKoBwkrU7wvomYE6nXXPfAOnDclpAWCNpyblx/kDgpu0jRUQNNwhrdFlLWgE2s6KB3hoFDyvgvb8SS88x/K01cNT79A7qHTtrGrYRtviyhhULmDEvIboNYGospFQv5D+l4MSbibCoMqHZ2gdHSmmDAZhpmM8La1ys3LHyTW+lv8hEF91MGsvo/flPQ9ndD3aC1rTfur536dfNzdezbcvefwtogSBlWHREAdEs5jXO/+E9euXoRhaPrLsNEwgt6uK+jXdfE56pClUIdG8LaIEgalxZXsYqx0cqEmms4UMSlkJ46Z929WVLFIuF0mg4IdWYobrw63WakkgYbHJSKcfWZQjH5dJ2pL89BaXcpKq4lME9LRUouqn3PwV2sdtwUtiAIJ7wgqSaAOCgWrPE8ihJVNitelacSPB1KR81YCq+lvcPnq7UQc2ZcMTf1pcuEbKCRy1b/KKh+wUkkCpbV9Au5F9PqXEbZsNXVhHjPh745WXiKpTHZpLsDITgUaVM0OQvSGFH67p5JLNlGRDEqB6AMuPjkDG1MPIZBtMrJNllkqXyzfnIrnd+eBSq3cQTF5WKg9I1BLJHrvEtI/499F9G1kkW2ZRQiP2wSqZhZfqb82AZUaXGSeHVQkW9b42jNqTZZEfOwZFcmWNb7/AAAA//9AcwpOAAAABklEQVQDALe6BGWnujZYAAAAAElFTkSuQmCC" mediaID="15_puzzle_v4_puzzle_piece_cst_6"/><costume name="5" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAADs0lEQVR4AexYe0iTURT/fZtOLanM+cCZmbUeS0N7UoYSZRE96CG9iaz+CkQylDDK0qBIkN74R6iBWviPmVKQkWaQUKIVkpKPlLSHWmqay72+7r24YWptd3NSso/9znfO/c4957ezu3vuJonPqhb/deQ9qRMl+E8uB9Gx/qAcFXVUdKwrMNbxJvYarbiXgfSYMG6UZKeir7vDqmJP7IoOLUmAagXW7EtE1KHTZqFatQkubu5Dp1us21xRrxlKLFy9FSGRO8xCMXcxnF3cLCY31NFmojLXyZC5TR4a0y66zUQhCHYhNjyoTURZNV0nDY9pF5ub6EB/LygoG0EQSEG5Q9Cp3ODOoh1QQ6tRs0RSZxdQMMPOgpuourcL6t7u32g1Vpch5+zeURtA8c1EfG1rhK0XN1GdTgudVsPyDqh7UXYnDYVXj6O9pY6NDRfvXpYg59w+PL2bjn7yJoc/t9TmJkrXJwVNoCeEKaTOMngFzMOiNdEIj47F0o2HoFCGgX7ZjH5VJbmofJBN1ncfHeIGN1GDXgeDQW9KNDN4JaITMnAgOQ/rDp7Cik2HEbErDruTMrHr5C3MDotkvqLBgJpnhXj7vJjZvIKbqD/pLpuPXULMxUIcSSvGFqLT6gmSkaG8Z85H+M5YKJeuY7x+/ujB9842aNT8VR0ZnYX8s6BdaKrcDx4+AZgqV0Bmpnd7+s2Cp1+QKWBDVSkaqspMtqWKpUQtjTfCTxAkkJPzgKdiNnvW09GGno5WpvMIuxOlZKZM98UUT1+qWo1xIarTDIDCapZk4rgQpad6CpIPdMui65zqPOAiSpOVZJ83daDy/MvQkpb6t4R6nQadrfXo+tzC3HyDgkHBDA7BRdR9mhemefvDSebKUjS9LgeFKIrMHk0011SAwvhMoQwlzSDUaFp85yJKo/oEquATuICq+PbxPSof3kZjdSloI2CDg0JPWm3Tq3K8KM4k7bWWjbK5s1REFwj4XhI+dyBAtRzKJWtNv32+NNei6HoCspN2oOhGAh5lpeD+tXhmF5L7p8Y3LIW7hzeCI7YjMCQc1lzcRGmSsKi9iIo5A7n/HGpCFA3obv+A+srHqCkvIBt6KdsrxcFWK/dXInLPCYREbINEImVzeIVVROkmPndZFPYn52LD0RR4+AaOmteHLJFtcVdwMDUf85avh0TqNKqfJYNWETUGljrJsDB8C2IuFID8az0C+8lBJSg0wuhu090mojZl5pzsIMpZMLPujoqaLRGng6OinAUz6/4LAAD///S3U4cAAAAGSURBVAMAzQmuVo8YA5wAAAAASUVORK5CYII=" mediaID="15_puzzle_v4_puzzle_piece_cst_5"/><costume name="4" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAACsElEQVR4AeyYS0xTQRSG/155WbWJQFwUJYG0KBrkIUWiMQ1SNL4WJi5cGevCuDPRpQkb903YudOV8RWJLyJKWkshxUdaKpXSWkEE1FitRCq19HGdO5iGRU3G3rmJDfem5/QxZ/5++adnOrnChate8X+P6/YJUUCBXCoo74VSHVUd5e0Ab73V/RtNxGNw3rDBdqYFNmszrpy3wOe4I8tk7o6KmQzGh+5jfPgBIIqy4FZO5g46M/ESoVcDiMfmV36P7NdcQROLC5j0DWEuNApdpZ6GbMI/AlxBfY7b8NlvEmkRVcYmGuQNlwc30LDHgeCLJ0inkqje0Y7aZjOKSkq5QEoiXEAXf0Qx/WYEkQ9BaHXlMLZ0oMrQBJ6XbNBMJg2/6x7tckFYg/o9R7G1/RBPRqolG3RydBDB54+RTMSxpd4E4679KNNuoOI8kyzQ2PcvmPK5EJkJoai4FNXb26A3NPLky2rlDZpJp5aX3P0I0GhgOmKF6bAVSl15g4a9z0iX9yOdXEJdaycJi1KMVDcv0Nh8BNN+N77NvaObes3OfSjX11JBpVJeoH5nL/yDvdAIArbtPoi6tgNk9TVKMVLdfwaVtqIxAimSA4ex1UK2o2MoLimjYkomVlDK8HU2jKnXLixEPy8vecNeVOhr6JjSiRlU+msMe+zk0OGiTJWbDZA6f8x5F7kiMNKH6Kf3tDaV/IWPb73ZutmQh+67dJAxsYOS7pZOR2nyLGlLG/3Ta5fxt3Dd6iGnKK9UiqX4TwTcfdnawPBDSFp0kDExgzLqKVbGDFqydh3MJy+C3KdiirO2fjSYj1Nwra4CnacuZed1WbuxfuMmOsaamEFZBZWqU0F5O6s6WjCOSl3ddbqbdvq5ngE0dpyQxa4uvSz7ckxWHc1hiqyPVEdl2ZdjcsE4+hsAAP//nJcQzAAAAAZJREFUAwCK/35WuaqpZQAAAABJRU5ErkJggg==" mediaID="15_puzzle_v4_puzzle_piece_cst_4"/><costume name="3" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAEqElEQVR4AexYbVCUVRR+dlm+YQkWhOVDTSETKUMHSsopmUilsKipHJgx1CZLDSfMYaqJH0ZONZVZGCUzwoyJTSo2YmRQflEkiEsJCAiIwOCuIKy58eEKu91zp2VUdNv7sjQ6szs8Z99z7z3nPHPeu+fcizwjv8Z8u6PwUKNZjjvk4yBq7xflyKgjo/bOgL392WWPDhr0aDx+ED/mvYu9n6xBWUE2zv5xDMbBfrvxlUx0ZNiI1poj2JW9DLnp8Sj5+i00VBxAe10Fao/uxfdb1iFn9SPIW78YNWWFMA4NjIu0JKKUqYqiXBTnvAlta61VAoY+HY7s+hi/7tmCgcu9Vtdam5REVMMyVP3TDphMI5DJ5ZgcGYvFr7yPFR/ux+tfVWDVZ2VcDw6fzWObzWbUle9H7bF9GBkZ5mOiQphoY+VBNPxeAvO/JB+IfwGJr36AmfMScdekMDi7usPTx5/ryW98gTlPpII+w8YhnG85hZ6OJlKFIUzU0KsFgSKFzpiLiJgEeHj7kjoGrh7e8PYLhIubJ5/ratKg64yGP4sKIaJXrwyCIFc4w0nhgqC7oxhmWY2pnj4b6vD7+RrjUL/kSiBElF5rXPJqrP2yHOvyKjH/+XQonF05iVsJpb8aSlXwraZtHhciarPXaxb2drWit6uFj9BWIHBFUEw4UW3rqdESFjYzBgRBjnz5hBI9UZKPqgPbYTaboHBxQ9C0KPiHhvPAosIuRKmF9nQ2Q9d2Gs0nf0Fp/kZsy1iI8t2fY/jqFbh5KjHv6VWYk5ACmUxaSGlWN6Sj+eQhFH26BoUbU3m3qmOFvf/SRVBdjX1yBZa+XYCYxDT81w/vBrfXqfLrNDsq9LoHLvehs+EEzrH+/7e+e1ze7UI0Ym48ns3YipSsnViSvhnR7BX7sC5FdVN7tpb3+n2b1/JtIZWtXYi6s84UEBbBin8kwqMfw4KUDVjJ+v5L2XtwD+tcRI72sKZ0JzpOV5EqDFuJCjsmA1XIdFCDmBG7kFTWPmsY/ocWyqMJCt/AyVAFT4Nc7sQtdW31rDrU82cRMaEZJSJ0DPRWBcHLN5BU6C90QK9r588iQohoe30lP7nnrV+E7ZlJ+PPwbptiUS0l0GI3DyWvq/QsAiGibl5K7tvQdwF/XdRi0HCJ69YEHa6pNFlO937qKfBTT7VmctM5IaK01/xDWAuUyUAH5xbNYXZvOnpTx5bBvvNtIFh0n4BQ+ASEWFSbv4WIUmfxDZoKpUrNA3S3N0BT+g0r6lWMuImPXSu62xvxW1HOaP30UKrg4aNiS2QMYn9CRMn1vQ8twqyHkyB3UpCKzsZqfkUueOc5FG/dwK7K7+GH3EzsyHoR325aPppx+lFFzV+CyLinuJ2oECbqpHBGbNLLSFieBd/AKTyeiV3Y9LpzaK7+mV2Vi9BUVYqezjOgexItoKvIg8wmhvV9OnzTmCiEiVIAJ5ZNyuqy7O+QkJbF9lwoDY8BbZXox5cibVMR4p55Da7uXmPW2DogiajFOd2b7ns0GSs/Kgb7r/UYpG87jgWpmayGTrKYSP4eF1HJUSUYOohKSJpVE0dGraZHwqQjoxKSZtXkHwAAAP//EmtbPgAAAAZJREFUAwDWX/9Ww5HtFQAAAABJRU5ErkJggg==" mediaID="15_puzzle_v4_puzzle_piece_cst_3"/><costume name="2" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAADs0lEQVR4AeyXaUhUURTH/46ZS4tSWtTYYjR+0KwsozTaKKOVDIIiaSMqiz6EUh+ihQoqaKNsIbIsoqiw0EnRCidKTUdTixwXtMU9xyW3zGWc170XGhSZZu7zDhTMMOe8e96975wf5+6KyNh86V+Xh5piSYH/5GcHFd1R9ozaMyo6A6L9CRuj5Totkm8dRdy5CPb89DYerQ21wnhlg0qSEXXfCqGOjsKlnbPx9HwEit4loqJQy56vYk8g5uAqXNu3AOlx0ehobcJgfrJBdWlqAhmJsjwNJKPRLEPXr3ZkJ92B5v4ZNFZ/NtvOUoUs0IK0BGSqb6KtqY75d/dSInjdHmw5+Rj7b2Rgb/RrhB24jMnTQlg9VaW5qdBlPEd3Zwc1uYUblHYh7fK2xu8s2ES/uVix6xSCw/bAa4Ivhrq4wXW4B6bMWIi1+y8gaOU21k6SJFToslBZlM1sXsUNWparQRnJDg3kNnI0VEHLoFQFEtOBSP+/k7MLy6rSl9YD+ooS6MuL+zey0uIG7TV0o9fQw9x7TVDBy3sqK5tTnqTe01tlrtrq99yggaGbse/qGzYWV0ecxVgf/78Gc1A4wkHBHWaAT9ke6Fh0Ge4OxyFOA5z2fWHo6YShu6vvK1ll2aDWRqsszDFNoFHjfDBqvI+1n/ZrZ3PQlvoqtNRXs6CTA0LY5GIGp7IZqLHXgIxn15CZcJMheZKJp/SdBWe3EczmVTYBpatC3ssH+Kh5wnjouhqwYD2mBi5mthwlHJTuPDnJd6FNjEHnz1aSwZEIWrUd05dsGNTsFwra/kNPDiBXoFXHoKujHa4jPMiOtRuzl4dbXB0sZVkYaHVpPlJijuFD6mOyIXSD7v+LNkZhVmg4FI5DLHFYrLcW1KwjuocXZSbhxe3j7IhHGypVM7Fs2xH4zV9DTSEyKFA6swvS4snsvo7muko2Bn3nhGLp1sOY5D9PCOAfJ7JBjcZeFJDjXhZZflobapi/gIXrsST8EETs7cxhHyUbtESbgvfJ90xnUnqcW7QpCsPcPfu4F1eUBdpCdpvygiw06ysZCYUMJgdnJ2dXZttCcYNK5NqhS1ejkNyPKJBfyBpMX7wBtoSkcbhBS8nBmQr92H2MNyaSSeNBntS2pXCDNtV+QVPNV8bUoq9Cyq0juLgj0Gp5dHoHysnVmjngUNygtOslclXmiCGkKTeokKgynHCDBodFIDI2X7ZsOhyLSf5zuVG5QbkjCPrADiookSY39oyaUiGoYM+ooESa3PwGAAD//9CcbG8AAAAGSURBVAMAAfjGVqqhqmoAAAAASUVORK5CYII=" mediaID="15_puzzle_v4_puzzle_piece_cst_2"/><costume name="1" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAABqklEQVR4AeyYPUjDQBiG30ZR/ClUFAcdFHQTqYIg4lQFEURwETtIoVvBSUGFOjgIukg3xbpUECSTKCoO/kAHKaJQpAgqgj+DggXp0ILExpgUWto6JDm/wdYLfCRHvnvv4cktF2EqEFb+em2d3igCCuTioNQfihvlRqkNUOf9rz36JSdxd3mMzXknfO7OVB1tLCAei5KJ/bXRhAoTFH049M8h+nxLBpYfxAyqKAoeI2fYW5lG+ESEnJTys0nHTKDyp4SLgwD2V2fxcn8FqNAdfWPQipQuK4wJNB57w/vrA6SPBKpsdeh3eeEYn0GF1ZYVTfvIBKohWAQBze29GJ5Yht0xCouFOUqL0y2m9JLSMnQNujDkWUJDq113EYoGJtDqmnrUNragvNJKwWAogwnUUDJxEwclFgpulBulNkCdZ3SPUq9rOo+DmlamM4Eb1RFk+jU3alqZzgQmo6GdtdRJM33iTN9Du/7McpHgNtYnB370iYtuPF2fZ/qMPjCBGg2n7Ctu0J4RD9S/1Ezl9AbQ1NZtWnZxGzWtg2ACN0ogMSeCG83RQTAoGKPfAAAA//89/tzKAAAABklEQVQDAH9p7UfBUHKZAAAAAElFTkSuQmCC" mediaID="15_puzzle_v4_puzzle_piece_cst_1"/><costume name="15" center-x="21" center-y="21" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAEV0lEQVR4AexWD0xVVRj/3ffAkngBzz/4nov5YLbJAKGBJfZyQVb0hk6XEDYXaMtcLoycRUvndDXXlKzBJkZDxblyQTCy7I8uaWJMXuasoZIQgwRD/vPg8d7j3r5zY9N3ve96g/umbe9sv3PPOfc73/ntd77znaMrKD8v3Os4euqSoMP/pASIar1RAUUDimqtgNb+AjF61xQVBAFDvdfR1fIbeq+1wjXq0JqLoj9VW89Infv6II7syMHRXWvx3cGd6CTCUCjDfX/je7IrykuCGlQVbVL0eUeijNDx0kKcqSzG6FCfAjXvX46BG3D093gPTqGnSLTxxGF88cEGtF74CQ+Ez0RoxGzVS/E8D54fF+0Xr9gAevgoYlVBMUzRcaK9XOWTqP3bCvxccwD8uBuJadlYvmkvLPFL5HzIjjH1R4f7AY77F5ha8UmUuQ2bNRfLcrcjbe3b+C9qsrn8uAe8xw29Pgh6fTAbmhJ8ErUkWGHbuBsLUm2TWmBksBcjFNOcTg9O53MZ1b59ejCa5sFostDO0dapdnfTkMUnU5XjOPiV6M0lJ9cS6DAJAg990DRCMIb7u2E/cQTlhSvx4fpkVGx/ARdPV8HpGFS1gE9FVc1WMGKHkPd44HE7KbWVoOzNDJz+fC/6uv6EQNmgu/0y5dld2J+fjrpj+zA2MqTgDfAbUYFuMgaPawwupwMhlN7mJ6fjseWvIMWWh7kPJyH4vhCw8Gj85hDqq/fDqUDWb0QZAQa29YlP5WDNtgpkvrYHqSs3wvr868h6q0w8rHMmcmdT/XE01X8FX8VvRBfZ1iH/kwYRaS9uRWj4LC8OHGWC6IVWLFhsw/2hYRSrA7jRcVWMZS/DiY7fiE74v+MnKvZRMDDDwZ5OMLC2FGqJSudp1p9htmAGpUHmULzNKPeythR3najHPUaZwSXyYuHAcfKU5EfFaZOvPC4nev5qwdXzP6K7/Yqio76uNkpZbaKNgR49hohIsS2t/EK0u6OZcmYRaj5+A2erSxXJdlz+BR1X7CKv8MgohEc+JLallV+ImqLjYY5JAMdxaLlQhz/spzBOyV+6ePulc2hu/AHO4QGEGIwIm2mm3Dpdaib2ZYleb2tC9Uf5Xi/zAwXP4GLdl+Kka82/onLPq17/P3s/D22/N4j/WWWenwgGlkvP1pTSlZmFhtoyMAWb7SdRW7IF1fs2U98OHb2wkpblYGFaFpsqC53sqAaDUbGL8ETWZlgSHgc7JL2drThTVYJju9ejtngLKXkS7rERhFJMPrlmK5IzXlJcVZbog8Y5SEzPprfoNtVIycgFSzW4pZho+zPpwZ39TjlSnsula/MRGM3RMMXEI3ZJJp5etwM57x4iJVeLD5dbpt7WlCU63RCBeXGpiF+6SjVikpaSOrNvWyAoeJoYr9bV+cgu/BS571USucN49uWdiLOugMEof8qljmSJSo3uhX6AqNa7EFA0oKjWCmjtLxCjWiv6DwAAAP//bP3qTgAAAAZJREFUAwA9TBdl9fgu9wAAAABJRU5ErkJggg==" mediaID="15_puzzle_v4_puzzle_piece_cst_15"/></media></snapdata>