Java StarLogo 2.0 english `turtle` turtles-own[WayPoints ListPosition startTime endTime totalTime] breeds [group1 group2 group3 group4 group5 group6 group7 group8 group9 group10 group11 group12] globals[flag] to setupWaypoints ifelse (breed = group1) or (breed = group4) or (breed = group7) or (breed = group10) [ setWayPoints list 90 270 setWayPoints lput 0 WayPoints setWayPoints lput 0 WayPoints setWayPoints lput 270 WayPoints setWayPoints lput 90 WayPoints setListPosition 1 ] [ ifelse (breed = group2) or (breed = group5) or (breed = group8) or (breed = group11) [ setWayPoints list 90 270 setWayPoints lput 0 WayPoints setWayPoints lput 0 WayPoints setWayPoints lput 270 WayPoints setWayPoints lput 0 WayPoints setWayPoints lput 0 WayPoints setWayPoints lput 270 WayPoints setWayPoints lput 90 WayPoints setListPosition 1 ] [ if (breed = group3) or (breed = group6) or (breed = group9) or (breed = group12) [ setWayPoints list 90 270 setWayPoints lput 90 WayPoints setListPosition 1 ]]] end to drive ifelse (pc = sky + 1) or (pc = sky + 2) or (pc = sky + 3) or (pc = sky + 4) or pc = (orange + 3) [ ] [ ifelse (pc = gray + 2) [wayPointReached] [ ifelse (pc = gray + 3) [enterPointReached] [move] ] ] end to move ifelse empty? (list-of-turtles-towards 0 1) [ ifelse pc-ahead = (orange + 3) [fd 1 set endTime timer set totalTime (endTime - startTime)] [fd 1] ] [ if pc-ahead = (orange + 3) [fd 1 set endTime timer set totalTime (endTime - startTime)] ] end to circleMove ifelse (pc-towards 0 1 ) = gray + 3 [ show "go ahead" move ] [ ifelse (pc-towards 315 1) = gray + 3 [ show "go left" lt 45 move ] [ ifelse(pc-towards 45 1) = gray + 3 [ show "go right" rt 45 move ] [show "nothing"] ] ] end to wayPointReached let [:f (item ListPosition WayPoints)] if empty? (list-of-turtles-towards :f 1) [ rt :f fd 1 setListPosition (ListPosition + 1) ] end to enterPointReached ;if empty? (list-of-turtles-towards 315 1) [ move ;] end `observer` patches-own[enterCirclePoint] globals[startXNorth startYNorth startXEast startYEast startXSouth startYSouth startXWest startYWest] to initialize ct ask-patches [ ifelse pc = (sky + 1) [ set startXNorth xcor set startYNorth ycor ] [ ifelse pc = (sky + 2) [ set startXEast xcor set startYEast ycor ] [ ifelse pc = (sky + 3) [ set startXSouth xcor set startYSouth ycor ] [ if pc = (sky + 4) [ set startXWest xcor set startYWest ycor ] ]]] ] create-group1-and-do groupN-straight [setshape car1 setxy startXNorth startYNorth setupWaypoints seth 0 setcolor red seth 180] create-group2-and-do groupN-left [setshape car1 setxy startXNorth startYNorth setupWaypoints seth 0 setcolor yellow seth 180] create-group3-and-do groupN-right [setshape car1 setxy startXNorth startYNorth setupWaypoints seth 0 setcolor blue seth 180] create-group4-and-do groupE-straight [setshape car1 setxy startXEast startYEast setupWaypoints seth 0 setcolor red seth 270] create-group5-and-do groupE-left [setshape car1 setxy startXEast startYEast setupWaypoints seth 0 setcolor yellow seth 270] create-group6-and-do groupE-right [setshape car1 setxy startXEast startYEast setupWaypoints seth 0 setcolor blue seth 270] create-group7-and-do groupS-straight [setshape car1 setxy startXSouth startYSouth setupWaypoints seth 0 setcolor red] create-group8-and-do groupS-left [setshape car1 setxy startXSouth startYSouth setupWaypoints seth 0 setcolor yellow] create-group9-and-do groupS-right [setshape car1 setxy startXSouth startYSouth setupWaypoints seth 0 setcolor blue] create-group10-and-do groupW-straight [setshape car1 setxy startXWest startYWest setupWaypoints seth 0 setcolor red seth 90] create-group11-and-do groupW-left [setshape car1 setxy startXWest startYWest setupWaypoints seth 0 setcolor yellow seth 90] create-group12-and-do groupW-right [setshape car1 setxy startXWest startYWest setupWaypoints seth 0 setcolor blue seth 90] resett end to drivingControl wait ( (101 - speed) / 100 ) ask-turtles[drive] startDriving end to startDriving let [ :r random 3 ] if (:r = 0) [ ask-turtle (one-of-turtles-with [(xcor = startXNorth) and (ycor = startYNorth)] ) [set startTime timer move] ] let [ :r random 3 ] if (:r = 0) [ ask-turtle (one-of-turtles-with [(xcor = startXEast) and (ycor = startYEast)] ) [set startTime timer move] ] let [ :r random 3 ] if (:r = 0) [ ask-turtle (one-of-turtles-with [(xcor = startXSouth) and (ycor = startYSouth)] ) [set startTime timer move] ] let [ :r random 3 ] if (:r = 0) [ ask-turtle (one-of-turtles-with [(xcor = startXWest) and (ycor = startYWest)] ) [set startTime timer move] ] end to clearCars ct clearplot end to showPlot ;viewplot end `information` `interface` SLCanvas top-left 3 218 SLTextWidget top-left 211 3 width-height 70 25 textwidth 66 linenums 1 words "Cars from east" drawBorder false textwidget-number 2 SLTextWidget top-left 267 3 width-height 79 25 textwidth 75 linenums 1 words "Cars from south " drawBorder false textwidget-number 1 SLTextWidget top-left 323 3 width-height 74 25 textwidth 70 linenums 1 words "Cars from west " drawBorder false textwidget-number 4 SLTextWidget top-left 148 4 width-height 78 25 textwidth 74 linenums 1 words "Cars from north " drawBorder false textwidget-number 3 SLLineWidget top-left 403 10 width-height 199 223 id 5 order 5 type 0 title "Plot 5" delay-string "1.0" xlabel "car groups" ylabel "average time" grid true connected false autoscaletrue location 0 0 whichip 14 onewhichip 15 wizard-on true lineset-id 1 lineset-name "cars from north" lineset-order 5 lineset-type 0 lineset-color -65536 lineset-displayed? true lineset-instruction " (average-of-turtles-with ( ((breed = group1) or (breed = group2) or (breed = group3)) and (totalTime != 0) ) [ totalTime ] ) " extrainfo-extra? true extrainfo-instruction "average of" extrainfo-breed "turtles" extrainfo-var "totalTime" extrainfo-with? true extrainfo-with-text "((breed = group1) or (breed = group2) or (breed = group3)) and (totalTime != 0)" extrainfo-xy? false extrainfo-xval? false lineset-end 1 lineset-id 2 lineset-name "east" lineset-order 5 lineset-type 0 lineset-color -11418368 lineset-displayed? true lineset-instruction " (average-of-turtles-with ( ((breed = group4) or (breed = group5) or (breed = group6)) and (totalTime != 0) ) [ totalTime ] ) " extrainfo-extra? true extrainfo-instruction "average of" extrainfo-breed "turtles" extrainfo-var "totalTime" extrainfo-with? true extrainfo-with-text "((breed = group4) or (breed = group5) or (breed = group6)) and (totalTime != 0)" extrainfo-xy? false extrainfo-xval? false lineset-end 2 lineset-id 3 lineset-name "south" lineset-order 5 lineset-type 0 lineset-color -6262704 lineset-displayed? true lineset-instruction " (average-of-turtles-with ( ((breed = group7) or (breed = group8) or (breed = group9)) and (totalTime != 0) ) [ totalTime ] ) " extrainfo-extra? true extrainfo-instruction "average of" extrainfo-breed "turtles" extrainfo-var "totalTime" extrainfo-with? true extrainfo-with-text "((breed = group7) or (breed = group8) or (breed = group9)) and (totalTime != 0)" extrainfo-xy? false extrainfo-xval? false lineset-end 3 lineset-id 4 lineset-name "west" lineset-order 5 lineset-type 0 lineset-color -256 lineset-displayed? true lineset-instruction " (average-of-turtles-with ( ((breed = group10) or (breed = group11) or (breed = group12)) and (totalTime != 0) ) [ totalTime ] ) " extrainfo-extra? true extrainfo-instruction "average of" extrainfo-breed "turtles" extrainfo-var "totalTime" extrainfo-with? true extrainfo-with-text "((breed = group10) or (breed = group11) or (breed = group12)) and (totalTime != 0)" extrainfo-xy? false extrainfo-xval? false lineset-end 4 lineset-id 5 lineset-name "" lineset-order 5 lineset-type 0 lineset-color -11418368 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? false extrainfo-xval? false lineset-end 5 lineset-id 6 lineset-name "" lineset-order 5 lineset-type 0 lineset-color -16711936 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? false extrainfo-xval? false lineset-end 6 lineset-id 7 lineset-name "" lineset-order 5 lineset-type 0 lineset-color -16711738 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? false extrainfo-xval? false lineset-end 7 lineset-id 8 lineset-name "" lineset-order 5 lineset-type 0 lineset-color -16711681 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? false extrainfo-xval? false lineset-end 8 lineset-id 9 lineset-name "" lineset-order 5 lineset-type 0 lineset-color -16744449 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? false extrainfo-xval? false lineset-end 9 lineset-id 10 lineset-name "" lineset-order 5 lineset-type 0 lineset-color -7434610 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? false extrainfo-xval? false lineset-end 10 SLSlider top-left 294 12 width-height 45 25 name "left" variable "groupS-left" min-value 0 max-value 99 current-value 60 slider-number 6 show-name? true SLSlider top-left 294 60 width-height 67 25 name "straight" variable "groupS-straight" min-value 0 max-value 99 current-value 36 slider-number 7 show-name? true SLSlider top-left 347 135 width-height 55 25 name "right" variable "groupW-right" min-value 0 max-value 99 current-value 36 slider-number 11 show-name? true SLSlider top-left 347 63 width-height 66 25 name "straight" variable "groupW-straight" min-value 0 max-value 99 current-value 14 slider-number 10 show-name? true SLSlider top-left 347 13 width-height 47 25 name "left" variable "groupW-left" min-value 0 max-value 99 current-value 40 slider-number 9 show-name? true SLSlider top-left 294 133 width-height 53 25 name "right" variable "groupS-right" min-value 0 max-value 99 current-value 17 slider-number 8 show-name? true SLSlider top-left 179 13 width-height 45 25 name "left" variable "groupN-left" min-value 0 max-value 99 current-value 0 slider-number 0 show-name? true SLSlider top-left 237 13 width-height 45 25 name "left" variable "groupE-left" min-value 0 max-value 99 current-value 46 slider-number 3 show-name? true SLSlider top-left 236 62 width-height 67 25 name "straight" variable "groupE-straight" min-value 0 max-value 99 current-value 24 slider-number 4 show-name? true SLSlider top-left 237 133 width-height 52 25 name "right" variable "groupE-right" min-value 0 max-value 99 current-value 25 slider-number 5 show-name? true SLSlider top-left 179 62 width-height 65 25 name "straight" variable "groupN-straight" min-value 0 max-value 99 current-value 33 slider-number 1 show-name? true SLSlider top-left 179 131 width-height 51 25 name "right" variable "groupN-right" min-value 0 max-value 99 current-value 35 slider-number 2 show-name? true SLButton turtle-or-observer? observer top-left 46 83 width-height 54 30 name "initialize" line-to-run "initialize" forever? false button-number 1 show-name? false whichip 11 SLButton turtle-or-observer? observer top-left 83 82 width-height 54 30 name "drive" line-to-run "drivingControl" forever? true button-number 3 show-name? true whichip 12 SLButton turtle-or-observer? observer top-left 9 83 width-height 54 30 name "clear" line-to-run "clearCars" forever? false button-number 2 show-name? true whichip 13 SLSlider top-left 122 44 width-height 124 25 name "speed" variable "speed" min-value 1 max-value 100 current-value 71 slider-number 12 show-name? true `turtle shapes` H4sIAAAAAAAAAO3c264k133Y4RJ1oiXKkp2DpciKy7LjxE6okENySMZJvIEAyoWh KwO+MHQhUhmHAiSSGY4iJFf9oH4AvUWianJ3z6zZ3VVdtVat0/cB6V+6Zlev+tfU 7DmYWsO3f/bs10+f/fLJ+NlHH3z65LOf3b063Ls7vr72+Y+/fvzx6cCXfvf/vvy7 //fq6Uvo2WF6+X+/EzY8dunrYp1/y2c/9Hlbz1/6OVvnKHD+73z+bQEA6M8rx9db /xxRQm/9M1qqdfe+jr3Wv/S5S9dfe12pfw5zXUesn4e91rV+3+tvXXftdcReN9Z1 LL2+ufML7DgMXxkAAAAAAAAAgBZ8/r8jKuS/SdAOOvc1ua/P/PvO2/r9ML/5W5r/ 1uuNPX/u+9Xb/Cnv5R41f1/PQ+o1cs+Xe/7S7kfue25+85vf/OY3v/nN3/r8uefN fT9yz7f3/LnnyX0/cl9/7vlvvR+x79/W9c2verVfGl777H/9+oOn5+1Dj9sE2j6U e4dCHlXN1MH2oQDQsVey/1lEVVVV9+9g+1AAAAAAAAAAaMir2f9bBFVVVVVVVVVV VVVVVVVVVd3eYdoQ6LVPnzz97JOPT9uHvjLtE2j7UO4dppeHHqEHHqerX3fr+REf 803XH/v8tde79H6uvd4rP277UADo1ivH1y1/Rtr6Z67c66/9s9ra9Us/v7feek7s z7N+2etv/YzW1o/99aWtv/V+Vnj+aPtQAAAAAAAAAGjFq8fXLf+txly3fkbq6zO/ +XueP/X6uee3vvWtn/Z7iKrW2dRrlH595je/+c1vfvObf//5ar8/5je/+dNdn/nN b/5882/9DOtb3/pFr//l4VvPnjz91S+ePTntH/rlJvcPvfv24YXe+uO1r7/BYXrZ +iwueb73OP95137s2udt+XWXe/2V98/+oVCorb93FPx7zyLmPzzYVOfRq9v3D+29 sf6sFnvd1NeRe/3c9z/H+s/bcm6M68rx81/S/EvvQ6x11s5wTW0//9bf5fkb7R8K AADAJZf+bw17/d8ccq8PPcv96y/3+tCzuV9/sX897r0eAED70u8fqqr9dutn5L7+ XHPXeh9Sr5F7PvOb3/z734fc8+S6D7mv3/ye/4eu5ZKca5dwn/aYP/fPv/n7nv+a nGuXcH96+PnPcR9yz5PrPuS+/kvXtNSea8Va089//rlrvQ+p18g9n/nNb37z730f cs+T6z7scJ1fGf7wfv/Q33zyyf84bSL6laubiN79+KdXO2fr+Wvl3sQz9/obHKaX hx7Qa5Y84FvOf+gX2a3rLrmmNb+4S15/5f1btIno3K/t1L/2e1+fPtlE8/BC9z4/ N5uIso9lm4hutfEvNt2vv+TPiGv/zFjL+kuvI9W6OdZ/3pZzY1xXjp//kuZfeh9i rbN2hmtq+/m3/i7P3xhjE9Gtf1eu/e/a5jd/zuZm/r7nBwDal3sTr9zrQ89y//rL vT70zCaiAAC1i7OJaG4p/puLW5qb+c2fs7mZP+/8z3ePe13CnOY3v/nNv9d9yD1P rvuQ+/pzzV3yfbgm59ol3Kc95s/982/+vue/JufaJdyfHn7+c9yH3PPkug+5r//S NS2151qx1izh572G52CPuWu7D+Y3v/nN3+v8qe5D7nly3YcdrvOrw2tPP/jww188 O20f+tXr24fe/2eXP/vBC+8vufv+8ODXXXp///Vzn/NSL5x38fwL72Off/q6Gxue P/d5l77+kruf/HbZF964fei1Rzn8mkvvr33eUkuuY8/z17rlXl37+rl5Zr5u2fah 4a/J++8RwfeK1dv8XXrmb/xPxS9dx6XPv/TjW9e99D1s7fovff2NPz63/sXriTT3 rYpZ/9J13Pjj1t+4/qXfo+eO37j+2t/Tb/29f+91b/3+E+u65j5/7Y/Hmm+pl9b5 4s9Yp278/JuvJ1h/uzTbh675a9FD52819/mx1rnVLesvvVe3zBL753vreta3fgnr p5Zr3bnruPTjsdZZu/7a67j182M/F7d+/tbr2fh5Y4ztQ+/F/jt0LRbP9bM/+aIP /xtK7vuw+O8ut/58nua+0EjPRaq/A7709bH/rWjj/Gv/Drr0/GT/Rhb539iSzZ97 zo33YU6s+V/63K3P9U7zn9bbeB9WX//a8yPNfVqvtl8Hkee/pPT5UyvuOdj7395y /7rY6Tm/ZPP8ic9PzfwLG3v+SH++28r8C2v+h9vL/Jfmif315n+hsd08b2FdK/d1 574Pua831/y5rzP3fZj/nLuguee67XrmLF1v+den7fk67oJe//pL1t6//Z6HuyTX P/c5819/t2j91POvvf5YFs/xk396sZG/j+e2eO6F96EVc/P3oty542wfmvu/4cnd 1HLNkWveObH/G5lb18tt6/WXNk9q5k8//9bPTPlzssf38RLnL+33sb2l+n2xNLHm NL/5H2rpzG/+lC2d+c2fsqUzf1/zzul17pD5+5w7ZP4485dyv9Ze99r5S3luYl// 3OeU9usm9vXX8ueFveYo7T7knmev+5L7+nLdh9zX80W/Nvz+L5/847PXf/7B09MG ol+bfvziBqJb3f39uo+8P2/t+ax2mF6ef3CuPeS3/IJY+2NL15q73lp6af65+xPx xxdtIEpZcn2vzPW9Olx3r/Uvrev3KqAdyzYQ1bKa6muXfFaO9R+S8p5dW3frTHNf s9czpDp84dqPPW/NZ685f07r5+98/8eYG4gCwPN6/ze0Xufv9d9Qe/035Lm5W51/ 6dytzX/r3K3Mv3buVuYHAAAAoDZxNxBVVVV9vs+L8Vm558k5f0334SE9zH9NirVy z7tk7tTXWvrce11jqXPnuLaS5t57/tj3Ye/rLuX+5L6+XPPnvi5VVVVN17XnXLPH NedY/1atrL+V9a1v/XrXX3sdsdYtZf2l15Fq3UTrf3349tNf/M+PXtxB9OvTFyTb QfSSrf9LGf+Lm2QO08tDT9C1p/Tak7fk6b7lvGu/OpacV3qvzTh3DyL9uB1EG5L7 e2Tu79W5/1ea/teiQH3sIFp6l37t83KvH+M6bj3nmpTrLln/2nXE/Llaep0519ey Ovdjz1vz2WvOn9P6+Tvf/9EOogCUovd/QzP/3YPtRe//ptz7Toy970jZ+86cdigF AAAAIC47iKqqapxu/YyHlDBX6rnNf3n+ku9D7M9cosW5b5k/531IvcYaLcy9Zf6U 92GvuWPMv+Y+7D3fnvex5/mX3ofc15f7PuS+LlVV1Rxde841e1xzjvVv1cr6W1nf +tavd/211xFr3VLWX3odqdZNtP6rwzc++80HH582Dz3+RwGrNw+9++GtZ7x43qmP l33d3PGLnz/TtefF6trrnxPe10v3+TmH6WXtQxrr4Z77urnjW7+J5LL2+m/9+Zk5 r4vNQ2/9tZRq3bnvgXuvn/o6Yt/3W783bl0/9vf2VOve+ntcqnVr/b24lj8DpFo/ 9fWslWvdl65j5vtk8u+jM9+vt38/f+X4mvovOLkbyrXu3texVC33/dbr37r+rWKt v1Ws+5VarnVzr1/Kfd/rOUj9/Sv2upeuY+2Px/6+F/n73GjzUGq3198JSrP334lK cfPfDXf6t6+9mP/GPr7e2pj/eltX+vyp/82u1PlL+bfa1HL/m7X515231l7zLp1n 7/+bQO75wzlSfV/Z+vm1dE7u6yv1+0orDeW+HvPv00tyX5f503ap3NeZe/5Q7uve a845uefKNfclvc0b6n3+0NZ/T6z+3yPNf7Wpz8+t/vltHqr1d07u68s1d6vzb5X7 +s2fd/7a74f525qntflv1cr8sZQ+/17MX8b8uW29ntrnv7f1emqbNxXz9zn3vV7n vtfr/J77Pufv/fe92v/cs1TsP/fWch9SzV3q/dh7XvPfdj/2Pj93zX9d6vNzt/L5 f2947cnH//f//OrJafvQ35v2CTxtH3r3t8+Ol3H3448WNXR//pyl529dP/y6tefH mn/2vi68fxc/9/7nb2WHL7YPvdWlx3zpL4e541vXn/u81Ovf+m1g7vytnzvjuH3o S8/Ij38atXNKW3+r1tbPff9LW//W62tt/dz3v7Rf/5u/T1W+/ubrLWz93nq/fWhq O/2ZJtr6sf8KWfv6W7W2/q3X19r6t6p9/VvPT329pa0f+3pzr9+Zcdo+dPbPDJH/ br733/XnmN/8V1vInLnmz8385r/WzZ9v/qvden2tf/8zv/lzdqvU82893/zm3/L5 s+ub/2pnz/f9L2u3Mr/5rzW13PfP/Oa/1tR6nz8185v/as2vqp32fvvQ2vX+34aY 3/xbmvrzS78+85vf/Os/Pzfzm39Lt35+bqXPn/r+md/8W5r6+nufPzXzm39Lt35+ brnnT71+buY3f8qWLvX8pd/f3NdvfvPnnB9o1jeGb3z06JNHp81Dv/HC5qH3X3X3 +qcvNNTLj8+Z+7pwndl1/+FHD3bp1209f/hi89BLv5nM/WbT6o8v/U137W/KS79+ 62/2C88/bh4auvVZdr7znd/u+VvVtv7c+bd2q9Trb/0zxtbPs37e9e83D936Zxnn O9/57Z4/9/WxPy/3+rfezzmxrz/2+rk/z/pZ1x+nzUPntP5nYetb3/rWt771rW99 61vf+ta3vvWtn/7ztzK/+a+19M/fKvf1bf3+lPv721bmN3/Obr7+zP/tQu7rM7/5 U3ar3NdvfvNv6Va5r7/1+e83D83936JY3/rWt771rW9961vf+ta3vvWtb/3y19/6 +aVfn/nN3/P8W9dPrfT7n5r5zb+lvV9fauY3/5bWzvzm39LaFT7/N4fXPvz1hx/+ 8slp+9BvPrh96L2771/vJXPnXfqcl378J799sTd+7ubzd+69teeFVpx3mF5ufSxj Pc6tfBvYauv92/jz952Htg8NxXrW19p7/b1+7Zey/s3fW/f+Xmv9vOtr0w3tvV5p 68e+nq3Sr//w9qGx/8qS+69Mhf0Vrbj1gX7l/v5T2vq5f//Zef1xyfahc0r7s+ze zJ+3ubU+f+75ct+f3Ndv/m3dKvf1p55/8zpz/1bZ+r9lmt/85je/+c3f4/yqqqpa Xefkvr7U883Jff3m39atcl9/7vnntD7fHPPnbW71z79s+9Dc/+3GnK3Xb37zb2lu rc+3lfnNv6W1a30+AAAAYF7r/z7g33/Mv6W12zp/6fcn9XzmN/+15rbx+l8bvve/ nzx99ouff/DL1//u2dMnT569/t8++dWnn3z85ONnxx8eruwlSncO00vuX3Mp+tCv 6z3Pr6jHvUTvvvv5jNX1vwe1vvW1n+b++bd+3+s30vu9RAGA7owx9hIFAAAAAAAA AEoQZy9RVVVVVVVVVX244bHc12N+VVVVVVVV1ab7reErP//g6ZvT/+9Lg21Di3P3 w7hfd4PD9PL84zL3SF37MedvO3/us4dApPWP24Yudb89W6yv47pYv+bXfk7u9Ut3 P1eu+axv/ZTr5/71n3v9fny+bejcnx/CP4fE+rol3foZNa8f4x5u+fnIvX7u+39t /aWzWd/6ta6/9dqXXmOp61+7/3vOkLijbUPje2lr+5X/NhLrc/bW+/xAu3L/G1Bo 7+sx/77rzSnteujT0ucw/Lq155XG/C926deZf915pTH/i136deZfd15pzP9il36d +dedVxrzv9ilX1fb/KVcxz1//3+xra03p7TrAaiHbUNT9JJcn2P+9M1xj0uYu/f5 c1+D+fOsWcK9D69lr2syf9/zP98S5s95DeZ/+Dm8dr3XLD3P/OY3v/nNb37zm9/8 5jf/Pl1yvTmuZa9rMn/f8z/fEubPeQ3m73t+rb6/P7z62UcffPrk9TffPr4bbB3K 2WF6KeRRTfqte+/zK+pNW4cCAC25betQVS2j4bHe1lfVKB1tHQoAAAAAAAAArbB1 qKqqqqqqqmrKhsdyX4/5VVVVVVVVVZvut09bh75zfDfYOpSzw/RSyKMateGxvc+v qLYOBYBu2TpUtcaGx3pbX1WjdLR1KAAAAAAAAAC0wtahqqqqqqqqqikbHst9PeZX VVVVVVVVbbrfOW0d+vj4brB1KGeH6aWQRzVqw2N7n19RbR0KAN2ydahqjQ2P9ba+ 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 `template` null `settings` patch-size 16 num-shapes 64 screen-half-width 20 screen-half-height 19 interface-window-xcor -4 interface-window-ycor -4 interface-window-size 974 640 output-window-xcor 0 output-window-ycor 0 output-window-width 300 output-window-height 200 info-window-xcor 0 info-window-ycor 0 info-window-width 500 info-window-height 400 control-center-xcor 132 control-center-ycor 36 control-center-width 794 control-center-height 625 turtle-command-center-height 136 observer-command-center-height 209 `string table` H4sIAAAAAAAAAGNgYGBh4EjPV0jMSE1MYWAHsnJS00rAQkWZ6RklDOx5+SUZmXnp ADiRaDMqAAAAAAAAKg== `symbol table` H4sIAAAAAAAAAGNgYGBiYE1LzClOZWApKSpNBQDlw1heEQAAAAAAABE= `double table` H4sIAAAAAAAAAGNgYJA4wAABDoZQ2ghC23+A8qHyB4yhNFT+AAdUPhxiggOMLwCl RaC0BJSWgdIKUFoLSutBabcGCB0FsdFBBSquBqWVoLQGlLaE0AAno8lixAAAAAAA AMQ= `list table` H4sIAAAAAAAAAMVUS1LDMAyVHaVp0tCQlpYtHKAnYME9soYlt+sBK0VPVLhhBtiQ mTe29GT9LIeIeiL6yETrRJRkrQQMOcvaCjrIym0EPWS1uxNs9SzOD9hnAYl8L+s5 yCU/gq8Qr+R34BnxBtjy1X/S+DXyK/kR/EptFvgd+EYBvoa956+1rhY4zb1VfoHT vLtkvRvgfx18ToJNsv6W/Ai+T9bvklffE1kd77B7E/kBtZH3MFudrqvQw6irUVvU NaiJyT71pd8r7rjDve8tz7l/9D2+8FPYx3nTOrfZavitz7/GbTHLB8GxiHtjL9sh vBN/H/4u/D08Fr3NPpuiOoS7cb9ur/s2Xd9B91M7snlwv3MstvpfCp3uT0DUa44n thybGDcCPXjGOdcx8mGcYa8bczL/Lxb4yv8d2fpS8up3r/OAu/nkkcfTf+dxAfX9 Tmg8BQAAAAAFPA== `bytecodes` H4sIAAAAAAAAAO2YWXMcNRDHNXvfs9d4fa29vomTOIkT53CcYOKQcMRgAtjceGMP 9oDZTa0npMzngCoeeOfLwCMfgE8CGqkl9Wi1O04Vj5lyuXelVv/+0+qRNEvy+8/O fPege+ie7m+SP4PrL0JImeS8jud77RPvZ5cQ628ir9k4IbHgwy6x6hbtg3aL/7PK 9H+5AT5ZYjnChzZU4vR7HL7H2ffAcN9NFC8BNjkkXkqLl9biLaN4GbDZIfFyWry8 Fq+O4hXAFofEK2nxbBXPjoGNm+2cuP8y2Aqx5oWOUWirEuIswucasSqCW+efnRRL SZBDebF+h/6JGCP0s2A0eHvAH01Dm/AbM/DHEX8C8Scj+E3En0L8aQO/BXbGwJ9F /DnEn4/gLyD+IuIvGfhvgL1g4C8j/kXEvxTBv4z4K4h/xcC/Cvaagb+K+NcR/0YE fw3xbyL+LQP/Ntg7Bv464t9F/I0I/j3Ev4/4bxr4m2DfQnwH2h4g/hbiP4zgv434 jzg/xHwM9h0D813EfA8x349gPkHMbQPzA7AfGpg7iPkRYj6NYH6MmJ8YmJ+C3TXM 7R5ifoaYn0cwv0DML9HcfmWY26/BfmPgf4v4+4jfjuA/Q/wDxD808F2w3xn4R4h/ jPheBP97xP8B8U/CfDsfbAdscOmw5/3kdY62uh2/16V+dK0NxxTWYjqtstASo59p QDsH2pOgKaXGs71EaI2pYIxtkcKp3+75D7kA2vOH8gCyVU4FAf+lVwDgVqiRu94k 2ALd7YhSV+E+lhOTO75sK0+xTT42N692TlvsqrSjaoHqtHY3SbWDWvyuB2tMRWhM GzRmzqkx+woac0M05iM0Fgwai+fUWHoFjfYQjeUIjRWDxuo5NdbOp5FVbIxkD07c dm+r3TsloYcvOJQuJMAtTjKnx92XOyddn4QeB/E42UnwTJDSqeu/eL7XPnve9Tp+ EPUf5e600IPQQN/FjU2jtpihLS7b+I2vqgIXxdskslhZIqAwZTFWafE04+Gig6KS BRTyKSCfoiyEsI+NfNARM+RTRT41sHXeJo/Ev6B7dbQcjRjy0TC0jWo52ob2MbDj KEcTSNMk2Kamewr5TINtaT4zyGcW7JzmM498FsAuaj5LyAcdFUM+y8jnIthLms9l 5LMC9ormcxX5XAO7qs3HCsrrdW0+bhhyv2Zou6nNRwPab4G9jebjDtK0DvaupnsD +dwDe1/pNr0KsWczSZLB1kh36eD0AJdVF2hh1Run6kP7jegLblH2979dhvtTan8w 9ve/Tap0idg5vszIqbmAxufV2h56exQ7eFbdoByP7w891sbxOZkvNT5pXmNNb6As /SmS+LHLsr+rRuiZH6c7QzMDhKX+7NdLAzPOx1RVxp0C2hXSqGj4IigzHhSXPAPl tAcgoTJM44XujPXPqEVS7KRSo7D2AI1lTWMFaawijTVNY91c7DafktyB16Ob2jbP 9d7gXEud/dXNdWZUrltp82wzvw05F/KUJGOjjScUOy/zz2KL3DvjQzit/mqXnEEV nJdzoDhB3seGcBJqPoIxQ6s6Q+yX7bOdYK9/6rYPjl36YhCs7iLTkHQ1mRasZsUB R6OY9hCUVb8zJieKFSNMjorNHwb5AOAiYWKzpOJ2fLenyUU50HMCx5/agxe+3+2s t1r4Rzy5BIQuNqAkB4glN6stG5YawTSmDGPZ2QyNifdznngdt7XnHR65/nprjTb/ Dpzf+gqetzf7T1iG05VqS6jlWORY5jt4HRjlx9FQ4aS5T/DVLsJRle7mC2LXV8t9 v6acpilv0FTQNBWRptIATXaEJnVq69dU1TTVDJrqmiYHaRoZoKkRoUn9WNivaVzT NGHQNKlpaiJNUwM0TUdoavEX5FDN5gx1+Ovr+ntdf/9v/bFay/8HF6wfXGIZAAAA ABli `observer world` H4sIAAAAAAAAAD2NQQ7CIBBFp4VCrRuP4AE8gSs3bt240O6KcUSTpjSAen2nI0Dy Ev78+X9gM7hbQP9Bvw3RRBwOUN4eunl08fu6W4ykJagRJxuf9N+BXrwZJ15dc7i4 LbEC+RiNLbaP15PzbFdp0OdBDd1/42jCckkk3Sctc8PZvTnQ5IY8ULnhgpzQuSHp ls8Sgs8xFVETgpBEQyhC/wCXEuPEFgEAAAAAARY= `patch world` H4sIAAAAAAAAAI3dS4vk1gGGYeVCIhICgmihhRZCCCGEELq0WurS1Z6BbEMWwcsE Z0gMxjbOQJKdflp+Un5CxmOOTJ+p+s7bUH2hnv5GXT28iOquau93f/nur++//Efy z/d/ff/uL4d3vfzZ++W/v/z2+4/v/+a7r799/6+v/vb3d+8/fBR7P//uyw9vA+9X X7/75u/v//Hh/cz79Q/mu3fffPgg8n75nx8/1fd++3H4csmHS/jh8vsPl595wbtv 3r/7/s1X33/59bs/fvvVNz+se/v/fjwA8/b403/NMf3sh8sPr8xxSuMDEwATAhMB EwOTAJMCkwGTA1MAUwJTAVMD0wDTAtMB0wPzBMwAzDMwIzATMC/A3ICZgVmAWYHZ gNmBOYg53eYzsPMZ2Pkc7HwOdt6AnTdg5y3Yeeveua7zxI4HjA9MAEwITARMDEwC TApMBkwOTAFMCUwFTA1MA0wLTAdMD8wTMAMwz8CMwEzAvABzA2YGZgFmBWYDZgfm IOZ0m8/Azmdg53Ow8znYeQN23oCdt2DnrXvnarj/2Fyfr4wPTABMCEwETAxMAkwK TAZMDkwBTAlMBUwNTANMC0wHTG+ZL7xPzZNlVMOVeQZmtMxy53gmy6iGK3MDZgZm AWYFZgNmB+Yg5nQb03BpwI5puDRgxzRcGrBjGi6Ne+dqePDYHB4wPjABMCEwETAx MAkwKTAZMDkwBTAlMBUwNTANMC0wHTC9ZSLvU/MEzGCZP5yfmmfL3NsZgZksoxqu zA2YGZgFmBWYDZgdmIOY021Mw6UBO6bh0oAd03BpwI5puDTunavh4WNzeMD4wATA hMBEwMTAJMCkwGTA5MAUwJTAVMDUwDTAtMB0wPSWUQ1XZrCMarjaGYGZLKMarswN mBmYBZgVmA2YHZiDmNNtTMOlATum4dKAHdNwacCOabg07p2r4dFjc3jA+MAEwITA RMDEwCTApMBkwOTAFMCUwFTA1MA0wLTAdMD0lrGa+YsPl6vhD8yrhhujGq52Rm0+ Hs9kGdVwZW7AzMAswKzAbMDswBzEnG5jGi4N2DENlwbsmIZLA3ZMw6Vx71wNjx+b wwPGByYAJgQmAiYGJgEmBSYDJgemAKYEpgKmBqYBpgWmA6a3jDoPV2awjGq42hmB mSyjGq7MDZgZmAWYFZgNmB2Yg5jTbUzDpQE7puHSgB3TcGnAjmm4NO6dq+GJ2PGA 8YEJgAmBiYCJgUmASYHJgMmBKYApgamAqYFpgGmB6YDpLaMarsxgGdVwtTMCM1lG NVyZGzAzMAswKzAbMDswBzGn25iGSwN2TMOlATum4dKAHdNwadw7V8PTx+bwgPGB CYAJgYmAiYFJgEmByYDJgSmAKYGpgKmBaYBpgemA6S2jGq7MYBnVcLUzAjNZRjVc mRswMzALMCswGzA7MAcxp9uYhksDdkzDpQE7puHSgB3TcGncO1fDs8fm8IDxgQmA CYGJgImBSYBJgcmAyYEpgCmBqYCpgWmAaYHpgOktoxquzGAZ1XC1MwIzWUY1XJkb MDMwCzArMBswOzAHMafbmIZLA3ZMw6UBO6bh0oAd03Bp3DtXw/PH5vCA8YEJgAmB iYCJgUmASYHJgMmBKYApgamAqYFpgGmB6YDpLaMarsxgGdVwtTMCM1lGNVyZGzAz MAswKzAbMDswBzGn25iGSwN2TMOlATum4dKAHdNwadw7V8OLx+bwgPGBCYAJgYmA iYFJgEmByYDJgSmAKYGpgKmBaYBpgemA6S2jGq7MYBnVcLUzAjNZRjVcmRswMzAL MCswGzA7MAcxp9uYhksDdkzDpQE7puHSgB3TcGncO1fDy8fm8IDxgQmACYGJgImB SYBJgcmAyYEpgCmBqYCpgWmAaYHpgOktoxquzGAZ1XC1MwIzWUY1XJkbMDMwCzAr MBswOzAHMafbmIZLA3ZMw6UBO6bh0oAd03Bp3DtXw6vH5vCA8YEJgAmBiYCJgUmA SYHJgMmBKYApgamAqYFpgGmB6YDpLaMarsxgGdVwtTMCM1lGNVyZGzAzMAswKzAb MDswBzGn25iGSwN2TMOlATum4dKAHdNwadw7V8Prx+bwgPGBCYAJgYmAiYFJgEmB yYDJgSmAKYGpgKmBaYBpgemA6S2jGq7MYBnVcLUzAjNZRjVcmRswMzALMCswGzA7 MAcxp9uYhksDdkzDpQE7puHSgB3TcGncO1fDm8fm8IDxgQmACYGJgImBSYBJgcmA yYEpgCmBqYCpgWmAaYHpgOktk3ifmifLqIYboxqudkZgJsuohitzA2YGZgFmBWYD ZgfmIOZ0G9NwacCOabg0YMc0XBqwYxoujXvnanj72BweMD4wATAhMBEwMTAJMCkw GTA5MAUwJTAVMDUwDTCtZWLvU9NZ5l4Pe8vc23myjGq4Ms/AjJa5dzyTZe7tvFjm 3s7NMqrhyizArMBswOzAHMScbmMaLg3YMQ2XBuyYhksDdkzDpXHvXA3vHpvDA8YH JgAmBCYCJgYmASYFJgMmB6YApgSmAqYGpgGmtcy9jnWWSe+YHpgnYAZgnoEZgZmA ebHMvdvnZhnVcGUWYFZgNmB2YA5iTrcxDZcG7JiGSwN2TMOlATum4dK4d66G94/N 4Wnz8fl/fMvce77lwDL3/j+HwETAxMAkwKTAZMDkwBTAlMBUwNTANMC0llHn4dZj MV+ZHpgnYAZgnoEZgZmAebGMOg+3nm/glZktc+97sQCzArMBswNzEHO6jWm4NGDH NFwasGMaLo2188Xxynxspmm4au/b02muhj89NuZfl8YHJrCMargyETAxMAkwKTAZ MDkwBTAlMBUwNTANMC0wnWVUw5V5AmYA5hmYEZgJmBfLqPNwZWZgFmBWYDZgdmAO Yk63MQ2XBuyYhksDdkzDpbF21Hm4NO6dq+HDY3N4wPjABJa59/OmEJgImBiYBJgU mAyYHJgCmBKYCpgamAaY1jKq4dZzmbwyPTBPwAzAPAMzAjMB82IZ1XB1O8/ALMCs wGzA7MAcxJxuYxouDdgxDZcG7JiGS2PtqIZL4965Gv782BweMD4wgWXUebgyETAx MAkwKTAZMDkwBTAlMBUwNTANMC0wnWVUw5V5AmYA5hmYEZgJmBfLqIYrMwOzALMC swGzA3MQc7qNabg0YMc0XBqwYxoujbWjGi6Ne+dq+PjYHJ42r+4PN+aLOzuBZVTD lYmAiYFJgEmByYDJgSmAKYGpgKmBaSyT3DGtZdT94dZzAb4yPTBPwAzAPAMzAjMB 82IZdX+4+l7MwCzArMBswOzAHMScbmMaLg3YMQ2XBuyYhktj7Vg/H3x1f7hq79vT aa6GT4/N4QHjAxMAEwITARMDkwCTApMBkwNTAFMCUwFTA9MA01pGnYcboxquzBMw AzDPwIzATMC8WEadh6vbeQZmAWYFZgNmB+Yg5nQb03BpwI5puDRgxzRcGrBjGi6N e+dq+Mtjc3jA+MAEwITARMDEwCTApMBkwOTAFMCUwFTA1MA0wLSWUefh1t8le2V6 y6jfD1c7AzDPwIyWUb8frnZeLKPOw9XtPAOzALMCswGzA3MQc7qNabg0YMc0XBqw YxouDdgxDZfGvXM1/PbYHB4wPjABMCEwETAxMAkwKTAZMDkwBTAlMBUwNTANMC0w HTC9Ze718AmYwTLqcZpqZ7RMcsdMlrn3db0AcwNmBmYBZgVmA2YH5iDmdBvTcGnA jmm4NGDHNFwasGMaLo1752r4/NgcHjA+MAEwITARMDEwCTApMBkwOTAFMCUwFTA1 MA0wLTAdML1lVMOVGSyjGq52RmAmy6iGK3MDZgZmAWYFZgNmB+Yg5nQb03BpwI5p uDRgxzRcGrBjGi6Ne+dq+PLYHB4wPjABMCEwETAxMAkwKTAZMDkwBTAlMBUwNTAN MC0wHTDWY8Nkw5UZLKMarnZGYCbLqIYrcwNmBmYBZgVmA2YH5iDmdBvTcGnAjmm4 NGDHNFwasGMaLo1752r4+tgcHjA+MAEwITARMDEwCTApMBkwOTAFMCUwFTA1MA0w LTAdML1lVMOVGSyjGq52RmAmy6iGK3MDZgZmAWYFZgNmB+Yg5nQb03BpwI5puDRg xzRcGrBjGi6Ne+dq+PbYHB4wPjABMCEwETAxMAkwKTAZMDkwBTAlMBUwNTANMC0w HTC9ZVTDlRksoxqudkZgJsuohitzA2YGZgFmBWYDZgfmIOZ0G9NwacCOabg0YMc0 XBqwYxoujXvnavj+2BweMD4wATAhMBEwMTAJMCkwGTA5MAUwJTAVMDUwDTAtMB0w vWVUw5UZLKMarnZGYCbLqIYrcwNmBmYBZgVmA2YH5iDmdBvTcGnAjmm4NGDHNFwa sGMaLo1752r4IXY8YHxgAmBCYCJgYmASYFJgMmByYApgSmAqYGpgGmBaYDpgesuo hiszWEY1XO2MwEyWUQ1X5gbMDMwCzArMBswOzEHM6Tam4dKAHdNwacCOabg0YMc0 XBr3zk8NPx/veMD4wATAhMBEwMTAJMCkwGTA5MAUwJTAVMDUwDTAtMB0wPSWkQ0X ZrCMbLjYGYGZLCMbLswNmBmYBZgVmA2YHZiDmNNtroYrA3auhisDdq6GKwN2roYr 4965Gm5uJ9VwZXxgAmBCYCJgYmASYFJgMmByYApgSmAqYGpgGmBaYDpgesuohisz WEY1XO2MwEyWUQ1X5gbMDMwCzArMBswOzEHM6TbmOmnAjmm4NGDHNFwasGMaLo17 56eGn493PGB8YAJgQmAiYGJgEmBSYDJgcmAKYEpgKmBqYBpgWmA6YHrLyIYLM1hG NlzsjMBMlpENF+YGzAzMAswKzAbMDsxBzOk2V8OVATtXw5UBO1fDlQE7V8OVce9c DTdfn2q4Mj4wATAhMBEwMTAJMCkwGTA5MAUwJTAVMDUwDTAtMB0wvWVUw5UZLKMa rnZGYCbLqIYrcwNmBmYBZgVmA2YH5iDmdBvTcGnAjrlOGrBjGi4N2DENl8a981PD z8c7HjA+MAEwITARMDEwCTApMBkwOTAFMCUwFTA1MA0wLTAdML1lZMOFGSwjGy52 RmAmy8iGC3MDZgZmAWYFZgNmB+Yg5nSbq+HKgJ2r4cqAnavhyoCdq+HKuHeuhpvj Ug1XxgcmACYEJgImBiYBJgUmAyYHpgCmBKYCpgamAaYFpgOmt4xquDKDZVTD1c4I zGQZ1XBlbsDMwCzArMBswOzAHMScbmMaLg3YMQ2XBuyY66QBO6bh0rh3fmr4+XjH A8YHJgAmBCYCJgYmASYFJgMmB6YApgSmAqYGpgGmBaYDprfMvb/H+mSZezsDMM/A jJb54vzUTJaRDRfmBswMzALMCswGzA7MQczpNlfDlQE7V8OVATtXw5UBO1fDlXHv /B8GfWqjb+EAAAAA4W8= `turtle world` H4sIAAAAAAAAAD2PPU/DMBCGD5rETRsxMTIwMDEgaAuUjR/QoQMSa01jxZaMbdlX hf4afiqcP1pLkZ5Hurv3DVzt8OBRi9uAHMXuHc7vFxotzICSeAP1lxeiJ7yDmdMW R9UPAslXwKI7YUgeoN5bbT3hDVTHfaIO5un4+doapjTe29E4sgXUQXInCO+h+sk7 FUxGaVOPJsgyuQQmBe+VGUiu6auh/eTHrVUGQ5rtNirg1gaFysY+F9BStMcP9R3v XwKj3CITaNEi10Wr1LQZvD24p7SaeZH2Mi/TWuZV2sn8nLpkfomVC78Ss8Jr4mnh N+IWWM56JJmdJCbPTxKjuz968df+ARwibrqqAQAAAAABqg==