<snapdata remixID="11357672"><project name="U3L2-ContactList" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U3L2-ContactList"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;pt:lança _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;pt:lança _ _&#xD;</translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><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;</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></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;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="210.47493489583334" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="151.33333333333334" collapsed="false">Returns the function x↦f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="202.66666666666666" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="287.3333333333333" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="264" collapsed="false">Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="247.33333333333334" collapsed="false">The primitive FOR block uses an implicit step of ±1 depending on which of the starting and ending values is larger.  This version allows you to provide an explicit step value.  If the sign of the step input is incompatible with the ordering of the starting and ending values, the script will not be run at all.</comment><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportLessThan"><block var="step"/><l>0</l></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="pipe %&apos;value&apos; $arrowRight %&apos;pipe&apos;" type="reporter" category="control"><comment x="0" y="0" w="339.3333333333333" collapsed="false">The inputs are a starting value and one or more monadic functions.&#xD;The first function is called with the starting value as its input.&#xD;The second function is called with the value reported by the first function as its input, and so on.  PIPE reports the value reported by the last function.  PIPE provides an alternative notation for function composition instead of the usual nesting.&#xD;&#xD;nested acronym:                                                                 &#xD;report (combine (keep items (capital-letter? ( )) from&#xD;                  (map (letter (1) of ( )) over&#xD;                                                 (sentence→list (phrase)))) using (join ( ) ( )))&#xD;&#xD;piped acronym:                                             &#xD;report (pipe (phrase) → &#xD;            (sentence→list ( ))&#xD;                              (map (letter (1) of ( )) over ( ))&#xD;                                              (keep items (capital-letter? ( )) from ( ))&#xD;                                (combine ( ) using (join ( ) ( )))&#xD;&#xD;Some people find PIPE easier to read because the functions are called in the same order in which you read them, whereas in nested composition the innermost function is called first. </comment><header></header><code></code><translations>pt:a aplicação a _ de _&#xD;</translations><inputs><input type="%s"></input><input type="%mult%repRing"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="pipe"/></block><script><block s="doReport"><block var="value"/></block></script></block><block s="doReport"><custom-block s="pipe %s $arrowRight %mult%repRing"><block s="evaluate"><block s="reportListItem"><l>1</l><block var="pipe"/></block><list><block var="value"/></list></block><block s="reportCDR"><block var="pipe"/></block></custom-block></block></script></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script></block><block s="doReport"><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.000001" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE➞LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a primeira palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportCDR"><block var="sentence"/></block></block></script></block></script></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportCDR"><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but first of empty sentence.</l></custom-block></block></custom-block></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script></block><block s="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></block></block></script></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.99999999999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a última palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block var="sentence"/></block></block></block></block></script></block></script></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but last of empty sentence.</l></custom-block></block></block></block></custom-block></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>First of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="sentence"/></block></block></script></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>First of empty sentence.</l></custom-block></block></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations>pt:o último caractere de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block><script><custom-block s="error %txt"><l>Last of empty word.</l></custom-block></script></block><block s="doReport"><block s="reportLetter"><block s="reportStringSize"><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a última palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><block var="sentence"/></block></block></script></block></script></block><block s="doReport"><block s="reportListItem"><l><option>last</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>Last of empty sentence.</l></custom-block></block></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations>pt:a palavra _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="empty word? %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.</comment><header></header><code></code><translations>pt:a frase _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListIsEmpty"><block var="sentence"/></block></block></script></block><block s="doReport"><block s="reportListIsEmpty"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><comment x="0" y="0" w="230.66666666666666" collapsed="false">Like JOIN, takes any number of words (text strings) and reports a sentence with its inputs concatenated, but inserts a blank space between the inputs.&#xD;Consider using SENTENCE (Lists palette) instead.</comment><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;pt:uma frase com as palavras _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="words"/></block><script><block s="doReport"><l></l></block></script></block><block s="doDeclareVariables"><list><l>first</l><l>bf</l></list></block><block s="doSetVar"><l>first</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="words"/></block><l><option>list</option></l></block><custom-block s="join words %mult%txt"><block s="reportListItem"><l>1</l><block var="words"/></block></custom-block><block s="reportListItem"><l>1</l><block var="words"/></block></block></block><block s="doSetVar"><l>bf</l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="bf"/></custom-block><script><block s="doReport"><block var="first"/></block></script></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="first"/></custom-block><script><block s="doReport"><block var="bf"/></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block var="first"/><l> </l><block var="bf"/></list></block></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><comment x="0" y="0" w="165.33333333333334" collapsed="false">Takes a sentence in list form and reports the sentence as a text string.</comment><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;pt:uma frase com as palavras em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-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;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportEquals"><block s="reportStringSize"><l></l></block><l>0</l></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>word</option></l></block></block></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="146.42857142857144" collapsed="false">report a list in which each item is one letter from the input word</comment><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;pt:uma lista com os caracteres da palavra _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="word $arrowRight list %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script></block><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="158.57142857142858" collapsed="false">join all the items of the input list&#xD;into a single word, and report it</comment><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;pt:uma palavra com os caracteres em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><block var="list"/></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="list"/></block><l></l></block><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportNewList"><list><custom-block s="list $arrowRight word %l"><l/></custom-block></list></block><l></l></block></autolambda><list></list></block><block var="list"/></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="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="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="require nonempty %&apos;text&apos; %&apos;message&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="220" collapsed="false">Helper function for word/sentence library.&#xD;Reports its first input, unless that input is empty, in which case it gives its second input as an error message.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportListIsEmpty"><block var="text"/></block><block s="reportEquals"><block s="reportStringSize"><block var="text"/></block><l>0</l></block></block><script><custom-block s="error %txt"><block var="message"/></custom-block></script><script><block s="doReport"><block var="text"/></block></script></block></script></block-definition><block-definition s="first letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the first character in the string.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><script><block s="doReport"><block s="reportLetter"><l>1</l><custom-block s="require nonempty %s %s"><block var="word"/><l>First of empty word.</l></custom-block></block></block></script></block></script></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o texto multilinha _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><block var="string"/><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><l>1</l><block s="reportDifference"><block var="index"/><l>1</l></block></custom-block></block></block></script></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="203.33333333333334" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><l></l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><block s="reportVariadicSum"><list><block var="index"/><block s="reportStringSize"><block var="marker"/></block></list></block><l></l></custom-block></block></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="use case-independent comparison"></custom-block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><custom-block s="to lower case %txt"><block var="small"/></custom-block><custom-block s="to lower case %txt"><block var="large"/></custom-block></list></block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="small"/><block var="large"/></list></block></block></block></script></block-definition><block-definition s="use case-independent comparisons %&apos;tf&apos;" type="command" category="operators"><comment x="0" y="0" w="225.33333333333334" collapsed="false">If input is TRUE, comparisons made by functions in the string library will be case-independent (so &quot;FOO&quot; = &quot;foo&quot;).  This is the default.&#xD;If input is FALSE, comparisons will be exact.</comment><header></header><code></code><translations>pt:altera comparações ignorando distinção minúsculas/maiúsculas para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block s="reportNot"><block var="tf"/></block><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>_case indepent</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>_case indepent</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></script><script><block s="doApplyExtension"><l>var_delete(name)</l><list><l>_case indepent</l></list></block></script></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block s="reportIfElse"><block s="reportLessThan"><block var="start"/><l>0</l></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="start"/><l>1</l></list></block><block s="reportStringSize"><block var="str"/></block></list></block><block var="start"/></block><block s="reportIfElse"><block s="reportEquals"><block var="end"/><l>0</l></block><block s="reportStringSize"><block var="str"/></block><block s="reportIfElse"><block s="reportLessThan"><block var="end"/><l>0</l></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="end"/><l>1</l></list></block><block s="reportStringSize"><block var="str"/></block></list></block><block var="end"/></block></block></block><block var="str"/></block></block></block></script></block-definition><block-definition s="text %&apos;string&apos; contains %&apos;marker&apos;" type="predicate" category="operators"><comment x="0" y="0" w="218" collapsed="false">Reports True if the first input string contains the second input string, otherwise false.&#xD;&#xD;Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportGreaterThan"><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block><l>0</l></block></block></script></block-definition><block-definition s="to lower case %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="275.3333333333333" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_lowercase(txt)</l><list><block var="text"/></list></block></block></script></block-definition><block-definition s="use case-independent comparison" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>_case indepent</l></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="string %&apos;big&apos; contains %&apos;small&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="text %txt contains %txt"><block var="big"/><block var="small"/></custom-block></block></script></block-definition><block-definition s="contact with name: %&apos;name&apos; address: %&apos;address&apos; phone: %&apos;phone&apos; birthdate %&apos;birthdate&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="name"/><block var="address"/><block var="phone"/><block var="birthdate"/></list></block></block></script><scripts><comment x="57" y="110.19999999999999" w="129" collapsed="false">This block accepts the  user&apos;s responses to the questions and stores the variables in a list. We then set this list to contact list.</comment></scripts></block-definition><block-definition s="name from contact %&apos;contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="contact"/></block></block></script><scripts><comment x="270" y="10.199999999999989" w="103" collapsed="false">This block accepts any value. It reports item 1 from the inserted block since the contact&apos;s name is in that position.</comment></scripts></block-definition><block-definition s="phone from contact %&apos;contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="contact"/></block></block></script><scripts><comment x="269" y="43.19999999999999" w="90" collapsed="false">This block accepts any value. It reports item 3 from the inserted block since the contact&apos;s phone number is in that position.</comment></scripts></block-definition><block-definition s="address from contact %&apos;contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="contact"/></block></block></script><scripts><comment x="282" y="41.19999999999999" w="90" collapsed="false">This block accepts any value. It reports item 2 from the inserted block since the contact&apos;s address is in that position.</comment></scripts></block-definition><block-definition s="ask name" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>Enter a name</l></block><block s="doSetVar"><l>name</l><block s="getLastAnswer"></block></block></script><scripts><comment x="191" y="20.19999999999999" w="90" collapsed="false">Ask the user their name and set their answer to name variable, so we can call on it later.</comment></scripts></block-definition><block-definition s="ask number" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>Enter their phone number</l></block><block s="doSetVar"><l>phone number</l><block s="getLastAnswer"></block></block></script><scripts><comment x="241" y="48.19999999999999" w="90" collapsed="false">Ask the user their phone number and set their answer to phone number variable, so we can call on it later.</comment></scripts></block-definition><block-definition s="ask address" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>Enter their address</l></block><block s="doSetVar"><l>address</l><block s="getLastAnswer"></block></block></script><scripts><comment x="207" y="33.19999999999999" w="90" collapsed="false">Ask the user their address and set their answer to address variable, so we can call on it later.</comment></scripts></block-definition><block-definition s="Clear list" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="Clear List" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>Are you sure you want to delete all contacts?</l></block><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>Yes</l></block><script><block s="doSetVar"><l>contact list</l><block s="reportNewList"><list></list></block></block></script></block></script><scripts><comment x="324" y="21.19999999999999" w="106" collapsed="false">I first ask the user if they&apos;re certain that they want to delete all contacts. If the user says yes, then we clear the list. I think it would&apos;ve been unnecessary to make this an if-else statement since the list would stay the same if the user said no.</comment></scripts></block-definition><block-definition s="date %&apos;month&apos; %&apos;date&apos; %&apos;year&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="month"/><block var="date"/><block var="year"/></list></block></block></script></block-definition><block-definition s="month from date %&apos;input&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="input"/></block></block></script><scripts><comment x="234" y="37.19999999999999" w="90" collapsed="false">This block takes any value as an input. It then reports item 1 of the input since it&apos;s the month.</comment></scripts></block-definition><block-definition s="day from date %&apos;input&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="input"/></block></block></script><scripts><comment x="208" y="56.19999999999999" w="90" collapsed="false">This block takes any value as an input. It then reports item 2 of the input since it&apos;s in the position of the day.</comment></scripts></block-definition><block-definition s="year from date %&apos;year&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="year"/></block></block></script><scripts><comment x="204" y="39.19999999999999" w="90" collapsed="false">This block takes any value as an input. It then reports item 3 of the input since it&apos;s the position the year is in.</comment></scripts></block-definition><block-definition s="birthdate from contact %&apos;contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="contact"/></block></block></script><scripts><comment x="287" y="34.19999999999999" w="90" collapsed="false">This block accepts any value. It reports item 4 from the inserted block since the contact&apos;s birthdate is in that position.</comment></scripts></block-definition><block-definition s="ask birthdate" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>Enter their birthdate (Month Day Year)</l></block><block s="doSetVar"><l>birthdate</l><block s="getLastAnswer"></block></block></script><scripts><comment x="287" y="54.19999999999999" w="90" collapsed="false">Ask the user their birthdate and set their answer to birthdate variable, so we can call on it later.</comment></scripts></block-definition><block-definition s="find contacts with name : %&apos;name&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="name from contact %s"><l></l></custom-block><block var="name"/></block></autolambda><list></list></block><block var="contact list"/></block></block></script></block-definition><block-definition s="Search for Contact contact" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="Find Contact" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>matching contacts</l></list></block><block s="doAsk"><l>Search for a contact by entering a name</l></block><block s="doSetVar"><l>matching contacts</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><custom-block s="name from contact %s"><l></l></custom-block><block s="getLastAnswer"></block></block></autolambda><list></list></block><block var="contact list"/></block></block><block s="doIfElse"><block s="reportListIsEmpty"><block var="matching contacts"/></block><script><block s="doSayFor"><l>This person is not in your contacts.</l><l>4</l></block></script><script><block s="doSayFor"><block var="matching contacts"/><l>4</l></block></script></block></script><scripts><comment x="474" y="33.2" w="160" collapsed="false">I created a local variable to use only for this block. I ask the user to search for a contact by entering someones name. I then set the local variable to a keep items because we want to keep the contacts name in the contacts list if it matches the user&apos;s answer. If the local variable is empty, than we tell the user that the person isn&apos;t in their contacts. If the person is in their contact, then the code tells the user the contact they&apos;re looking for.</comment></scripts></block-definition><block-definition s="names list" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="initials from contacts %&apos;contact&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>list of names</l></list></block><block s="doSetVar"><l>list of names</l><block s="reportTextSplit"><custom-block s="names in contact list %s"><block var="contact"/></custom-block><l><option>word</option></l></block></block><block s="doForEach"><l>item</l><block var="list of names"/><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><l>1</l><l/></block></block><block s="reportLetter"><l>1</l><block s="reportListItem"><l>2</l><l/></block></block></list></block></autolambda><list></list></block><block var="list of names"/></block></block></script></block></script><scripts><comment x="502" y="36.19999999999999" w="120" collapsed="false">I created a local variable to use only for this block. I set list of names to the split and names in contact list blocks. I use these blocks so we could split the names in the contact list to create a new list (list of names). The names are split by first and last name. I then use a for each block so the information inside of it can be applied to each item in the local variable. Since we want the contact&apos;s list initials, I use a map block with the join operators so we can combine item 1 and 2 to over list of names. I left the lists inside the item&apos;s empty so each item in list of names can be joined correctly.</comment></scripts></block-definition><block-definition s="names in contact list %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="name from contact %s"><l></l></custom-block></autolambda><list></list></block><block var="list"/></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="1" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="1463"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list id="1464"><item><ref mediaID="Stage_cst_contact-list-stage"></ref></item></list></costumes><sounds><list struct="atomic" id="1465"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Clear" idx="2" x="150" y="50.00000000000003" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="0,137.70000000000002,55.080000000000055,1" pen="tip" id="1470"><costumes><list id="1471"><item><ref mediaID="Clear_cst_clear"></ref></item></list></costumes><sounds><list struct="atomic" id="1472"></list></sounds><blocks></blocks><variables></variables><scripts><script x="195" y="41.33333333333334"><block s="receiveInteraction"><l><option>clicked</option></l><comment w="90" collapsed="false">When the clear list button is clicked, the code inside the block runs.</comment></block><custom-block s="Clear List"></custom-block></script></scripts></sprite><sprite name="Find" idx="3" x="150" y="2.842170943040401e-14" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="3.8250000000000033,191.25,0,1" pen="tip" id="1479"><costumes><list id="1480"><item><ref mediaID="Find_cst_find"></ref></item></list></costumes><sounds><list struct="atomic" id="1481"></list></sounds><blocks></blocks><variables></variables><scripts><script x="162" y="120.33333333333334"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="gotoXY"><l>150</l><l>0</l></block><custom-block s="Find Contact"></custom-block></script><comment x="313" y="137" w="108" collapsed="false">When the find contact button is clicked, the code runs by first asking the user a question.</comment></scripts></sprite><sprite name="Add" idx="1" x="150" y="99.99999999999999" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="1491"><costumes><list id="1492"><item><ref mediaID="Add_cst_add"></ref></item></list></costumes><sounds><list struct="atomic" id="1493"></list></sounds><blocks></blocks><variables></variables><scripts><script x="62.68945312500034" y="29.99999999999997"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="gotoXY"><l>150</l><l>100</l></block><custom-block s="ask name"></custom-block><custom-block s="ask number"></custom-block><custom-block s="ask address"></custom-block><custom-block s="ask birthdate"></custom-block><block s="doAddToList"><custom-block s="contact with name: %s address: %s phone: %s birthdate %l"><block var="name"/><block var="address"/><block var="phone number"/><block var="birthdate"/></custom-block><block var="contact list"/></block></script><script x="10" y="494.9999999999977"><custom-block s="day from date %s"><custom-block s="date %s %s %s"><l>August</l><l>29</l><l>2003</l></custom-block><comment w="90" collapsed="false">Tells the user the day from the date they entered</comment></custom-block></script><script x="18.00000000000037" y="415.9999999999975"><custom-block s="year from date %s"><custom-block s="date %s %s %s"><l>August</l><l>29</l><l>2003</l></custom-block><comment w="90" collapsed="false">Tells the user the year from the date they entered</comment></custom-block></script><script x="10.882812500000227" y="343.9999999999979"><custom-block s="month from date %s"><custom-block s="date %s %s %s"><l>August</l><l>29</l><l>2003</l></custom-block><comment w="99" collapsed="false">Tells the user the month from the date they entered.</comment></custom-block></script><script x="501.35611979166674" y="259.99999999999744"><custom-block s="name from contact %s"><custom-block s="contact with name: %s address: %s phone: %s birthdate %l"><l>Kobe</l><l>Ridge View</l><l>803</l><l/></custom-block><comment w="90" collapsed="false">This block tells the user the name from a contact when the block inserted is used.</comment></custom-block></script><script x="498.3561197916674" y="375.99999999999767"><custom-block s="address from contact %l"><custom-block s="contact with name: %s address: %s phone: %s birthdate %l"><l>Kobe </l><l>Ridge View</l><l>803</l><l/></custom-block><comment w="90" collapsed="false">This block tells the user the contact&apos;s address when the block inserted is used.</comment></custom-block></script><script x="491.35611979166697" y="476.99999999999727"><custom-block s="phone from contact %l"><custom-block s="contact with name: %s address: %s phone: %s birthdate %l"><l>Kobe</l><l></l><l>803</l><l/></custom-block><comment w="90" collapsed="false">This block tells the user the contact&apos;s phone number  when the block inserted is used.</comment></custom-block></script><script x="470.00000000000057" y="577.8333333333294"><custom-block s="birthdate from contact %l"><custom-block s="contact with name: %s address: %s phone: %s birthdate %l"><l>Kobe</l><l>Ridge View</l><l>803</l><custom-block s="date %s %s %s"><l>August</l><l>29</l><l>2003</l></custom-block></custom-block><comment w="90" collapsed="false">This block tells the user a contact&apos;s birthdate when the block inserted is used.</comment></custom-block></script><script x="45.99999999999997" y="253.3333333333307"><custom-block s="initials from contacts %s"><block var="contact list"/><comment w="90" collapsed="false">This block reports the initials from the contacts in contact list.</comment></custom-block></script><comment x="232.0000000000001" y="24.00000000000003" w="238" collapsed="false">When the add contact button is clicked, we ask the user their name, number, address, and birthdate. After the user answers the last question, their information appears in the contact list. Their information appears there because we used an add block to add the contacts information to contact list.</comment></scripts></sprite><sprite name="Delete" idx="4" x="150" y="-50.00000000000006" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="1" color="22.84800000000002,163.20000000000002,0,1" pen="tip" id="1566"><costumes><list id="1567"><item><ref mediaID="Delete_cst_delete"></ref></item></list></costumes><sounds><list struct="atomic" id="1568"></list></sounds><blocks></blocks><variables></variables><scripts><script x="13.333333333333343" y="13.333333333333329"><block s="receiveGo"></block><block s="gotoXY"><l>150</l><l>-50</l></block></script><script x="16" y="175.1666666666668"><block s="hide"></block></script></scripts></sprite><watcher var="name" style="normal" x="5" y="5" color="243,118,29" hidden="true"/><watcher var="address" style="normal" x="5" y="15.500000999999997" color="243,118,29" hidden="true"/><watcher var="phone number" style="normal" x="5" y="26.000001999999995" color="243,118,29" hidden="true"/><watcher var="birthdate" style="normal" x="5" y="36.50000299999999" color="243,118,29" hidden="true"/><watcher var="contact list" style="normal" x="15" y="-4.5" color="243,118,29" extX="206" extY="96"/></sprites></stage><variables><variable name="name"><l>Kennedy Poag</l></variable><variable name="address"><l>Westridge Rd</l></variable><variable name="phone number"><l>803-984-0272</l></variable><variable name="birthdate"><l>May 10 2005</l></variable><variable name="contact list"><list id="1583"><item><list struct="atomic" id="1584">Betsy Anderson,&quot;123 Main St. #4, New York, NY 10001&quot;,212-5212-555-1234,May 20 2005</list></item><item><list struct="atomic" id="1585">Alphie Preston,&quot;149 E. 16th Ave., Sunnyvale, CA 94089&quot;,408-555-6789,April 17 2004</list></item><item><list struct="atomic" id="1586">Gamal Abdel,&quot;369 Center St., Boston, MA 02130&quot;,617-555-1098,August 6 2004</list></item><item><list struct="atomic" id="1587">Kennedy Poag,Westridge Rd,803-984-0272,May 10 2005</list></item></list></variable></variables></scene></scenes></project><media name="U3L2-ContactList" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="contact-list-stage" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAGLNJREFUeF7t3Y1tFMsSBtAlBAgBQoAQIAQIAUKAECAECAFCgBAgBAgBQvBTrdRW33nerbVd49qfM5J1de12dc+ZFp97dn4eXV1dXW1sBAgQIECAwIMKPBLAD+qtMwIECBAgsBUQwCYCAQIECBBoEBDADei6JECAAAECAtgcIECAAAECDQICuAFdlwQIECBAQACbAwQIECBAoEFAADeg65IAAQIECAhgc4AAAQIECDQICOAGdF0SIECAAAEBbA4QIECAAIEGAQHcgK5LAgQIECAggM0BAgQIECDQICCAG9B1SYAAAQIEBLA5QIAAAQIEGgQEcAO6LgkQIECAgAA2BwgQIECAQIOAAG5A1yUBAgQIEBDA5gABAgQIEGgQEMAN6LokQIAAAQIC2BwgQIAAAQINAgK4AV2XBAgQIEBAAJsDBAgQIECgQUAAN6DrkgABAgQICGBzgAABAgQINAgI4AZ0XRIgQIAAAQFsDhAgQIAAgQYBAdyArksCBAgQICCAzQECBAgQINAgIIAb0HVJgAABAgQEsDlAgAABAgQaBARwA7ouCRAgQICAADYHCBAgQIBAg4AAbkDXJQECBAgQEMDmAAECBAgQaBAQwA3ouiRAgAABAgLYHCBAgAABAg0CArgBXZcECBAgQEAAmwMECBAgQKBBQAA3oOuSAAECBAgIYHOAAAECBAg0CAjgBnRdEiBAgAABAWwOECBAgACBBgEB3ICuSwIECBAgIIDNAQIECBAg0CAggBvQdUmAAAECBASwOUCAAAECBBoEBHADui4JECBAgIAANgcIECBAgECDgABuQNclAQIECBAQwOYAAQIECBBoEBDADei6JECAAAECAtgcIECAAAECDQICuAFdlwQIECBAQACbAwQIECBAoEFAADeg65IAAQIECAhgc4AAAQIECDQICOAGdF0SIECAAAEBbA4QIECAAIEGAQHcgK5LAgQIECAggM0BAgQIECDQICCAG9B1SYAAAQIEBLA5QIAAAQIEGgQEcAO6LgkQIECAgAA2BwgQIECAQIOAAG5A1yUBAgQIEBDA5gABAgQIEGgQEMAN6LokQIAAAQIC2BwgQIAAAQINAgK4AV2XBAgQIEBAAJsDBAgQIECgQUAAN6DrkgABAgQICGBzgAABAgQINAgI4AZ0XRIgQIAAAQFsDhAgQIAAgQYBAdyArksCBAgQICCAzQECBAgQINAgIIAb0HVJgAABAgQEsDlAgAABAgQaBARwA7ouCRAgQICAADYHCBAgQIBAg4AAbkDXJQECBAgQEMDmAAECBAgQaBAQwA3ouiRAgAABAgLYHCBAgAABAg0CArgBXZcECBAgQEAAmwMECBAgQKBBQAA3oOuSAAECBAgIYHOAAAECBAg0CAjgBnRdEiBAgAABAWwOECBAgACBBgEB3ICuSwIECBAgIIDNAQIECBAg0CAggBvQdUmAAAECBASwOUCAAAECBBoEBHADui4JECBAgIAANgcIECBAgECDgABuQNclAQIECBAQwOYAAQIECBBoEBDADei6JECAAAECAtgcIECAAAECDQICuAFdlwQIECBAQACbAwQIECBAoEFAADeg65IAAQIECAhgc4AAAQIECDQICOAGdF0SIECAAAEBbA4QIECAAIEGAQHcgK5LAgQIECAggM0BAgQIECDQICCAG9B1SYAAAQIEBLA5QIAAAQIEGgQEcAO6LgkQIECAgAA2BwgQIECAQIOAAG5A1yUBAgQIEBDA5gABAgQIEGgQEMAN6LokQIAAAQIC2BwgQIAAAQINAgK4AV2XBAgQIEBAAJsDBAgQIECgQUAAN6DrkgABAgQICGBzgAABAgQINAgI4AZ0XRIgQIAAAQFsDhAgQIAAgQYBAdyArksCBAgQICCAzQECBAgQINAgIIAb0HVJgAABAgQEsDlAgAABAgQaBARwA7ouCRAgQICAADYHCBAgQIBAg4AAbkDXJQECBAgQEMDmAAECBAgQaBAQwA3ouiRAgAABAgLYHCBAgAABAg0CArgBXZcECBAgQEAAmwMECBAgQKBBQAA3oOuSAAECBAgIYHOAAAECBAg0CAjgBnRdEiBAgAABAWwOECBAgACBBgEB3ICuSwIECBAgIIDNAQIECBAg0CAggBvQdUmAAAECBASwOUCAAAECBBoEBHADui4JECBAgIAANgcuTuDPnz+bb9++bX79+rX9iv+ft5cvX26eP3++/Xr9+vXF+dhhAgQeRkAAP4yzXo5AIIL206dPmy9fvhw8mp8/f26D2EaAAIFqAQFcLareUQpE6H748GHz79+//4zv6dOnm/iatx8/fmz/N77/+/fv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" mediaID="Stage_cst_contact-list-stage"/><costume name="clear" center-x="53" center-y="15" image="data:image/png;base64,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" mediaID="Clear_cst_clear"/><costume name="find" center-x="53" center-y="15" image="data:image/png;base64,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" mediaID="Find_cst_find"/><costume name="add" center-x="53" center-y="15" image="data:image/png;base64,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" mediaID="Add_cst_add"/><costume name="delete" center-x="53" center-y="15" image="data:image/png;base64,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" mediaID="Delete_cst_delete"/></media></snapdata>