<snapdata remixID="211006"><project name='math' app='Snap! 4.1, http://snap.berkeley.edu' version='1'>
  <notes>This is an old project which tries to do math. Press "edit" to take a look at the code and see lots of examples! I&apos;m publishing it now to see what this fancy new Snap! site is like. :)</notes>
  <thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAJU0lEQVR4nO3cb2wT9x3H8TyrGIu0aqjPTn1YkGBSVVV9UMak9Uk1WhZLfTCpE9OkPkII1qFeS4sYVO0iUIAAoYlDBQltaJvQMJMiYezEsZ0/jvGfMz7X5+SwSQBHbVIWOMqf8uezB1VOuToEr638reLPS/oqkSLf7/LTW7ZPubgGRIJqpE+AqhsDJFHzBjgxMYGenp6KTzgcxp07dyq9BySoJMCenh5cvHhRdDo7OyX2ggQ4AsxmsygUCigUCjh48CCampqQSqWgKAq8Xi+KxSLy+TyWLVuGFStWQNM07N69G7W1tWhoaIDL5UI+n0ddXR3WrVuHCxcuoLa2FoVCAUuWLLGPXc5MT09L7QlVkCNAj8eDfD6PfD6PAwcO4ODBgygUCnjsscdw5swZXLlyBa+++iry+TwMw8Dk5CR27tyJ8fFxuN1ujI+PY2ZmBgBw+fJlDAwM4MGDBwAAl8uF0dFR+/iPGsMwKr8bVHGOAE+ePAnTNO2ZjeHBgwcwTRMAYJom7t27B9M0USwWsWPHDliWZT/mhyzLwuTkJG7duoWrV686jr/QZLPZyuwAiSoJcGxs7BcxDLA6OAL8/PPPkcvlkMvlcPe779Dp+i1C65/AsW1/x759+3726dryJ4TWP4HQ+icweeiv9tq5XA5ffvml1J5QBZUEaBgGDMPA+VgElqrMe5V69ZtvMH5hDNnz2oITDfc/9Eo3EAggEAigu+MoLFWBpSr22oZhMMAq4QjwxIkTyGazyGazMHQNPe76eS8Q9j79K2TW/ga5lx9/5ACAruswTRNutxv5fB5dXV0YGRlBMBhEV1cXBv/1MixVsdfOZrPIZDIiG0KV5Qiwq6sLmUwGmUwGhq45LgrWrFmD6elpmKaJ5meXOiKbatuJa4HOsgI0TRMtLS1YunQpbt26hZaWFuzatQuWqthrzw4tfo4AOzs7oes6dF2HoWsYHR11zNTUFEZHR0sCzL38OL7p3LtggDU1NXC73d8/vrkZkUgEkUgEzc3NqK+vh6Uq9tqzQ4ufI8DPPvsM6XQa6XQahq453pMZhoGvvvoKhmHMG2C5L8GGYeCDDz5wzPvvvw9LVey10+k0A6wSjgA//fRTpFIppFIpGLrmeE82dyay6bIDnJqaQnd3N+rr6/HOO+8gm83i0KFDjnnvvfdgqYq9diqVQjqdltoTqiBHgJ988gk0TYOmaTB0reQ92ezcv38Ph55ZguZnly44R59biq+//hrJZBLpdBo+nw+ZTAZNTU2Oeffdd2Gpir22pmkMsEo4Ajx+/DgSiQQSiQQMXXO8JM6dQ88s+dEvwel0GgcOHHDMjh07YKmKvXYikcD58+dFNoQqyxFgR0cH4vE44vE4DF1zvCSePn0aTz75JFKpVMl7wPF//hE3znnLCjCVSmH//v2O2b59OyxVsdeOx+MMsEo4Avz4448Ri8UQi8Vg6BqSyaQ9L7zwAnK5HJLJZEmAV082wRo8tWCAN2/ehNvtRjKZLPmLyLZt22Cpir12LBZDKpUS2RCqLEeAH330EaLRKKLRKAxdczwjzZ2jz/34q+B4PI69e/c65u2334alKvba0WiUAVYJR4DHjh3DyMgIRkZGYOia4xlp7hSLxbIXmO/xe/bscczWrVthqYq99sjICDRN+9l/WfrlcQTY3t6O4eFhDA8Pw9A1xzPS3PH9+x848fyvcWL1wnPqD7X49ttvMTY2hmKxiCNHjiAajaKtrQ0NDQ1oaGhAW1sb3nzzTViqYq89PDzMAKuEI8C2tjYMDQ1haGgIhq7Zf62IRCJYs2YNWltbEYlE0Pj0D66C/7wMAMp6CZ57zNl54403YKmKvfbQ0BCSyWTld4MqriTAwcFBDA4OwtA1RxDxeBzt7e0YGhoquQi5Ur8e1sB/Fgxw//79cLvdjmPOzpYtW2Cpir324OAgA6wSjgCPHDmCcDiMcDgMQ9cwMDBgz+rVq9Hc3IyBgYGSAM2/rcDtQqasZ8C5x5yd119/HZaq2GuHw2EkEgmRDaHKKgkwFAohFArB0DX7+x+O/y+/K/sq+MaNG/D7/WhtbcVbb71lH6OmpgY1NTUIhULYvHkzLFVxrMEAq4MjwA8//BD9/f3o7++HoWsIBoMIBoM4evSo/X0wGEQhny/7htS5j5tvAGDTpk2wVMVeu7+/H/F4XGRDqLJKApy9U9nQNQQCAXg8HpimCY/HY//sp9yQOnuMQCAAAAgEAti4cSMsVXH8jAFWB0eAhw8fRl9fH/r6+mDoGnp7e1EsFtHY2Ai32w1d19Hb21vyHrCw8Xn894vDZQXY29uL3t5eALC/btiwAZaq2Gv39fUxwCrhCLC1tRV+vx9+vx+GrqFl+0Z4PB40NjbC4/Fg1apV8Pl8894POLF1bVk3pPp8PgBwfD29+fewVMVe2+/3IxaLVXgrSELJ/4T4fD74fD4YugZL/f4TEV555RV4vV5MT0/D6/X+pBtSAcDr9Tq+zv5T0uzaPp+P/5RUJRwB3r59G2fPnsXZs2cRGwzaYbg3vIjXXnvNnkQ4UHaAp06dQnt7u31D6tzjfLFptb2GpSr22j09Pbh7967UnlAFlXw4UUNDA86cObPg/D83pJqmiXPnztk3pD7q2B0dHbh+/brEXpCAeT+e7dq1a4jFYg/9W3DOewIzoW5cD5985ADAzMyM/fEdDztmNBpFNpvF/fv3K7oBJIsfUEmiGCCJYoAkigGSKAZIohggiWKAJIoBkigGSKIYIIligCSKAZIoBkiiGCCJYoAkigGSKAZIohggiWKAJIoBkigGSKIYIIligA+xfPlydHZ2Sp/GoscAF+ByuVBXV4e6ujqsXLkSExMT0qe06DDAR5gNcO64XC689NJL0qe2KDDAR3hYgGvXrpU+tUWBAS5g7kvwqlWrcOnSJelTWnQY4EM89dRT6O7ulj6NRY8BkigGSKIYIIligCSKAZIoBkiiGCCJYoAkigGSKAZIohggiWKAJIoBkigGSKIYIIligCSKAZIoBkiiGCCJYoAkigGSKAZIohggiWKAJIoBkigGSKIYIIligCSKAZIoBkiiGCCJYoAkigGSKAZIohggiWKAJIoBkigGSKIYIIligCSKAZIoBkiiGCCJYoAkigGSKAZIohggiWKAJIoBkigGSKIYIIligCSKAZIoBkiiGCCJYoAkigGSqP8B24VyKSYoaAcAAAAASUVORK5CYII=</thumbnail>
  <stage inheritance='true' id='1' name='Stage' costume='0' threadsafe='false' codify='false' lines='round' sublistIDs='false' height='360' scheduled='false' tempo='60' ternary='true' width='480'>
    <pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails>
    <costumes>
      <list id='2'/>
    </costumes>
    <sounds>
      <list id='3'/>
    </sounds>
    <variables/>
    <blocks/>
    <scripts/>
    <sprites>
      <sprite x='9.094947017729282e-13' pen='tip' id='8' name='Sprite' idx='1' rotation='1' scale='1' color='80,80,80' draggable='true' y='5.684341886080802e-14' heading='90' costume='0'>
        <costumes>
          <list id='9'/>
        </costumes>
        <sounds>
          <list id='10'/>
        </sounds>
        <blocks/>
        <variables/>
        <scripts>
          <script x='923.0000029999997' y='133.000004'>
            <block var='fraction'/>
          </script>
          <script x='640.000001' y='29'>
            <custom-block s='%s as a fraction'>
              <custom-block s='%n %br ━━━ %br %n'>
                <l>1</l>
                <l>2</l>
              </custom-block>
            </custom-block>
          </script>
          <script x='804.000001' y='42'>
            <custom-block s='greatest common factor of %mult%n'>
              <custom-block s='$storage %l'>
                <custom-block s='%n %br ━━━ %br %n'>
                  <l>6</l>
                  <l>8</l>
                </custom-block>
              </custom-block>
            </custom-block>
          </script>
          <script x='463.6666676666666' y='10'>
            <custom-block s='fractional %l × %l'>
              <custom-block s='%n %br ━━━ %br %n'>
                <l>3</l>
                <l>4</l>
              </custom-block>
              <custom-block s='%n %br ━━━ %br %n'>
                <l>2</l>
                <l>2</l>
              </custom-block>
            </custom-block>
          </script>
          <script x='493.3333353333335' y='80.33333533333331'>
            <custom-block s='fractional %l × %l'>
              <custom-block s='%n %br ━━━ %br %n'>
                <l>3</l>
                <l>4</l>
              </custom-block>
              <custom-block s='%n %br ━━━ %br %n'>
                <l>1</l>
                <custom-block s='%n %br ━━━ %br %n'>
                  <l>2</l>
                  <l>1</l>
                </custom-block>
              </custom-block>
            </custom-block>
          </script>
          <script x='642.000001' y='170.99999999999994'>
            <custom-block s='fractional %l × %l'>
              <custom-block s='%n %br ━━━ %br %n'>
                <l>6</l>
                <l>8</l>
              </custom-block>
              <custom-block s='%n %br ━━━ %br %n'>
                <custom-block s='%n %br ━━━ %br %n'>
                  <l>1</l>
                  <l>2</l>
                </custom-block>
                <custom-block s='%n %br ━━━ %br %n'>
                  <l>1</l>
                  <l>2</l>
                </custom-block>
              </custom-block>
            </custom-block>
          </script>
          <script x='552.3333343333334' y='319.3333333333333'>
            <custom-block s='custom %s × %s'>
              <custom-block s='terms %mult%n'>
                <list>
                  <l>3</l>
                  <custom-block s='collapse numeric factors %l'>
                    <l/>
                  </custom-block>
                </list>
              </custom-block>
              <custom-block s='terms %mult%n'>
                <list>
                  <l>3</l>
                  <l>5</l>
                  <l>5</l>
                </list>
              </custom-block>
            </custom-block>
          </script>
          <script x='14' y='15.999999000000116'>
            <custom-block s='description: %txt %cs'>
              <l>Checks for if the "assert" and "look the same" blocks actually work.</l>
              <script>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <block s='reportNot'>
                        <custom-block s='%s and %s look the same?'>
                          <l>5</l>
                          <l>7</l>
                        </custom-block>
                      </block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <l>2</l>
                        <l>2</l>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <block s='reportNewList'>
                          <list>
                            <l>3</l>
                            <l>4</l>
                          </list>
                        </block>
                        <block s='reportNewList'>
                          <list>
                            <l>3</l>
                            <l>4</l>
                          </list>
                        </block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <custom-block s='%s as a fraction'>
                          <l>3</l>
                        </custom-block>
                        <custom-block s='%s as a fraction'>
                          <l>3</l>
                        </custom-block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
              </script>
            </custom-block>
          </script>
          <script x='12' y='211.99999900000012'>
            <custom-block s='description: %txt %cs'>
              <l>Checks for if the fractional multiplication blocks work.</l>
              <script>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <custom-block s='fractional %l × %l'>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <l>5</l>
                            <l>2</l>
                          </custom-block>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <l>3</l>
                            <l>2</l>
                          </custom-block>
                        </custom-block>
                        <custom-block s='%n %br ━━━ %br %n'>
                          <l>15</l>
                          <l>4</l>
                        </custom-block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <custom-block s='%s as a fraction'>
                          <l>3</l>
                        </custom-block>
                        <custom-block s='%n %br ━━━ %br %n'>
                          <l>3</l>
                          <l>1</l>
                        </custom-block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <custom-block s='fractional %l × %l'>
                          <custom-block s='%s as a fraction'>
                            <l>3</l>
                          </custom-block>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <l>1</l>
                            <l>2</l>
                          </custom-block>
                        </custom-block>
                        <custom-block s='%n %br ━━━ %br %n'>
                          <l>3</l>
                          <l>2</l>
                        </custom-block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <custom-block s='fractional %l × %l'>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <l>6</l>
                            <l>8</l>
                          </custom-block>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <custom-block s='%n %br ━━━ %br %n'>
                              <l>1</l>
                              <l>2</l>
                            </custom-block>
                            <custom-block s='%n %br ━━━ %br %n'>
                              <l>1</l>
                              <l>2</l>
                            </custom-block>
                          </custom-block>
                        </custom-block>
                        <custom-block s='%n %br ━━━ %br %n'>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <l>6</l>
                            <l>2</l>
                          </custom-block>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <l>8</l>
                            <l>2</l>
                          </custom-block>
                        </custom-block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
              </script>
            </custom-block>
          </script>
          <script x='11' y='586.9999990000002'>
            <custom-block s='description: %txt %cs'>
              <l>Checks for if the simplify-fraction blocks work.</l>
              <script>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <custom-block s='overlap of %mult%l'>
                          <list>
                            <block s='reportNewList'>
                              <list>
                                <l>1</l>
                                <l>2</l>
                                <l>3</l>
                                <l>4</l>
                                <l>3</l>
                              </list>
                            </block>
                            <block s='reportNewList'>
                              <list>
                                <l>1</l>
                                <l>2</l>
                                <l>3</l>
                                <l>3</l>
                                <l>3</l>
                              </list>
                            </block>
                            <block s='reportNewList'>
                              <list>
                                <l>2</l>
                                <l>3</l>
                                <l>4</l>
                                <l>3</l>
                              </list>
                            </block>
                          </list>
                        </custom-block>
                        <block s='reportNewList'>
                          <list>
                            <l>2</l>
                            <l>3</l>
                            <l>3</l>
                          </list>
                        </block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <block s='reportEquals'>
                        <custom-block s='greatest common factor of %mult%n'>
                          <list>
                            <l>72</l>
                            <l>54</l>
                            <l>72</l>
                          </list>
                        </custom-block>
                        <l>18</l>
                      </block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
                <custom-block s='assert %predRing'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='%s and %s look the same?'>
                        <custom-block s='simplify basic fraction %l'>
                          <custom-block s='%n %br ━━━ %br %n'>
                            <l>6</l>
                            <l>8</l>
                          </custom-block>
                        </custom-block>
                        <custom-block s='%n %br ━━━ %br %n'>
                          <l>3</l>
                          <l>4</l>
                        </custom-block>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                </custom-block>
              </script>
            </custom-block>
          </script>
          <script x='570.3333353333334' y='397.8333353333333'>
            <custom-block s='custom %s × %s'>
              <custom-block s='%n %br ━━━ %br %n'>
                <l>1</l>
                <l>2</l>
              </custom-block>
              <custom-block s='factors %mult%s'>
                <list>
                  <l>3</l>
                  <custom-block s='structure %s $storage %s'>
                    <l>variable</l>
                    <block s='reportGet'>
                      <l>
                        <option>self</option>
                      </l>
                    </block>
                  </custom-block>
                  <l>4</l>
                </list>
              </custom-block>
            </custom-block>
          </script>
          <script x='531.3333343333334' y='464'>
            <custom-block s='%s and %s look the same?'>
              <custom-block s='fractional %l × %l'>
                <custom-block s='%n %br ━━━ %br %n'>
                  <l>3</l>
                  <l>4</l>
                </custom-block>
                <custom-block s='%s as a fraction'>
                  <custom-block s='collapse numeric factors %l'>
                    <custom-block s='factors %mult%s'>
                      <list>
                        <l>3</l>
                        <custom-block s='structure %s $storage %s'>
                          <l>variable</l>
                          <l>x</l>
                        </custom-block>
                        <l>4</l>
                      </list>
                    </custom-block>
                  </custom-block>
                </custom-block>
              </custom-block>
              <custom-block s='%n %br ━━━ %br %n'>
                <custom-block s='factors %mult%s'>
                  <list>
                    <l>3</l>
                    <l>12</l>
                    <custom-block s='structure %s $storage %s'>
                      <l>variable</l>
                      <l>x</l>
                    </custom-block>
                  </list>
                </custom-block>
                <l>4</l>
              </custom-block>
            </custom-block>
          </script>
          <script x='569.3333343333334' y='631'>
            <custom-block s='%s and %s look the same?'>
              <custom-block s='collapse numeric factors %l'>
                <custom-block s='factor-based %l × %l'>
                  <custom-block s='%s as a factor list'>
                    <custom-block s='%n %br ━━━ %br %n'>
                      <l>3</l>
                      <l>4</l>
                    </custom-block>
                  </custom-block>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>3</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                      <l>4</l>
                    </list>
                  </custom-block>
                </custom-block>
              </custom-block>
              <custom-block s='factors %mult%s'>
                <list>
                  <custom-block s='%n %br ━━━ %br %n'>
                    <l>36</l>
                    <l>4</l>
                  </custom-block>
                  <custom-block s='structure %s $storage %s'>
                    <l>variable</l>
                    <l>x</l>
                  </custom-block>
                </list>
              </custom-block>
            </custom-block>
          </script>
          <script x='990.3333353333333' y='113.99999900000023'>
            <custom-block s='greatest common factor of %mult%n'>
              <list>
                <l/>
              </list>
            </custom-block>
          </script>
          <script x='10' y='822.9999990000002'>
            <custom-block s='assert %predRing'>
              <block s='reifyPredicate'>
                <autolambda>
                  <custom-block s='%s and %s look the same?'>
                    <custom-block s='algebraic GCF of %mult%l'>
                      <list>
                        <custom-block s='factors %mult%s'>
                          <list>
                            <l>6</l>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>x</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>x</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>y</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>y</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>m</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>m</l>
                            </custom-block>
                          </list>
                        </custom-block>
                        <custom-block s='factors %mult%s'>
                          <list>
                            <l>3</l>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>x</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>y</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>y</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>y</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>m</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>m</l>
                            </custom-block>
                          </list>
                        </custom-block>
                        <custom-block s='factors %mult%s'>
                          <list>
                            <l>3</l>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>x</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>x</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>x</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>y</l>
                            </custom-block>
                            <custom-block s='structure %s $storage %s'>
                              <l>variable</l>
                              <l>y</l>
                            </custom-block>
                          </list>
                        </custom-block>
                      </list>
                    </custom-block>
                    <custom-block s='factors %mult%s'>
                      <list>
                        <l>3</l>
                        <custom-block s='structure %s $storage %s'>
                          <l>variable</l>
                          <l>x</l>
                        </custom-block>
                        <custom-block s='structure %s $storage %s'>
                          <l>variable</l>
                          <l>y</l>
                        </custom-block>
                        <custom-block s='structure %s $storage %s'>
                          <l>variable</l>
                          <l>y</l>
                        </custom-block>
                      </list>
                    </custom-block>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
            </custom-block>
          </script>
          <script x='559.3333353333333' y='789.9999990000001'>
            <custom-block s='%s and %s look the same?'>
              <custom-block s='simplify algebraic fraction %l'>
                <custom-block s='%n %br ━━━ %br %n'>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>6</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                    </list>
                  </custom-block>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>3</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>m</l>
                      </custom-block>
                    </list>
                  </custom-block>
                </custom-block>
              </custom-block>
              <custom-block s='%n %br ━━━ %br %n'>
                <custom-block s='%n %br ━━━ %br %n'>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>6</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                    </list>
                  </custom-block>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>3</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                    </list>
                  </custom-block>
                </custom-block>
                <custom-block s='%n %br ━━━ %br %n'>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>3</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>m</l>
                      </custom-block>
                    </list>
                  </custom-block>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>3</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                    </list>
                  </custom-block>
                </custom-block>
              </custom-block>
            </custom-block>
          </script>
          <script x='563' y='1030.9999990000001'>
            <custom-block s='%s and %s look the same?'>
              <custom-block s='simplify algebraic fraction %l'>
                <custom-block s='%n %br ━━━ %br %n'>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>6</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                    </list>
                  </custom-block>
                  <custom-block s='factors %mult%s'>
                    <list>
                      <l>3</l>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>x</l>
                      </custom-block>
                      <custom-block s='structure %s $storage %s'>
                        <l>variable</l>
                        <l>m</l>
                      </custom-block>
                    </list>
                  </custom-block>
                </custom-block>
              </custom-block>
              <custom-block s='%n %br ━━━ %br %n'>
                <custom-block s='factors %mult%s'>
                  <list>
                    <l>2</l>
                    <custom-block s='structure %s $storage %s'>
                      <l>variable</l>
                      <l>x</l>
                    </custom-block>
                  </list>
                </custom-block>
                <custom-block s='factors %mult%s'>
                  <list>
                    <custom-block s='structure %s $storage %s'>
                      <l>variable</l>
                      <l>x</l>
                    </custom-block>
                  </list>
                </custom-block>
              </custom-block>
            </custom-block>
          </script>
          <script x='22' y='1150.9999990000001'>
            <custom-block s='assert %predRing'>
              <block s='reifyPredicate'>
                <autolambda>
                  <custom-block s='%s and %s look the same?'>
                    <custom-block s='remove first match of %predRing from %l'>
                      <block s='reifyPredicate'>
                        <autolambda>
                          <block s='reportEquals'>
                            <l>b</l>
                            <l/>
                          </block>
                        </autolambda>
                        <list/>
                      </block>
                      <block s='reportNewList'>
                        <list>
                          <l>a</l>
                          <l>a</l>
                          <l>b</l>
                          <l>c</l>
                          <l>b</l>
                        </list>
                      </block>
                    </custom-block>
                    <block s='reportNewList'>
                      <list>
                        <l>a</l>
                        <l>a</l>
                        <l>c</l>
                        <l>b</l>
                      </list>
                    </block>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
            </custom-block>
            <custom-block s='assert %predRing'>
              <block s='reifyPredicate'>
                <autolambda>
                  <custom-block s='%s and %s look the same?'>
                    <custom-block s='remove %mult%s from %l'>
                      <block s='reportNewList'>
                        <list>
                          <l>a</l>
                          <l>c</l>
                        </list>
                      </block>
                      <block s='reportNewList'>
                        <list>
                          <l>a</l>
                          <l>a</l>
                          <l>b</l>
                          <l>c</l>
                          <l>c</l>
                        </list>
                      </block>
                    </custom-block>
                    <block s='reportNewList'>
                      <list>
                        <l>a</l>
                        <l>b</l>
                        <l>c</l>
                      </list>
                    </block>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
            </custom-block>
            <custom-block s='assert %predRing'>
              <block s='reifyPredicate'>
                <autolambda>
                  <custom-block s='%s and %s look the same?'>
                    <custom-block s='prime factorization of factors %l'>
                      <custom-block s='factors %mult%s'>
                        <list>
                          <l>4</l>
                          <custom-block s='structure %s $storage %s'>
                            <l>variable</l>
                            <l>x</l>
                          </custom-block>
                          <l>15</l>
                        </list>
                      </custom-block>
                    </custom-block>
                    <block s='reportNewList'>
                      <list>
                        <l>2</l>
                        <l>2</l>
                        <custom-block s='structure %s $storage %s'>
                          <l>variable</l>
                          <l>x</l>
                        </custom-block>
                        <l>3</l>
                        <l>5</l>
                      </list>
                    </block>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
            </custom-block>
          </script>
          <script x='562' y='1202.9999990000001'>
            <custom-block s='remove %mult%s from %l'>
              <custom-block s='$storage %l'>
                <custom-block s='factors %mult%s'>
                  <list>
                    <l>3</l>
                    <custom-block s='structure %s $storage %s'>
                      <l>variable</l>
                      <l>x</l>
                    </custom-block>
                  </list>
                </custom-block>
              </custom-block>
              <custom-block s='$storage %l'>
                <custom-block s='factors %mult%s'>
                  <list>
                    <l>3</l>
                    <custom-block s='structure %s $storage %s'>
                      <l>variable</l>
                      <l>x</l>
                    </custom-block>
                    <custom-block s='structure %s $storage %s'>
                      <l>variable</l>
                      <l>x</l>
                    </custom-block>
                  </list>
                </custom-block>
              </custom-block>
            </custom-block>
          </script>
        </scripts>
      </sprite>
      <watcher style='normal' x='9.999999999999773' color='243,118,29' var='list of primes' y='10' extX='80' extY='70'/>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='fractional %&apos;a&apos; × %&apos;b&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='structure %s $storage %s'>
            <l>fraction</l>
            <block s='reportNewList'>
              <list>
                <custom-block s='custom %s × %s'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <custom-block s='$storage %l'>
                      <block var='a'/>
                    </custom-block>
                  </block>
                  <block s='reportListItem'>
                    <l>1</l>
                    <custom-block s='$storage %l'>
                      <block var='b'/>
                    </custom-block>
                  </block>
                </custom-block>
                <custom-block s='custom %s × %s'>
                  <block s='reportListItem'>
                    <l>2</l>
                    <custom-block s='$storage %l'>
                      <block var='a'/>
                    </custom-block>
                  </block>
                  <block s='reportListItem'>
                    <l>2</l>
                    <custom-block s='$storage %l'>
                      <block var='b'/>
                    </custom-block>
                  </block>
                </custom-block>
              </list>
            </block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='custom %&apos;a&apos; × %&apos;b&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportOr'>
            <custom-block s='is %s a %s structure?'>
              <block var='a'/>
              <l>fraction</l>
            </custom-block>
            <custom-block s='is %s a %s structure?'>
              <block var='b'/>
              <l>fraction</l>
            </custom-block>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='fractional %l × %l'>
                <custom-block s='%s as a fraction'>
                  <block var='a'/>
                </custom-block>
                <custom-block s='%s as a fraction'>
                  <block var='b'/>
                </custom-block>
              </custom-block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportOr'>
            <custom-block s='is %s a %s structure?'>
              <block var='a'/>
              <l>terms</l>
            </custom-block>
            <custom-block s='is %s a %s structure?'>
              <block var='b'/>
              <l>terms</l>
            </custom-block>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='term-based %l × %l'>
                <custom-block s='%s as a term list'>
                  <block var='a'/>
                </custom-block>
                <custom-block s='%s as a term list'>
                  <block var='b'/>
                </custom-block>
              </custom-block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportOr'>
            <custom-block s='is %s a %s structure?'>
              <block var='a'/>
              <l>factors</l>
            </custom-block>
            <custom-block s='is %s a %s structure?'>
              <block var='b'/>
              <l>factors</l>
            </custom-block>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='collapse numeric factors %l'>
                <custom-block s='factor-based %l × %l'>
                  <custom-block s='%s as a factor list'>
                    <block var='a'/>
                  </custom-block>
                  <custom-block s='%s as a factor list'>
                    <block var='b'/>
                  </custom-block>
                </custom-block>
              </custom-block>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportAnd'>
            <block s='reportIsA'>
              <block var='a'/>
              <l>
                <option>number</option>
              </l>
            </block>
            <block s='reportIsA'>
              <block var='b'/>
              <l>
                <option>number</option>
              </l>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportProduct'>
                <block var='a'/>
                <block var='b'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;x&apos; as a fraction' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <custom-block s='is %s a %s structure?'>
            <block var='x'/>
            <l>fraction</l>
          </custom-block>
          <script>
            <block s='doReport'>
              <block var='x'/>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <custom-block s='%n %br ━━━ %br %n'>
                <block var='x'/>
                <l>1</l>
              </custom-block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='prime factorization of %&apos;n&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'>45</input>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block s='reportOr'>
            <block s='reportListContainsItem'>
              <block var='list of primes'/>
              <block var='n'/>
            </block>
            <block s='reportLessThan'>
              <block var='n'/>
              <l>2</l>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list>
                  <block var='n'/>
                </list>
              </block>
            </block>
          </script>
          <script>
            <block s='doDeclareVariables'>
              <list>
                <l>prime</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>prime</l>
              <custom-block s='first value in %l that %n is divisible by'>
                <block var='list of primes'/>
                <block var='n'/>
              </custom-block>
            </block>
            <block s='doReport'>
              <block s='reportCONS'>
                <block var='prime'/>
                <custom-block s='prime factorization of %n'>
                  <block s='reportQuotient'>
                    <block var='n'/>
                    <block var='prime'/>
                  </block>
                </custom-block>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='first value in %&apos;list&apos; that %&apos;n&apos; is divisible by' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
        <input type='%n'>35</input>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block s='reportEquals'>
            <block s='reportListLength'>
              <block var='list'/>
            </block>
            <l>0</l>
          </block>
          <script>
            <block s='doReport'>
              <custom-block s='none'/>
            </block>
          </script>
          <script>
            <block s='doIfElse'>
              <block s='reportEquals'>
                <block s='reportModulus'>
                  <block var='n'/>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='list'/>
                  </block>
                </block>
                <l>0</l>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='list'/>
                  </block>
                </block>
              </script>
              <script>
                <block s='doReport'>
                  <custom-block s='first value in %l that %n is divisible by'>
                    <block s='reportCDR'>
                      <block var='list'/>
                    </block>
                    <block var='n'/>
                  </custom-block>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='none' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <l>(None)</l>
        </block>
      </script>
    </block-definition>
    <block-definition s='overlap of %&apos;lists&apos;' category='lists' type='reporter'>
      <comment collapsed='false' w='235'>Make a count of how many times any individual item appears in list A. Do the same for list B.</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%l'/>
      </inputs>
      <script>
        <custom-block s='let %upvar be %s'>
          <l>counters</l>
          <block s='reportNewList'>
            <list/>
          </block>
        </custom-block>
        <custom-block s='for %upvar = %n to %n %cs'>
          <l>list index</l>
          <l>1</l>
          <block s='reportListLength'>
            <block var='lists'/>
          </block>
          <script>
            <custom-block s='let %upvar be %s'>
              <l>list</l>
              <block s='reportListItem'>
                <block var='list index'/>
                <block var='lists'/>
              </block>
            </custom-block>
            <custom-block s='for each %upvar of %l %cs'>
              <l>item</l>
              <block var='list'/>
              <script>
                <custom-block s='let %upvar be %s'>
                  <l>counter matches</l>
                  <custom-block s='keep items such that %predRing from %l'>
                    <block s='reifyPredicate'>
                      <autolambda>
                        <block s='reportEquals'>
                          <block s='reportListItem'>
                            <l>1</l>
                            <l/>
                          </block>
                          <block var='item'/>
                        </block>
                      </autolambda>
                      <list/>
                    </block>
                    <block var='counters'/>
                  </custom-block>
                </custom-block>
                <block s='doDeclareVariables'>
                  <list>
                    <l>counter</l>
                  </list>
                </block>
                <block s='doIfElse'>
                  <custom-block s='empty? %l'>
                    <block var='counter matches'/>
                  </custom-block>
                  <script>
                    <block s='doSetVar'>
                      <l>counter</l>
                      <block s='reportCONS'>
                        <block var='item'/>
                        <custom-block s='list of length %n filled with %s'>
                          <block s='reportListLength'>
                            <block var='lists'/>
                          </block>
                          <l>0</l>
                        </custom-block>
                      </block>
                    </block>
                    <block s='doAddToList'>
                      <block var='counter'/>
                      <block var='counters'/>
                    </block>
                  </script>
                  <script>
                    <block s='doSetVar'>
                      <l>counter</l>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='counter matches'/>
                      </block>
                    </block>
                  </script>
                </block>
                <block s='doReplaceInList'>
                  <block s='reportSum'>
                    <block var='list index'/>
                    <l>1</l>
                  </block>
                  <block var='counter'/>
                  <block s='reportSum'>
                    <block s='reportListItem'>
                      <block s='reportSum'>
                        <block var='list index'/>
                        <l>1</l>
                      </block>
                      <block var='counter'/>
                    </block>
                    <l>1</l>
                  </block>
                </block>
              </script>
            </custom-block>
          </script>
        </custom-block>
        <block s='doReport'>
          <custom-block s='append %mult%l'>
            <custom-block s='map %repRing over %l'>
              <block s='reifyReporter'>
                <autolambda>
                  <custom-block s='list of length %n filled with %s'>
                    <custom-block s='least of %mult%n'>
                      <block s='reportCDR'>
                        <l/>
                      </block>
                    </custom-block>
                    <block s='reportListItem'>
                      <l>1</l>
                      <l/>
                    </block>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
              <block var='counters'/>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='keep items such that %&apos;pred&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%predRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doIf'>
              <custom-block s='empty? %l'>
                <block var='data'/>
              </custom-block>
              <script>
                <block s='doReport'>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
              </script>
            </block>
            <block s='doIfElse'>
              <block s='evaluate'>
                <block var='pred'/>
                <list>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='data'/>
                  </block>
                </list>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportCONS'>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='data'/>
                    </block>
                    <custom-block s='keep items such that %predRing from %l'>
                      <block var='pred'/>
                      <block s='reportCDR'>
                        <block var='data'/>
                      </block>
                    </custom-block>
                  </block>
                </block>
              </script>
              <script>
                <block s='doReport'>
                  <custom-block s='keep items such that %predRing from %l'>
                    <block var='pred'/>
                    <block s='reportCDR'>
                      <block var='data'/>
                    </block>
                  </custom-block>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='combine with %&apos;function&apos; items of %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%repRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doIf'>
              <custom-block s='empty? %l'>
                <block s='reportCDR'>
                  <block var='data'/>
                </block>
              </custom-block>
              <script>
                <block s='doReport'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='data'/>
                  </block>
                </block>
              </script>
            </block>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='function'/>
                <list>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='data'/>
                  </block>
                  <custom-block s='combine with %repRing items of %l'>
                    <block var='function'/>
                    <block s='reportCDR'>
                      <block var='data'/>
                    </block>
                  </custom-block>
                </list>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%b'/>
        <input type='%anyUE'/>
        <input type='%anyUE'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block var='test'/>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='true'/>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='false'/>
                <list/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>step</l>
            <l>tester</l>
          </list>
        </block>
        <block s='doIfElse'>
          <block s='reportGreaterThan'>
            <block var='start'/>
            <block var='end'/>
          </block>
          <script>
            <block s='doSetVar'>
              <l>step</l>
              <l>-1</l>
            </block>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportLessThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doSetVar'>
              <l>step</l>
              <l>1</l>
            </block>
            <block s='doSetVar'>
              <l>tester</l>
              <block s='reifyReporter'>
                <autolambda>
                  <block s='reportGreaterThan'>
                    <block var='i'/>
                    <block var='end'/>
                  </block>
                </autolambda>
                <list/>
              </block>
            </block>
          </script>
        </block>
        <block s='doSetVar'>
          <l>i</l>
          <block var='start'/>
        </block>
        <block s='doUntil'>
          <block s='evaluate'>
            <block var='tester'/>
            <list/>
          </block>
          <script>
            <block s='doRun'>
              <block var='action'/>
              <list/>
            </block>
            <block s='doChangeVar'>
              <l>i</l>
              <block var='step'/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;' category='lists' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%l'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doUntil'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doSetVar'>
              <l>item</l>
              <block s='reportListItem'>
                <l>1</l>
                <block var='data'/>
              </block>
            </block>
            <block s='doRun'>
              <block var='action'/>
              <list>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </list>
            </block>
            <block s='doSetVar'>
              <l>data</l>
              <block s='reportCDR'>
                <block var='data'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='map %&apos;func&apos; over %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%repRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIf'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block var='data'/>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportCONS'>
            <block s='evaluate'>
              <block var='func'/>
              <list>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='data'/>
                </block>
              </list>
            </block>
            <custom-block s='map %repRing over %l'>
              <block var='func'/>
              <block s='reportCDR'>
                <block var='data'/>
              </block>
            </custom-block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='let %&apos;var&apos; be %&apos;value&apos;' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doSetVar'>
          <l>var</l>
          <block var='value'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='least of %&apos;values&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='combine with %repRing items of %l'>
            <block s='reifyReporter'>
              <autolambda>
                <custom-block s='if %b then %anyUE else %anyUE'>
                  <block s='reportLessThan'>
                    <block var='#1'/>
                    <block var='#2'/>
                  </block>
                  <block var='#1'/>
                  <block var='#2'/>
                </custom-block>
              </autolambda>
              <list>
                <l>#1</l>
                <l>#2</l>
              </list>
            </block>
            <block var='values'/>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='list of length %&apos;length&apos; filled with %&apos;value&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'>5</input>
        <input type='%s'>0</input>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block s='reportEquals'>
            <block var='length'/>
            <l>0</l>
          </block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <block s='reportCONS'>
                <block var='value'/>
                <custom-block s='list of length %n filled with %s'>
                  <block s='reportDifference'>
                    <block var='length'/>
                    <l>1</l>
                  </block>
                  <block var='value'/>
                </custom-block>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='append %&apos;lists&apos;' category='lists' type='reporter'>
      <comment x='0' w='287' collapsed='false' y='0'>Take any number of input lists, and create a new list containing the items of the input lists.  So              APPEND [A B] [C D]where the [,,,] are lists reports the list              [A B C D]not [[A B] [C D]].</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%l'/>
      </inputs>
      <script>
        <block s='doWarp'>
          <script>
            <block s='doIf'>
              <block s='reportEquals'>
                <block var='lists'/>
                <block s='reportNewList'>
                  <list/>
                </block>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportNewList'>
                    <list/>
                  </block>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <block s='reportListLength'>
                  <block var='lists'/>
                </block>
                <l>1</l>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='lists'/>
                  </block>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <block s='reportListItem'>
                  <l>1</l>
                  <block var='lists'/>
                </block>
                <block s='reportNewList'>
                  <list/>
                </block>
              </block>
              <script>
                <block s='doReport'>
                  <custom-block s='append %mult%l'>
                    <block s='reportCDR'>
                      <block var='lists'/>
                    </block>
                  </custom-block>
                </block>
              </script>
            </block>
            <block s='doReport'>
              <block s='reportCONS'>
                <block s='reportListItem'>
                  <l>1</l>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='lists'/>
                  </block>
                </block>
                <custom-block s='append %mult%l'>
                  <block s='reportCONS'>
                    <block s='reportCDR'>
                      <block s='reportListItem'>
                        <l>1</l>
                        <block var='lists'/>
                      </block>
                    </block>
                    <block s='reportCDR'>
                      <block var='lists'/>
                    </block>
                  </block>
                </custom-block>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='empty? %&apos;data&apos;' category='lists' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportEquals'>
            <block var='data'/>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='product %&apos;nums&apos;' category='operators' type='reporter'>
      <comment x='0' w='205' collapsed='false' y='0'>Takes any number of numbers as inputs (use the left and right arrowheads to adjust the number of input slots) and reports the result of multiplying them all, so(PRODUCT (4) (100) (8))reports 3200.</comment>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%n'/>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportEquals'>
            <block var='nums'/>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
          <script>
            <block s='doReport'>
              <l>1</l>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block s='reportProduct'>
            <block s='reportListItem'>
              <l>1</l>
              <block var='nums'/>
            </block>
            <custom-block s='product %mult%n'>
              <block s='reportCDR'>
                <block var='nums'/>
              </block>
            </custom-block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='greatest common factor of %&apos;values&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='product %mult%n'>
            <custom-block s='overlap of %mult%l'>
              <custom-block s='map %repRing over %l'>
                <block s='reifyReporter'>
                  <autolambda>
                    <custom-block s='prime factorization of %n'>
                      <l/>
                    </custom-block>
                  </autolambda>
                  <list/>
                </block>
                <block var='values'/>
              </custom-block>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='simplify basic fraction %&apos;fraction&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <custom-block s='let %upvar be %s'>
          <l>gcf</l>
          <custom-block s='greatest common factor of %mult%n'>
            <custom-block s='$storage %l'>
              <block var='fraction'/>
            </custom-block>
          </custom-block>
        </custom-block>
        <block s='doReport'>
          <custom-block s='structure %s $storage %s'>
            <l>fraction</l>
            <custom-block s='map %repRing over %l'>
              <block s='reifyReporter'>
                <autolambda>
                  <custom-block s='evaluate fraction %s'>
                    <l/>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
              <custom-block s='$storage %l'>
                <custom-block s='fractional %l × %l'>
                  <block var='fraction'/>
                  <custom-block s='%n %br ━━━ %br %n'>
                    <custom-block s='%n %br ━━━ %br %n'>
                      <l>1</l>
                      <block var='gcf'/>
                    </custom-block>
                    <custom-block s='%n %br ━━━ %br %n'>
                      <l>1</l>
                      <block var='gcf'/>
                    </custom-block>
                  </custom-block>
                </custom-block>
              </custom-block>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='evaluate fraction %&apos;fraction&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <custom-block s='is %s a %s structure?'>
            <block var='fraction'/>
            <l>fraction</l>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportQuotient'>
                <block s='reportListItem'>
                  <l>1</l>
                  <custom-block s='$storage %l'>
                    <block var='fraction'/>
                  </custom-block>
                </block>
                <block s='reportListItem'>
                  <l>2</l>
                  <custom-block s='$storage %l'>
                    <block var='fraction'/>
                  </custom-block>
                </block>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <custom-block s='evaluate fraction %s'>
                <custom-block s='%s as a fraction'>
                  <block var='fraction'/>
                </custom-block>
              </custom-block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='structure %&apos;name&apos; $storage %&apos;data&apos;' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>
          <options>fraction
equation
terms
factors
variable</options>
        </input>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportNewList'>
            <list>
              <block var='name'/>
              <block var='data'/>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='$storage %&apos;structure&apos;' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportListItem'>
            <l>2</l>
            <block var='structure'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='is %&apos;structure&apos; a %&apos;name&apos; structure?' category='other' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'>
          <options>fraction
equation
terms
factors
variable</options>
        </input>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportAnd'>
            <block s='reportIsA'>
              <block var='structure'/>
              <l>
                <option>list</option>
              </l>
            </block>
            <block s='reportEquals'>
              <block s='reportListItem'>
                <l>1</l>
                <block var='structure'/>
              </block>
              <block var='name'/>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;x&apos; $nl ━━━ $nl %&apos;y&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'>3</input>
        <input type='%n'>4</input>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='structure %s $storage %s'>
            <l>fraction</l>
            <block s='reportNewList'>
              <list>
                <block var='x'/>
                <block var='y'/>
              </list>
            </block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='assert %&apos;condition&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%predRing'/>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportNot'>
            <block s='evaluate'>
              <block var='condition'/>
              <list/>
            </block>
          </block>
          <script>
            <block s='bubble'>
              <block var='condition'/>
            </block>
            <block s='doPauseAll'/>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;a&apos; and %&apos;b&apos; look the same?' category='operators' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block s='reportAnd'>
            <block s='reportIsA'>
              <block var='a'/>
              <l>
                <option>list</option>
              </l>
            </block>
            <block s='reportIsA'>
              <block var='b'/>
              <l>
                <option>list</option>
              </l>
            </block>
          </block>
          <script>
            <block s='doIfElse'>
              <block s='reportAnd'>
                <custom-block s='empty? %l'>
                  <block var='a'/>
                </custom-block>
                <custom-block s='empty? %l'>
                  <block var='b'/>
                </custom-block>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportBoolean'>
                    <l>
                      <bool>true</bool>
                    </l>
                  </block>
                </block>
              </script>
              <script>
                <block s='doIfElse'>
                  <block s='reportNot'>
                    <block s='reportEquals'>
                      <block s='reportListLength'>
                        <block var='a'/>
                      </block>
                      <block s='reportListLength'>
                        <block var='b'/>
                      </block>
                    </block>
                  </block>
                  <script>
                    <block s='doReport'>
                      <block s='reportBoolean'>
                        <l>
                          <bool>false</bool>
                        </l>
                      </block>
                    </block>
                  </script>
                  <script>
                    <block s='doReport'>
                      <block s='reportAnd'>
                        <custom-block s='%s and %s look the same?'>
                          <block s='reportListItem'>
                            <l>1</l>
                            <block var='a'/>
                          </block>
                          <block s='reportListItem'>
                            <l>1</l>
                            <block var='b'/>
                          </block>
                        </custom-block>
                        <custom-block s='%s and %s look the same?'>
                          <block s='reportCDR'>
                            <block var='a'/>
                          </block>
                          <block s='reportCDR'>
                            <block var='b'/>
                          </block>
                        </custom-block>
                      </block>
                    </block>
                  </script>
                </block>
              </script>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <block s='reportIsIdentical'>
                <block var='a'/>
                <block var='b'/>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='terms %&apos;terms&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='structure %s $storage %s'>
            <l>terms</l>
            <block var='terms'/>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;x&apos; as a term list' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <custom-block s='is %s a %s structure?'>
            <block var='x'/>
            <l>terms</l>
          </custom-block>
          <script>
            <block s='doReport'>
              <block var='x'/>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <custom-block s='terms %mult%n'>
                <list>
                  <block var='x'/>
                </list>
              </custom-block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='term-based %&apos;a&apos; × %&apos;b&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='terms %mult%n'>
            <custom-block s='map %repRing over %l'>
              <block s='reifyReporter'>
                <autolambda>
                  <custom-block s='combine with %repRing items of %l'>
                    <block s='reifyReporter'>
                      <autolambda>
                        <custom-block s='custom %s × %s'>
                          <l/>
                          <l/>
                        </custom-block>
                      </autolambda>
                      <list/>
                    </block>
                    <block s='reportCONS'>
                      <l/>
                      <custom-block s='$storage %l'>
                        <block var='a'/>
                      </custom-block>
                    </block>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
              <custom-block s='$storage %l'>
                <block var='b'/>
              </custom-block>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='description: %&apos;description&apos; %&apos;script&apos;' category='other' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%txt'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doRun'>
          <block var='script'/>
          <list/>
        </block>
      </script>
    </block-definition>
    <block-definition s='factors %&apos;factors&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='structure %s $storage %s'>
            <l>factors</l>
            <block var='factors'/>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='factor-based %&apos;a&apos; × %&apos;b&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='factors %mult%s'>
            <custom-block s='append %mult%l'>
              <list>
                <custom-block s='$storage %l'>
                  <block var='a'/>
                </custom-block>
                <custom-block s='$storage %l'>
                  <block var='b'/>
                </custom-block>
              </list>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;n&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'>10</input>
      </inputs>
      <script>
        <block s='doReport'>
          <block var='n'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='%&apos;x&apos; as a factor list' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <custom-block s='is %s a %s structure?'>
            <block var='x'/>
            <l>factors</l>
          </custom-block>
          <script>
            <block s='doReport'>
              <block var='x'/>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <custom-block s='factors %mult%s'>
                <list>
                  <block var='x'/>
                </list>
              </custom-block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='collapse numeric factors %&apos;factors&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='factors %mult%s'>
            <custom-block s='append %mult%l'>
              <list>
                <custom-block s='$storage %l'>
                  <custom-block s='%s as a factor list'>
                    <custom-block s='combine with %repRing items of %l'>
                      <block s='reifyReporter'>
                        <autolambda>
                          <custom-block s='custom %s × %s'>
                            <l/>
                            <l/>
                          </custom-block>
                        </autolambda>
                        <list/>
                      </block>
                      <custom-block s='keep items such that %predRing from %l'>
                        <block s='reifyPredicate'>
                          <autolambda>
                            <block s='reportNot'>
                              <custom-block s='is %s a %s structure?'>
                                <l/>
                                <l>variable</l>
                              </custom-block>
                            </block>
                          </autolambda>
                          <list/>
                        </block>
                        <custom-block s='$storage %l'>
                          <block var='factors'/>
                        </custom-block>
                      </custom-block>
                    </custom-block>
                  </custom-block>
                </custom-block>
                <custom-block s='keep items such that %predRing from %l'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <custom-block s='is %s a %s structure?'>
                        <l/>
                        <l>variable</l>
                      </custom-block>
                    </autolambda>
                    <list/>
                  </block>
                  <custom-block s='$storage %l'>
                    <block var='factors'/>
                  </custom-block>
                </custom-block>
              </list>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='algebraic GCF of %&apos;factor lists&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='factors %mult%s'>
            <custom-block s='overlap of %mult%l'>
              <custom-block s='map %repRing over %l'>
                <block s='reifyReporter'>
                  <autolambda>
                    <custom-block s='prime factorization of factors %l'>
                      <l/>
                    </custom-block>
                  </autolambda>
                  <list/>
                </block>
                <block var='factor lists'/>
              </custom-block>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='simplify algebraic fraction %&apos;frac&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <custom-block s='let %upvar be %s'>
          <l>gcf</l>
          <custom-block s='algebraic GCF of %mult%l'>
            <custom-block s='$storage %l'>
              <block var='frac'/>
            </custom-block>
          </custom-block>
        </custom-block>
        <block s='doReport'>
          <custom-block s='map %repRing over %l'>
            <block s='reifyReporter'>
              <autolambda>
                <custom-block s='remove %mult%s from %l'>
                  <block var='gcf'/>
                  <custom-block s='prime factorization of factors %l'>
                    <l/>
                  </custom-block>
                </custom-block>
              </autolambda>
              <list/>
            </block>
            <custom-block s='$storage %l'>
              <l/>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='remove %&apos;to be removed&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%s'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <custom-block s='empty? %l'>
            <block var='to be removed'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block var='data'/>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <custom-block s='remove %mult%s from %l'>
                <block s='reportCDR'>
                  <block var='to be removed'/>
                </block>
                <custom-block s='remove first match of %predRing from %l'>
                  <block s='reifyPredicate'>
                    <autolambda>
                      <block s='reportEquals'>
                        <l/>
                        <block s='reportListItem'>
                          <l>1</l>
                          <block var='to be removed'/>
                        </block>
                      </block>
                    </autolambda>
                    <list/>
                  </block>
                  <block var='data'/>
                </custom-block>
              </custom-block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='remove first match of %&apos;pred&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%predRing'/>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <custom-block s='empty? %l'>
            <block var='data'/>
          </custom-block>
          <script>
            <block s='doReport'>
              <block s='reportNewList'>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doIfElse'>
              <block s='evaluate'>
                <block var='pred'/>
                <list>
                  <block s='reportListItem'>
                    <l>1</l>
                    <block var='data'/>
                  </block>
                </list>
              </block>
              <script>
                <block s='doReport'>
                  <block s='reportCDR'>
                    <block var='data'/>
                  </block>
                </block>
              </script>
              <script>
                <block s='doReport'>
                  <block s='reportCONS'>
                    <block s='reportListItem'>
                      <l>1</l>
                      <block var='data'/>
                    </block>
                    <custom-block s='remove first match of %predRing from %l'>
                      <block var='pred'/>
                      <block s='reportCDR'>
                        <block var='data'/>
                      </block>
                    </custom-block>
                  </block>
                </block>
              </script>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='prime factorization of factors %&apos;factors&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='append %mult%l'>
            <custom-block s='map %repRing over %l'>
              <block s='reifyReporter'>
                <autolambda>
                  <custom-block s='if %b then %anyUE else %anyUE'>
                    <block s='reportIsA'>
                      <l/>
                      <l>
                        <option>number</option>
                      </l>
                    </block>
                    <custom-block s='prime factorization of %n'>
                      <l/>
                    </custom-block>
                    <block s='reportNewList'>
                      <list>
                        <l/>
                      </list>
                    </block>
                  </custom-block>
                </autolambda>
                <list/>
              </block>
              <custom-block s='$storage %l'>
                <block var='factors'/>
              </custom-block>
            </custom-block>
          </custom-block>
        </block>
      </script>
    </block-definition>
  </blocks>
  <variables>
    <variable name='list of primes'>
      <list id='2073'>
        <item>
          <l>2</l>
        </item>
        <item>
          <l>3</l>
        </item>
        <item>
          <l>5</l>
        </item>
        <item>
          <l>7</l>
        </item>
        <item>
          <l>11</l>
        </item>
        <item>
          <l>13</l>
        </item>
        <item>
          <l>17</l>
        </item>
        <item>
          <l>19</l>
        </item>
        <item>
          <l>23</l>
        </item>
        <item>
          <l>29</l>
        </item>
      </list>
    </variable>
  </variables>
</project><media name="math" app="Snap! 4.1, http://snap.berkeley.edu" version="1"></media></snapdata>