Java StarLogo 1.1 `turtle` breeds [towns travelers] turtles-own [tdata] ;; catchall list for all data ;; ===================================================================== ;; Rather than cluttering the namespace with lots of turtles-own ;; variables and associated implicit routines, we use a trick here; each ;; turtle, no matter what the breed, owns just one data item, a list in ;; which all other data items are embedded. To get them back out, we ;; use the breed-appropriate set of indices, which are turtle procedures ;; acting as named constants, keeping their names out of the observer ;; procedure namespace nicely as well. ;; ===================================================================== to index-genome ;; travelers tdata element index output 1 end to index-fitness ;; travelers tdata element index output 2 end to index-annealing-limit ;; travelers tdata element index output 3 end to index-xcoord ;; towns tdata element index output 1 end to index-ycoord ;; towns tdata element index output 2 end to worst-possible ;; Return the longest "possible" circuit in the unit square for this ;; number of towns. The real circuit is usually much shorter. output number-of-towns * sqrt 2 end to clone-list :somelist ;; MAINTAINER NOTE: ;; This simple one level list cloning procedure was added to work around ;; a bug in the 1.2 beta test version of StarLogo, where a "let" copied ;; the one list to another by name, not by value, leaving one list name ;; as an alias of another. To be a real list clone routine, this one ;; would need to clone lists within lists recursively, but that wasn't ;; needed for this simple demo. let [:mylist :somelist] let [:newlist empty-list] repeat length :mylist [ let [:xfer first :mylist] let [:mylist lput :xfer butfirst :mylist] let [:newlist lput :xfer :newlist] ] output :newlist end to decrement-annealing-limit :somelimit ;; Another trick; rather than stranding the constant magic number 0.99 ;; in the code where it is directly needed without explanation as to ;; what it means, we hide it in a well named routine whose only purpose ;; is to encapsulate and identify the use of that one constant in the ;; one multiplication where it is needed. let [:mylimit :somelimit] output 0.99 * :mylimit end to town-center-xcoord ;; By naming another run time constant, the name of the x-coordinate of ;; the center of the home of the turtles of breed towns, and hiding it ;; in a routine, we can do a parameterization that lets the patch area ;; be of aspect either 1::2 or 2::1 without lots of code changes ;; anywhere. Notice a useful programming style here, too. Because the ;; next, parallel routine needs to use "0 -" to do a computation, we ;; make the parallelism here more obvious by including an entirely ;; gratuitious "0 +". This style turns out to repay the effort it ;; requires handsomely when code maintenance time on someone else's code ;; comes around. ifelse screen-height >= screen-width [ output ( 0 ) ] [ output ( 0 + ( screen-half-width / 2 ) ) ] end to town-center-ycoord ;; Same trick as above, but for the y-coordinate. ifelse screen-height >= screen-width [ output ( 0 - ( screen-half-height / 2 ) ) ] [ output ( 0 ) ] end to town-xscale ;; Here again the value returned is a run time constant, but using a ;; procedure to encapsulate it gives it a name and improves ;; maintainability also by hiding a choice that is always constant for a ;; particular run but might not be if the user chooses to change the ;; patch area aspect ratio. ifelse screen-height >= screen-width [ output screen-width ] [ output screen-half-width ] end to town-yscale ;; Same as above. ifelse screen-height >= screen-width [ output screen-half-height ] [ output screen-height ] end to travel-center-xcoord ;; Same tricks again, but for the other half of the patch area, what was ;; once a traveler area but is now a histogram area, the traveler and ;; town areas having been consolidated. ifelse screen-height >= screen-width [ output ( 0 ) ] [ output ( 0 - ( screen-half-width / 2 ) ) ] end to travel-center-ycoord ifelse screen-height >= screen-width [ output ( 0 + ( screen-half-height / 2 ) ) ] [ output ( 0 ) ] end to travel-xscale ifelse screen-height >= screen-width [ output screen-width ] [ output screen-half-width ] end to travel-yscale ifelse screen-height >= screen-width [ output screen-half-height ] [ output screen-height ] end to empty-list ;; For some reason StarLogo doesn't have an empty list notation like ;; other Logos, so we need a routine that produces an empty list, a ;; uniquely useful entity in list oriented programming languages. ;; Make a list, then gut it and output the wrapper with no contents. let [:mylist list 0 1] let [:mylist butfirst :mylist] let [:mylist butfirst :mylist] output :mylist end to append-zeros :somelist :somecount ;; To make the item and setitem commands work on the tdata lists, those ;; lists must have the correct number of elements _before_ real data is ;; inserted. We accomplish that with this routine by appending zeros to ;; the initial tdata empty list, a frequently used capability during the ;; setup stages of this demo. let [:mylist :somelist] let [:mycount :somecount] repeat :mycount [ let [ :mylist lput 0 :mylist ] ] output :mylist end to randomize-genome :someid ;; Use one of the known-to-be-fair ways to create a random permutation; ;; walk the list, swapping each element one by one with some other ;; randomly chosen element, possibly itself. Ideally, and probably ;; eventually, the randomize-list part of this functionality should be ;; separated from the part that extracts the genome and then reinserts ;; it, but the StarLogo 1.2beta release I am in the process of testing ;; by developing this demo has an artificially low limit on the number ;; of "lines" (procedures, interface widgets, and perhaps some other ;; stuff too) that can exist in a single procedure, so we leave ;; refactoring for a more programmer-friendly release of the underlying ;; StarLogo tool. ;; Extract the genome into a separate local list. let [:myid :someid] let [:mytdata tdata-of :myid] let [:mygenome item index-genome :mytdata] ;; Randomize that list. let [:from-genome-index 1] repeat number-of-towns [ let [:towntemp item :from-genome-index :mygenome] let [:to-genome-index (1 + random number-of-towns) ] setitem :from-genome-index :mygenome item :to-genome-index :mygenome setitem :to-genome-index :mygenome :towntemp let [ :from-genome-index ( :from-genome-index + 1) ] ] ;; Put the genome list back, being careful not to invoke compiler ;; weaknesses in the process. setitem index-genome :mytdata :mygenome settdata-of :myid :mytdata end to genome-fitness :somegenome ;; The "fitness" of a genome in this demo is the town to town distance ;; associated with following that list. The list is treated as a ring ;; so that the circuit followed is a closed one. ;; This is superstitious bug avoidance; other Logo implementations make ;; the input parameter name a normal local variable without trouble, but ;; StarLogo has some historical problems in that area, so we don't poke ;; sticks into the beast's cage quite yet, we make our own local copy, ;; instead. let [:mygenome :somegenome] ;; We _first_ compute the ring-closing distance from the last town ;; element of the list to the first, since it takes special processing ;; and we have to initialize :myfitness with some value in any case. let [:from-town last :mygenome] let [:to-town first :mygenome] let [:myfitness town-distance :from-town :to-town] ;; Now we add the remaining distances in a less obscure manner. let [:which-item 1] repeat (number-of-towns - 1) [ let [:from-town item :which-item :mygenome] let [:which-item ( :which-item + 1 ) ] let [:to-town item :which-item :mygenome] let [:myfitness ( :myfitness + town-distance :from-town :to-town ) ] ] output :myfitness end to fitness :someid ;; If all we know is the traveler's turtle id, we use it here to extract ;; the genome from that traveler's tdata before calling the ;; genome-fitness routine that does the bulk of the computation work. ;; This refactoring split allows the genome-fitness routine to be used ;; independently many other places in the code where a raw genome list ;; without an associated traveler who owns it is the item being ;; processed. let [:myid :someid] let [:mytdata tdata-of :myid] let [:mygenome item index-genome :mytdata ] output genome-fitness :mygenome end to town-distance :from-town :to-town ;; The inputs are numbers corresponding to turtle ids. Suck out the ;; coordinates from the turtles of breed towns who own them, then use ;; them to compute and return a usual Cartesian distance. While this is ;; more work than keeping the coordinates directly in the genome would ;; have been, it pays for itself by meeting other guidance from ;; programming wisdom: a) don't store data redundantly, you are just ;; inviting the multiple copies to go out of synch, and b) data can get ;; huge, use code to pull it out, space usually costs more than time. let [ :from-xcoord item index-xcoord tdata-of :from-town ] let [ :from-ycoord item index-ycoord tdata-of :from-town ] let [ :to-xcoord item index-xcoord tdata-of :to-town ] let [ :to-ycoord item index-ycoord tdata-of :to-town ] let [ :xdist ( :to-xcoord - :from-xcoord ) ] let [ :ydist ( :to-ycoord - :from-ycoord ) ] output sqrt ( ( :xdist * :xdist ) + ( :ydist * :ydist ) ) end to reposition-self ;; This routine puts the breed-travelers turtles in a rough circle ;; around a center point in one half of the patch area, with angular ;; location representing the turtle's turtle id number, radial distance ;; representing the turtle's current fitness. This "circular histogram" ;; is a wonderful invention, I wish I could credit the original ;; conceiver. It represents the histogram data very compactly, since ;; turtles with similar angles from the origin but different radii are ;; visually distinct, and it gives the user a warm fuzzy feeling about ;; the progress of a run in two ways: a) the circle radius shrinks as ;; the overall fitness improves, and b) the circle squeezes down from an ;; annulus to a real circle as the agreement among the turtles as to ;; their fitness improves. It is worth noting that turtles whose ;; genomes have roughly the same fitness may draw wildly different ;; circuits, as will be evident after running the demo lots of times. let [:myid who] ;; Cut down visual artifacts by working mostly in the dark. setc black ;; Move self to the center of the histogram. setxy travel-center-xcoord travel-center-ycoord ;; Mark the patch at the center of the histogram circle for a visual ;; reference point for the user. stamp turquoise ;; Point self in a direction unique to each turtle; this demonstrates ;; the trick of using "mod" to bring turtle numbers back to the range 0 ;; to n-1, useful lots of places. seth (360 / number-of-travelers) * ( :myid mod number-of-travelers ) ;; Move self forward a scaled amount proportional to current fitness and ;; the plotting scale of the patch area compared to a unit square, and ;; inversely proportional to the worst possible fitness, where each edge ;; in the circuit is as long as the diagonal of the containing unit ;; square. There is an implicit assumption here that the two display ;; areas are each square; no attempt is made to correct for other aspect ;; ratios. fd ( ( travel-xscale * (item index-fitness tdata ) ) / worst-possible ) ;; Make self visible now that the assigned position in the histogram ;; circle has been attained. setc red end to draw-self ;; And you thought those circular histogram turtles were just sitting ;; there barely moving? Anything but; they have a life of dashing and ;; daring as well, since each who discovers a new circuit with best ever ;; fitness is responsible for drawing it in in the circuit display half ;; of the patch area as well. It just normally happens and the turtle ;; flashes back to its spot quicker than the eye can follow. ;; Turn the current turtle's "who" value, a special kind of entity, into ;; a more useful plain number. let [:myid who] ;; Probably just more superstition, but extract the genome from our own ;; tdata by talking to ourself in the third person as it were. let [:mygenome item index-genome tdata-of :myid] ;; We are sitting at our assigned spot in the histogram circle when this ;; routine gets called from an ask-turtle on the observer side, so do ;; what is needed to change our personality for the new task: pick up ;; the pen, change color, dart over to the set of turtles holding still ;; in their places to represent the sites of the towns, put down the ;; pen, draw our circuit threading though their locations, pick up the ;; pen, and return to our histogram duties. pu setc green ;; Notice how much this looks like the genome-fitness routine; we are ;; doing the same thing, walking the list of towns in our genome, just ;; visually instead of numerically. let [:from-town last :mygenome] let [:from-rawx item index-xcoord tdata-of :from-town] let [:from-rawy item index-ycoord tdata-of :from-town] let [:from-xcoord ( town-center-xcoord + ( town-xscale * :from-rawx) ) ] let [:from-ycoord ( town-center-ycoord + ( town-yscale * :from-rawy) ) ] ;; As when doing the fitness computation, we start at the town at the ;; end of the genome list, and draw our first edge to the first town on ;; the list, so that when we draw from the next to last to the last town ;; on the list, we will be closing the circuit. setxy :from-xcoord :from-ycoord ;; Let's draw! pd ;; Set this one too low, then bump _before_ using, inside the repeat ;; loop. let [:town-index 0] repeat number-of-towns [ ;; Bump the index. let [:town-index :town-index + 1] ;; Extract and offset and scale the corresponding towns x and y ;; coordinates. let [:to-town item :town-index :mygenome] let [:to-rawx item index-xcoord tdata-of :to-town] let [:to-rawy item index-ycoord tdata-of :to-town] let [:to-xcoord ( town-center-xcoord + ( town-xscale * :to-rawx) ) ] let [:to-ycoord ( town-center-ycoord + ( town-yscale * :to-rawy) ) ] ;; Draw the line to that location; another weakness of StarLogo compared ;; to other Logo implementations is that setxy doesn't draw even with ;; the pen down, so we use clunkier tools instead. seth towards-nowrap :to-xcoord :to-ycoord fd distance-nowrap :to-xcoord :to-ycoord ] pu end ;; ===================================================================== ;; Funny to get this far into the code before seeing where things start ;; for the turtles, but the code is tree shaped, and there just isn't ;; any nice and also intuitive linear way to lay it out that I have ever ;; found. ;; ===================================================================== to init-self ;; All turtle's tdata list start out empty, here is where that happens. settdata empty-list ;; Handle each breed as a special case. if breed = towns [ init-town ] if breed = travelers [ init-traveler ] end to run-self ;; This tiny routine is the primary target of the observer side "go" ;; loop that runs forever. Because StarLogo synchronizes events at the ;; end of each ask-turtles or similar command, that "go" loop calls more ;; than one turtle procedure to achieve such synchronization. if breed = towns [ run-town ] if breed = travelers [ run-traveler ] end to init-town ;; Add the long above mentioned place-holder zero so that we can access ;; tdata with item and setitem commands. settdata append-zeros tdata 2 ;; Assign each town a position in a centered unit square, with x and y ;; coordinates between -0.45 and +0.45, to allow for a neat empty border ;; around the towns in the target display area, and thus to avoid ;; display artifacts. setitem index-xcoord tdata (( 0 - 450000 + random 900000) / 1000000) setitem index-ycoord tdata (( 0 - 450000 + random 900000) / 1000000) ;; Towns display themselves in white, and sit at their assigned location ;; in the town and circuit display area for the rest of the demo, but ;; they aren't at all idle intellectually, they are storing and ;; returning their coordinates in response to incessant queries. setc white setx town-center-xcoord + ( town-xscale * item index-xcoord tdata ) sety town-center-ycoord + ( town-yscale * item index-ycoord tdata ) end to init-traveler let [:myid who] ;; Put in the needed place-holder zeros for item and setitem command ;; use. settdata append-zeros tdata 3 ;; Put an ordered list of towns into the genome element. setitem index-genome tdata list-of-towns ;; Disorder it. randomize-genome who ;; Measure and store the fitness of the initial towns permutation. setitem index-fitness tdata fitness who ;; Store an initial limit for the simulated annealing routine; at worst, ;; an annealing step can worsten the fitness by adding two unit square ;; diagonals to the length of the circuit, and the reality is always ;; less than that, but any slop beyond that amount is a waste of time. setitem index-annealing-limit tdata (2 * sqrt 2) ;; Put ourselves in the histogram circle picture for the first time. reposition-self end to run-town ;; Towns are the more boring breed of turtle, very good at sitting, not ;; so good at moving. end to run-traveler ;; Our game plan here is to extract our own tdata genome element into a ;; work copy, pass that work copy through a variety of optional routines ;; controlled by interface push-buttons either before entering or while ;; in the execute loop, and then replace our tdata genome element by the ;; resulting work genome if there was either an improvement or if ;; annealing was enabled and there was a worstening that passed the ;; annealing-limits filter and the annealing worstening random chance ;; filter. let [:oldgenome item index-genome tdata] let [:oldfitness genome-fitness :oldgenome] let [:newgenome empty-list] ;; let [:newgenome :oldgenome] ;; broken compiler doesn't do this correctly let [:newgenome clone-list :oldgenome] if swap_p [ let [:newgenome swap :newgenome ] ] ;; FIXME. Well, this part sure isn't correct yet, the annealer toggle is going ;; to be a metaheuristic, allowing each heuristic to employ simulated annealing ;; strategies, and the invert and tabu toggles aren't supported at all. if anneal_p [ let [:newgenome anneal :newgenome ] setitem index-annealing-limit tdata decrement-annealing-limit item index-annealing-limit tdata ] if crossover_ordered_p [ let [:newgenome crossover_ordered :newgenome ] ] if crossover_partial_match_p [ let [:newgenome crossover_partial_match :newgenome ] ] if crossover_cyclic_p [ let [:newgenome crossover_cyclic :newgenome ] ] let [:newfitness genome-fitness :newgenome] if (:newfitness < :oldfitness) [ setitem index-genome tdata :newgenome setitem index-fitness tdata :newfitness ] reposition-self end ;; FIXME. Docs missing from here down. to swap :somegenome ;; Implement the "swap?" toggle and associated heuristic. let [:in-genome :somegenome] ;; attempt improvement by swapping two towns in genome let [:in-fitness genome-fitness :in-genome] let [:from-index 1 + random number-of-towns] let [:to-index 1 + random number-of-towns] ;; let [:out-genome :in-genome] ;; aliases, should be copy instead let [:out-genome clone-list :in-genome] let [:temptown item :from-index :out-genome] setitem :from-index :out-genome item :to-index :out-genome setitem :to-index :out-genome :temptown let [:out-fitness genome-fitness :out-genome] ifelse ( :out-fitness < :in-fitness ) [ output :out-genome ] [ output :in-genome ] end ;; FIXME to anneal :somegenome let [:in-genome :somegenome] let [:out-genome :in-genome] output :out-genome end to invert :somegenome let [:in-genome :somegenome] let [:out-genome :in-genome] output :out-genome end ;; FIXME to tabu :somegenome let [:in-genome :somegenome] let [:out-genome :in-genome] output :out-genome end to crossover_ordered :somegenome let [:in-genome :somegenome] let [:out-genome :in-genome] output :out-genome end to crossover_partial_match :somegenome let [:in-genome :somegenome] let [:out-genome :in-genome] output :out-genome end to crossover_cyclic :somegenome let [:in-genome :somegenome] let [:out-genome :in-genome] output :out-genome end `observer` globals [ best-ever swap_p invert_p crossover_ordered_p crossover_partial_match_p crossover_cyclic_p anneal_p tabu_p ] to setup ca ct setup-toggles create-towns number-of-towns create-travelers number-of-travelers ask-turtles [ init-self ] setup-plot setbest-ever assay-plot end to setup-toggles ;; enable heuristics setswap_p true setinvert_p true setcrossover_ordered_p true setcrossover_partial_match_p true setcrossover_cyclic_p true ;; enable metaheuristics setanneal_p true settabu_p true end to setup-plot clearplot viewplot setplot-yrange 0 2 setplot-xrange 0 8 setplot-title "worst, mean, best; small is good" setplot-ylabel "fitness" setplot-xlabel "execution loops" pp 1 setppc magenta pp 2 setppc turquoise pp 3 setppc blue pp 4 setppc brown pp 5 setppc green pp 6 setppc red pp 7 setppc orange pp 8 setppc lime pp 9 setppc cyan pp 10 setppc black end to assay-plot let [ :best-now min-of-turtles-with [breed = travelers] [item index-fitness tdata] ] let [ :worst-now max-of-turtles-with [breed = travelers] [item index-fitness tdata] ] let [ :average-now ( ( sum-of-travelers [item index-fitness tdata] ) / number-of-travelers ) ] pp 1 setppc magenta plot ( :best-now ) pp 3 setppc blue plot ( :average-now ) pp 4 setppc brown plot ( :worst-now ) output :best-now end to go ask-turtles [ run-self ] let [ :best-now assay-plot ] if ( :best-now < best-ever ) [ setbest-ever :best-now cg ask-travelers [ if ( best-ever = ( item index-fitness tdata ) ) [ draw-self reposition-self print se "New best:" best-ever ] ] ] end to print-toggles print " " print se "swap-------------------:" swap_p print se "invert-----------------:" invert_p print se "ordered crossover------:" crossover_ordered_p print se "partial match crossover:" crossover_partial_match_p print se "cyclic crossover-------:" crossover_cyclic_p print se "anneal-----------------:" anneal_p print se "tabu-------------------:" tabu_p print " " end `information` BTSP2_00.slogo, 2001/02/19 release ---------------------------------------- What is this? ---------------------------------------- It is yet another blind traveling salesman problem demo from the man from xanth, written from scratch as a good technique for blundering across StarLogo compiler bugs while helping debug the StarLogo 1.2 beta release compiler. It is not yet anywhere close to "done", my record on finishing toy programming tasks is spotty, but the interface is about where it belongs, and the simplest solution heuristic, swapping two of the cities' positions in the visually challenged salesperson's route, is in place and good enough to solve small problems, (17 towns and 12 travelers, for example) very quickly, keeping the watcher's interest. ---------------------------------------- What do you see in the StarLogo window? ---------------------------------------- ---------------------------------------- Some instructions on the StarLogo window, enough to get you going. ---------------------------------------- ---------------------------------------- Some sliders: ---------------------------------------- number-of-towns -- set the number of cites on the route. number-of-travelers -- how many salespersons will be competing to be the first to find that "perfect" sales route. ---------------------------------------- Some essential use buttons: ---------------------------------------- prepare -- do the demo setup after the sliders are set to the user's choice of values. execute -- run the demo in a non-terminating loop. ---------------------------------------- Some optional use "heuristics" (approximate solutions) buttons: ---------------------------------------- swap? -- use the simple, "swap two cites in the genome list and keep the change if it shortens the circuit" heuristic. invert? -- use the simple, "reverse a contiguous sublist of the genome list, keep the change if it shortens the circuit" heuristic. ordered crossover? -- use the fairly complex "ordered crossover" genetic algorithm heuristic, keep the best of the original or the two child genomes. partial match crossover? -- use the fairly complex "partial match crossover" genetic algorithm heuristic, keep the best of the original or the two child genomes. cyclic crossover? -- use the fairly complex "cyclic crossover" genetic algorithm heuristic, keep the best of the original or the two child genomes. ---------------------------------------- Some optional use "metaheuristics" (meta controllers for approximate solutions) buttons: ---------------------------------------- anneal? -- permit backsliding at a decreasing amount and randomly controlled rate, to help keep the computations from getting stuck in a "local optimum". tabu? -- forbid immediate return to a just abandoned solution, again to help a computation get unstuck from oscillating between a local optimum and a nearby set of slightly worser choices. ---------------------------------------- A patch display area with a top and a bottom section: ---------------------------------------- ---------------------------------------- Patch area top half: ---------------------------------------- This part contains a circular histogram, whose elements are StarLogo turtles each carrying a genome representing a possible solution to the problem, plus a patch marked to show the center of the histogram, and whose turtle elements are sorted by turtle id number to have angles smoothly spread around the compass, and whose radial distance from the center point represents the fitness of that particular turtle's genome (smaller fitness values are better in this demo, since fitness is directly the length of the salesperson-turtle's circuit, considered to be scaled to the interior of a unit square). If there are lots of travelers working the problem, two things become evident with reflection: a thinner circle "annulus" represents more agreement about the value of the solution's fitness, and a shrinking circle radius represents an improving common set of solutions. ---------------------------------------- Patch area bottom half: ---------------------------------------- This area contains some turtles standing in place to be the cities through which the salespersons' circuits must thread, and after a short delay, the most fit current solution drawn as a circuit through those cities. Watching this area for a while when there are both a fairly large number of cities and also a fairly large population of sales staff shows that the staff's agreement about how long the path should be implies nothing in the way of agreement about what shape the path should be. It is mathematically easy to prove that a circuit that intersects itself is not optimal, so even a suboptimal circuit that is not self intersecting is a good indication of progress, though you may later see even shorter circuits which _are_ self-intersecting proposed as solutions. ---------------------------------------- What do you see in the Plot window? ---------------------------------------- This area contains a time series of the current worst, average, and best solutions; again, lower values for these items are better. Following this plot for a while, you should see the worst and best solution squeeze the average solution between them, until, if an exact solution is found, possible for small numbers of cites, the three values coincide. ---------------------------------------- What do you see in the Output window? ---------------------------------------- A running series of announcements by each traveler-turtle who finds a new solution better than all the others. A list of the status of all the toggle buttions for heuristics and metaheuristics each time one is toggled. They are all true by default to start, after the "prepare" button has been pressed. ---------------------------------------- What do you see in the Information window? ---------------------------------------- This documentation. ---------------------------------------- What do you see in the Control Center window? ---------------------------------------- The code, divided into turtle procedures and observer procedures. There is also lots more documentation embedded in the code, visible in the turtle procedures and observer procedures frames of the Control Center window. ---------------------------------------- But what's the point? ---------------------------------------- The traveling salesman problem, and the specialized subset called the blind traveling salesman problem, are examples of "NP complete" problems, problems whose exhaustive brute force solution is so hard for even modest problem sizes that only heuristic approximate solutions have ever been found. This demo, besides being a debugging tool, is meant to help the user gain a visual and intuitive appreciation for this kind of problem, and with luck, the shape a better solution would take. ---------------------------------------- What's the demo status? ---------------------------------------- As of this release, dated 2001/02/19, only the "swap?" heuristic is implemented, but scaffolding is in place for adding the other heuristics and metaheurists as time allows. ---------------------------------------- Who inflicted this mess on us poor defenseless onlookers, anyway? ---------------------------------------- Kent Paul Dolan, xanthian@well.com `SLPlot` title "Untitled Graph" xlabel "Time" ylabel "" xmin 0 xmax 1000 ymin 0 ymax 1000 pen 1 0 15 pen 2 0 25 pen 3 0 35 pen 4 0 45 pen 5 0 55 pen 6 0 65 pen 7 0 75 pen 8 0 85 pen 9 0 95 pen 10 0 105 `interface` SLButton turtle-or-observer? observer top-left 5 90 width-height 80 30 name "execute" line-to-run "go" forever? true button-number 3 show-name? true SLButton turtle-or-observer? observer top-left 5 5 width-height 80 30 name "prepare" line-to-run "setup" forever? false button-number 2 show-name? true SLSlider top-left 40 5 width-height 165 25 name "slider0" variable "number-of-towns" min-value 4 max-value 50 current-value 17 slider-number 0 show-name? false SLSlider top-left 70 5 width-height 165 25 name "slider1" variable "number-of-travelers" min-value 1 max-value 100 current-value 12 slider-number 1 show-name? false SLButton turtle-or-observer? observer top-left 130 5 width-height 165 25 name "swap?" line-to-run "setswap_p (not swap_p) print-toggles" forever? false button-number 4 show-name? true SLButton turtle-or-observer? observer top-left 160 5 width-height 165 25 name "invert?" line-to-run "setinvert_p (not invert_p) print-toggles" forever? false button-number 5 show-name? true SLButton turtle-or-observer? observer top-left 190 5 width-height 165 25 name "ordered crossover?" line-to-run "setcrossover_ordered_p (not crossover_ordered_p) print-toggles" forever? false button-number 6 show-name? true SLButton turtle-or-observer? observer top-left 220 5 width-height 165 25 name "partial match crossover?" line-to-run "setcrossover_partial_match_p (not crossover_partial_match_p) print-toggles" forever? false button-number 7 show-name? true SLButton turtle-or-observer? observer top-left 250 5 width-height 165 25 name "cyclic crossover?" line-to-run "setcrossover_cyclic_p (not crossover_cyclic_p) print-toggles" forever? false button-number 8 show-name? true SLButton turtle-or-observer? observer top-left 310 5 width-height 165 25 name "anneal?" line-to-run "setanneal_p (not anneal_p) print-toggles" forever? false button-number 10 show-name? true SLButton turtle-or-observer? observer top-left 340 5 width-height 165 25 name "tabu?" line-to-run "settabu_p (not tabu_p) print-toggles" forever? false button-number 9 show-name? true SLTextWidget top-left 416 175 width-height 154 90 textwidth 150 linenums 4 words "Patch top: circular histogram.\nPatch bottom: best circuit so far.\nEnjoy! xanthian@well.com\n[See the information window too!]" textwidget-number 4 SLTextWidget top-left 100 5 width-height 48 30 textwidth 44 linenums 1 words "Heuristics" textwidget-number 1 SLTextWidget top-left 280 5 width-height 71 30 textwidth 67 linenums 1 words "Metaheuristics" textwidget-number 2 SLTextWidget top-left 360 5 width-height 149 150 textwidth 145 linenums 7 words "Blind Traveling Salesman Demo.\n1) Open plot and output windows.\n2) Set towns and travelers.\n3) Press prepare.\n4) Choose [Meta]Heuristics.\n5) Press execute.\n6) Modifying heuristics still OK." textwidget-number 3 SLCanvas top-left 5 175 `settings` patch-size 2 num-shapes 256 screen-half-width 50 screen-half-height 101 interface-window-xcor 0 interface-window-ycor 0 interface-window-size 384 497 output-window-xcor 395 output-window-ycor 326 output-window-width 327 output-window-height 244 info-window-xcor 152 info-window-ycor 61 info-window-width 332 info-window-height 419 control-center-xcor 514 control-center-ycor 0 control-center-width 285 control-center-height 415 turtle-command-center-height 150 observer-command-center-height 150 plot-window-xcor 394 plot-window-ycor -1 plot-window-width 328 plot-window-height 326 `string table` H4sIAAAAAAAAAGNgYGAAABzfRCEEAAAAAAAABA== `symbol table` H4sIAAAAAAAAAGNgYGAAABzfRCEEAAAAAAAABA== `double table` H4sIAAAAAAAAAGNgYGAAABzfRCEEAAAAAAAABA== `list table` H4sIAAAAAAAAAGNgYGAAABzfRCEEAAAAAAAABA== `observer world` H4sIAAAAAAAAAHWOMQ7CMAxFXShpEQuCiY2BCYk7cJPWTS1aKSRRYkDcHtdDO2HJ 0vd/35Zh34YuU3pTOmdGpvYOc13BOPIPHkRfoIoucCSvaKfhmZbSNWw7ynwjuaUZ kz8YmyiqgHr0YrNOKzjaFHIO4jQh9ZSoV7CG0wIiJh7RNU9kOygu4bBg+7VutOpv oEbvSbLTZMAwdi/V1bRV6AP/+wd/jy/MAwEAAAAAAQM= `patch world` H4sIAAAAAAAAAHzWyYqz/ZpeedkYW1AUaKCBBhoIIYQQQqjvm2f3/d759V/ObJLE Hhg7Ke+Ba6ZD0yHVIVSWXdcdL2+sZwVE+4v7f01X5//8j//yn/7+T/9l9D/+/p/+ /s//senUx287/+5//tN//7/+18//9l/+6V+/9jr//r/+83/7z3//L//687DzH/7l v/73v//LP/+3f/1l0Pl3//f//tdu5//4Xw998X+dzuZfP//5/3vm+f/876fz/YuP f5NltK5YT6wvNhAbio3ExmITsanYTGwuthBbiq3E1mIbsa3YTmwvdhA7ip3EzmIX savYTewu9hB7ijVmr3b7hdz9Qu5+KXe/lLtfyd2v5O7XcvdrufuN3P1G7n4rd7+V u9/J3e/k7vdy93u5+4Pc/UHu/ih3f5S7P8ndn+Tuz3L3Z7n7i9z9Re7+Knd/lbu/ yd3f5O4f5O4fGjF7891u38jeN7L3jex9I3vfyt63svet7H0re9/J3ney953sfSd7 38ve97L3vex9L3s/yN4PsveD7P0gez/K3o+y96Ps/Sh7P8neT7L3k+z9JHs/y97P svez7P0se/8oe//Yvpe/NZ/oo4XRumI9sb7YQGwoNhIbi03EpmIzsbnYQmwpthJb i23EtmI7sb3YQewodhI7i13ErmI3sbvYQ+wp1pi92u0XcvcLuful3P1S7n4ld7+S u1/L3a/l7jdy9xu5+63c/Vbufid3v5O738vd7+XuD3L3B7n7o9z9Ue7+JHd/krs/ y92f5e4vcvcXufur3P1V7v4md3+Tu3+Qu/+/hdnszXe7fSN738jeN7L3jex9K3vf yt63svet7H0ne9/J3ney953sfS9738ve97L3vez9IHs/yN4PsveD7P0oez/K3o+y 96Ps/SR7P8neT7L3k+z9LHs/y97Psvez7P2j7P1j+161cBfuOmJdsZ5YX2wgNhQb iY3FJmJTsZnYXGwhthRbia3FNmJbsZ3YXuwgdhQ7iZ3FLmJXsZvYXewh9hRrzF7t lhZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKXFkaTu7QwmtylhdHk Li2MJndpYTS5SwujyV1aGE3u0sJojZi9+W63tDCa7KWF0WQvLYwme2lhNNlLC6PJ XloYTfbSwmiylxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLCaLKXFkaT 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 2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amGy9r1q 4V98TV+0MFlXrCfWFxuIDcVGYmOxidhUbCY2F1uILcVWYmuxjdhWbCe2FzuIHcVO Ymexi9hV7CZ2F3uIPcUas1e7pYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKXFkaT u7QwmtylhdHkLi2MJndpYTS5SwujyV1aGE3u0sJocpcWRpO7tDBaI2ZvvtstLYwm e2lhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN 9tLCaLKXFkaTvbQwmuylhdFkLy2M1r730cKvz3cdsa5YT6wvNhAbio3ExmITsanY TGwuthBbiq3E1mIbsa3YTmwvdhA7ip3EzmIXsavYTewu9hB7ijVmr3arFiaTu2ph MrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmr FiaTu2phMrmrFiaTu2phskbM3ny3W7UwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJ XrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUw WftetfAvv6YvWpisK9YT64sNxIZiI7Gx2ERsKjYTm4stxJZiK7G12EZsK7YT24sd xI5iJ7Gz2EXsKnYTu4s9xJ5ijdmr3dLCaHKXFkaTu7QwmtylhdHkLi2MJndpYTS5 SwujyV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYwmd2lhNLlLC6PJXVoYrRGzN9/t lhZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLCaLKXFkaTvbQwmuylhdFk Ly2MJntpYTTZSwujyV5aGE320sJospcWRmvf+2jh1+e7jlhXrCfWFxuIDcVGYmOx idhUbCY2F1uILcVWYmuxjdhWbCe2FzuIHcVOYmexi9hV7CZ2F3uIPcUas1e7VQuT yV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21 MJncVQuTyV21MJncVQuTyV21MFkjZm++261amEz2qoXJZK9amEz2qoXJZK9amEz2 qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJ ZK9amKx9r1r4V1/TFy1M1hXrifXFBmJDsZHYWGwiNhWbic3FFmJLsZXYWmwjthXb ie3FDmJHsZPYWewidhW7id3FHmJPscbs1W5pYTS5SwujyV1aGE3u0sJocpcWRpO7 tDCa3KWF0eQuLYwmd2lhNLlLC6PJXVoYTe7SwmhylxZGk7u0MJrcpYXR5C4tjNaI 2ZvvdksLo8leWhhN9tLCaLKXFkaTvbQwmuylhdFkLy2MJntpYTTZSwujyV5aGE32 0sJospcWRpO9tDCa7KWF0WQvLYwme2lhNNlLC6O173208OvzXUesK9YT64sNxIZi I7Gx2ERsKjYTm4stxJZiK7G12EZsK7YT24sdxI5iJ7Gz2EXsKnYTu4s9xJ5ijdmr 3aqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqF yeSuWphM7qqFyeSuWphM7qqFyeSuWpisEbM33+1WLUwme9XCZLJXLUwme9XCZLJX LUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwm e9XCZLJXLUzWvlct/Ouv6YsWJuuK9cT6YgOxodhIbCw2EZuKzcTmYguxpdhKbC22 EduK7cT2Ygexo9hJ7Cx2EbuK3cTuYg+xp1hj9mq3tDCa3KWF0eQuLYwmd2lhNLlL C6PJXVoYTe7SwmhylxZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKX FkZrxOzNd7ulhdFkLy2MJntpYTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF0WQv LYwme2lhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXR2vc+Wvj1+a4j1hXrifXF BmJDsZHYWGwiNhWbic3FFmJLsZXYWmwjthXbie3FDmJHsZPYWewidhW7id3FHmJP scbs1W7VwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1M JnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1M1ojZm+92qxYmk71qYTLZqxYmk71q YTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZ qxYmk71qYTLZqxYma9+rFv7N1/RFC5N1xXpifbGB2FBsJDYWm4hNxWZic7GF2FJs JbYW24htxXZie7GD2FHsJHYWu4hdxW5id7GH2FOsMXu1W1oYTe7SwmhylxZGk7u0 MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKXFkaTu7QwmtylhdHkLi2MJndp YTS5SwujNWL25rvd0sJospcWRpO9tDCa7KWF0WQvLYwme2lhNNlLC6PJXloYTfbS wmiylxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLCaO17Hy38+nzXEeuK 9cT6YgOxodhIbCw2EZuKzcTmYguxpdhKbC22EduK7cT2Ygexo9hJ7Cx2EbuK3cTu Yg+xp1hj9mq3amEyuasWJpO7amEyuasWJpO7amEyuasWJpO7amEyuasWJpO7amEy uasWJpO7amEyuasWJpO7amEyuasWJpO7amEyuasWJmvE7M13u1ULk8letTCZ7FUL k8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk8le tTCZ7FULk8letTCZ7FULk7XvVQv/9mv6ooXJumI9sb7YQGwoNhIbi03EpmIzsbnY QmwpthJbi23EtmI7sb3YQewodhI7i13ErmI3sbvYQ+wp1pi92i0tjCZ3aWE0uUsL o8ldWhhN7tLCaHKXFkaTu7QwmtylhdHkLi2MJndpYTS5SwujyV1aGE3u0sJocpcW RpO7tDCa3KWF0Roxe/PdbmlhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXRZC8t jCZ7aWE02UsLo8leWhhN9tLCaLKXFkaTvbQwmuylhdFkLy2MJntpYbT2vY8Wfn2+ 64h1xXpifbGB2FBsJDYWm4hNxWZic7GF2FJsJbYW24htxXZie7GD2FHsJHYWu4hd xW5id7GH2FOsMXu1W7UwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJ XbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5M1Yvbmu92qhclkr1qY TPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaq hclkr1qYTPaqhclkr1qYTPaqhcna96qFf/c1fdHCZF2xnlhfbCA2FBuJjcUmYlOx mdhcbCG2FFuJrcU2Yluxndhe7CB2FDuJncUuYlexm9hd7CH2FGvMXu2WFkaTu7Qw mtylhdHkLi2MJndpYTS5SwujyV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYwmd2lh NLlLC6PJXVoYTe7SwmiNmL35bre0MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLC aLKXFkaTvbQwmuylhdFkLy2MJntpYTTZSwujyV5aGE320sJospcWRpO9tDBa+95H C78+33XEumI9sb7YQGwoNhIbi03EpmIzsbnYQmwpthJbi23EtmI7sb3YQewodhI7 i13ErmI3sbvYQ+wp1pi92q1amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzu qoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJGjF7891u1cJk slctTCZ71cJkslctTCZ71cJkslctTCZ71cJkslctTCZ71cJkslctTCZ71cJkslct TCZ71cJkslctTCZ71cJkslctTCZ71cJk7XvVwr//mr5oYbKuWE+sLzYQG4qNxMZi E7Gp2ExsLrYQW4qtxNZiG7Gt2E5sL3YQO4qdxM5iF7Gr2E3sLvYQe4o1Zq92Swuj yV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYwmd2lhNLlLC6PJXVoYTe7SwmhylxZG k7u0MJrcpYXR5C4tjCZ3aWG0RszefLdbWhhN9tLCaLKXFkaTvbQwmuylhdFkLy2M JntpYTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF0WQvLYwme2lhNNlLC6PJXloY rX3vo4Vfn+86Yl2xnlhfbCA2FBuJjcUmYlOxmdhcbCG2FFuJrcU2Yluxndhe7CB2 FDuJncUuYlexm9hd7CH2FGvMXu1WLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJX LUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZI2Yvflu t2phMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWph MtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWphsva9auE/fE1ftDBZV6wn1hcbiA3F RmJjsYnYVGwmNhdbiC3FVmJrsY3YVmwnthc7iB3FTmJnsYvYVewmdhd7iD3FGrNX u6WF0eQuLYwmd2lhNLlLC6PJXVoYTe7SwmhylxZGk7u0MJrcpYXR5C4tjCZ3aWE0 uUsLo8ldWhhN7tLCaHKXFkaTu7QwWiNmb77bLS2MJntpYTTZSwujyV5aGE320sJo spcWRpO9tDCa7KWF0WQvLYwme2lhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXR ZC8tjNa+99HCr893HbGuWE+sLzYQG4qNxMZiE7Gp2ExsLrYQW4qtxNZiG7Gt2E5s L3YQO4qdxM5iF7Gr2E3sLvYQe4o1Zq92qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tq YTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYbJG zN58t1u1MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuT yV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MFn7XrXwH7+mL1qYrCvWE+uL DcSGYiOxsdhEbCo2E5uLLcSWYiuxtdhGbCu2E9uLHcSOYiexs9hF7Cp2E7uLPcSe Yo3Zq93SwmhylxZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKXFkaT u7QwmtylhdHkLi2MJndpYTS5SwujyV1aGK0Rszff7ZYWRpO9tDCa7KWF0WQvLYwm e2lhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN 9tLCaLKXFkZr3/to4dfnu45YV6wn1hcbiA3FRmJjsYnYVGwmNhdbiC3FVmJrsY3Y Vmwnthc7iB3FTmJnsYvYVewmdhd7iD3FGrNXu1ULk8ldtTCZ3FULk8ldtTCZ3FUL k8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ld tTBZI2ZvvtutWphM9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM 9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWpisfa9a+E9f0xctTNYV 64n1xQZiQ7GR2FhsIjYVm4nNxRZiS7GV2FpsI7YV24ntxQ5iR7GT2FnsInYVu4nd xR5iT7HG7NVuaWE0uUsLo8ldWhhN7tLCaHKXFkaTu7QwmtylhdHkLi2MJndpYTS5 SwujyV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYzWiNmb73ZLC6PJXloYTfbSwmiy lxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLCaLKXFkaTvbQwmuylhdFk Ly2MJntpYTTZSwujte99tPDr811HrCvWE+uLDcSGYiOxsdhEbCo2E5uLLcSWYiux tdhGbCu2E9uLHcSOYiexs9hF7Cp2E7uLPcSeYo3Zq92qhcnkrlqYTO6qhcnkrlqY TO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6q hcnkrlqYrBGzN9/tVi1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSy Vy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1M1r5XLfznr+mL FibrivXE+mIDsaHYSGwsNhGbis3E5mILsaXYSmwtthHbiu3E9mIHsaPYSewsdhG7 it3E7mIPsadYY/Zqt7QwmtylhdHkLi2MJndpYTS5SwujyV1aGE3u0sJocpcWRpO7 tDCa3KWF0eQuLYwmd2lhNLlLC6PJXVoYTe7SwmhylxZGa8TszXe7pYXRZC8tjCZ7 aWE02UsLo8leWhhN9tLCaLKXFkaTvbQwmuylhdFkLy2MJntpYTTZSwujyV5aGE32 0sJospcWRpO9tDCa7KWF0dr3Plr49fmuI9YV64n1xQZiQ7GR2FhsIjYVm4nNxRZi S7GV2FpsI7YV24ntxQ5iR7GT2FnsInYVu4ndxR5iT7HG7NVu1cJkclctTCZ31cJk clctTCZ31cJkclctTCZ31cJkclctTCZ31cJkclctTCZ31cJkclctTCZ31cJkclct TCZ31cJkclctTNaI2ZvvdqsWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9 amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJmvfqxb+ y9f0RQuTdcV6Yn2xgdhQbCQ2FpuITcVmYnOxhdhSbCW2FtuIbcV2Ynuxg9hR7CR2 FruIXcVuYnexh9hTrDF7tVtaGE3u0sJocpcWRpO7tDCa3KWF0eQuLYwmd2lhNLlL C6PJXVoYTe7SwmhylxZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsLozVi9ua73dLCaLKX FkaTvbQwmuylhdFkLy2MJntpYTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF0WQv LYwme2lhNNlLC6PJXloYTfbSwmjtex8t/Pp81xHrivXE+mIDsaHYSGwsNhGbis3E 5mILsaXYSmwtthHbiu3E9mIHsaPYSewsdhG7it3E7mIPsadYY/Zqt2phMrmrFiaT u2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2ph MrmrFiaTu2phMrmrFiZrxOzNd7tVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexV C5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5O1 71UL//Vr+qKFybpiPbG+2EBsKDYSG4tNxKZiM7G52EJsKbYSW4ttxLZiO7G92EHs KHYSO4tdxK5iN7G72EPsKdaYvdotLYwmd2lhNLlLC6PJXVoYTe7SwmhylxZGk7u0 MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKXFkaTu7QwmtylhdEaMXvz3W5p YTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF0WQvLYwme2lhNNlLC6PJXloYTfbS wmiylxZGk720MJrspYXRZC8tjCZ7aWG09r2PFn59vuuIdcV6Yn2xgdhQbCQ2FpuI TcVmYnOxhdhSbCW2FtuIbcV2Ynuxg9hR7CR2FruIXcVuYnexh9hTrDF7tVu1MJnc VQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuT yV21MJncVQuTyV21MJncVQuTNWL25rvdqoXJZK9amEz2qoXJZK9amEz2qoXJZK9a mEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2 qoXJ2veqhf/2NX3RwmRdsZ5YX2wgNhQbiY3FJmJTsZnYXGwhthRbia3FNmJbsZ3Y XuwgdhQ7iZ3FLmJXsZvYXewh9hRrzF7tlhZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsL o8ldWhhN7tLCaHKXFkaTu7QwmtylhdHkLi2MJndpYTS5SwujyV1aGE3u0sJojZi9 +W63tDCa7KWF0WQvLYwme2lhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXRZC8t jCZ7aWE02UsLo8leWhhN9tLCaLKXFkaTvbQwWvveRwu/Pt91xLpiPbG+2EBsKDYS G4tNxKZiM7G52EJsKbYSW4ttxLZiO7G92EHsKHYSO4tdxK5iN7G72EPsKdaYvdqt WphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM 7qqFyeSuWphM7qqFyeSuWphM7qqFyRoxe/PdbtXCZLJXLUwme9XCZLJXLUwme9XC ZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJX LUwme9XCZO171cL/8DV90cJkXbGeWF9sIDYUG4mNxSZiU7GZ2FxsIbYUW4mtxTZi W7Gd2F7sIHYUO4mdxS5iV7Gb2F3sIfYUa8xe7ZYWRpO7tDCa3KWF0eQuLYwmd2lh NLlLC6PJXVoYTe7SwmhylxZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLC aI2Yvflut7QwmuylhdFkLy2MJntpYTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF 0WQvLYwme2lhNNlLC6PJXloYTfbSwmiylxZGk720MFr73kcLN5/vOmJdsZ5YX2wg NhQbiY3FJmJTsZnYXGwhthRbia3FNmJbsZ3YXuwgdhQ7iZ3FLmJXsZvYXewh9hRr zF7tVi1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRy Vy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmSNmL35brdqYTLZqxYmk71qYTLZqxYm k71qYTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71q YTLZqxYmk71qYbL2vY8Wfn2+64h1xXpifbGB2FBsJDYWm4hNxWZic7GF2FJsJbYW 24htxXZie7GD2FHsJHYWu4hdxW5id7GH2FOsMXu1W7UwmdxVC5PJXbUwmdxVC5PJ XbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUw mdxVC5M1Yvbmu92qhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaq hclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhcna9z5a+P35riPW FeuJ9cUGYkOxkdhYbCI2FZuJzcUWYkuxldhabCO2FduJ7cUOYkexk9hZ7CJ2FbuJ 3cUeYk+xxuzVbtXCZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XC ZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUzWiNmb73arFiaTvWphMtmr FiaTvWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaT vWphMtmrFiaTvWphMtmrFiZr36sW/uZr+qKFybpiPbG+2EBsKDYSG4tNxKZiM7G5 2EJsKbYSW4ttxLZiO7G92EHsKHYSO4tdxK5iN7G72EPsKdaYvdotLYwmd2lhNLlL C6PJXVoYTe7SwmhylxZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKX FkaTu7QwmtylhdEaMXvz3W5pYTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF0WQv LYwme2lhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXRZC8tjCZ7aWG09r2PFm4+ 33XEumI9sb7YQGwoNhIbi03EpmIzsbnYQmwpthJbi23EtmI7sb3YQewodhI7i13E rmI3sbvYQ+wp1pi92q1amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ 5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJGjF7891u1cJkslct TCZ71cJkslctTCZ71cJkslctTCZ71cJkslctTCZ71cJkslctTCZ71cJkslctTCZ7 1cJkslctTCZ71cJkslctTCZ71cJk7XsfLfz6fNcR64r1xPpiA7Gh2EhsLDYRm4rN xOZiC7Gl2EpsLbYR24rtxPZiB7Gj2EnsLHYRu4rdxO5iD7GnWGP2ardqYTK5qxYm k7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tq YTK5qxYmk7tqYTK5qxYma8TszXe7VQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJns VQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuT te99tPD7811HrCvWE+uLDcSGYiOxsdhEbCo2E5uLLcSWYiuxtdhGbCu2E9uLHcSO Yiexs9hF7Cp2E7uLPcSeYo3Zq92qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6q hcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYrBGzN9/t Vi1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1M JnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1M1r5XLfzt1/RFC5N1xXpifbGB2FBs JDYWm4hNxWZic7GF2FJsJbYW24htxXZie7GD2FHsJHYWu4hdxW5id7GH2FOsMXu1 W1oYTe7SwmhylxZGk7u0MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKXFkaT u7QwmtylhdHkLi2MJndpYTS5SwujNWL25rvd0sJospcWRpO9tDCa7KWF0WQvLYwm e2lhNNlLC6PJXloYTfbSwmiylxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN 9tLCaO17Hy3cfL7riHXFemJ9sYHYUGwkNhabiE3FZmJzsYXYUmwlthbbiG3FdmJ7 sYPYUewkdha7iF3FbmJ3sYfYU6wxe7VbtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FUL k8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULkzVi 9ua73aqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM 9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqFydr3Plr49fmuI9YV64n1xQZi Q7GR2FhsIjYVm4nNxRZiS7GV2FpsI7YV24ntxQ5iR7GT2FnsInYVu4ndxR5iT7HG 7NVu1cJkclctTCZ31cJkclctTCZ31cJkclctTCZ31cJkclctTCZ31cJkclctTCZ3 1cJkclctTCZ31cJkclctTCZ31cJkclctTNaI2ZvvdqsWJpO9amEy2asWJpO9amEy 2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asW JpO9amEy2asWJmvf+2jh9+e7jlhXrCfWFxuIDcVGYmOxidhUbCY2F1uILcVWYmux jdhWbCe2FzuIHcVOYmexi9hV7CZ2F3uIPcUas1e7VQuTyV21MJncVQuTyV21MJnc VQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuT yV21MFkjZm++261amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9a mEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amKx9r1r4u6/pixYm 64r1xPpiA7Gh2EhsLDYRm4rNxOZiC7Gl2EpsLbYR24rtxPZiB7Gj2EnsLHYRu4rd xO5iD7GnWGP2are0MJrcpYXR5C4tjCZ3aWE0uUsLo8ldWhhN7tLCaHKXFkaTu7Qw mtylhdHkLi2MJndpYTS5SwujyV1aGE3u0sJocpcWRmvE7M13u6WF0WQvLYwme2lh NNlLC6PJXloYTfbSwmiylxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLC aLKXFkaTvbQwmuylhdHa9z5auPl81xHrivXE+mIDsaHYSGwsNhGbis3E5mILsaXY SmwtthHbiu3E9mIHsaPYSewsdhG7it3E7mIPsadYY/Zqt2phMrmrFiaTu2phMrmr FiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaT u2phMrmrFiZrxOzNd7tVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUw mexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5O173208Ovz XUesK9YT64sNxIZiI7Gx2ERsKjYTm4stxJZiK7G12EZsK7YT24sdxI5iJ7Gz2EXs KnYTu4s9xJ5ijdmr3aqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM 7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWpisEbM33+1WLUwme9XC ZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJX LUwme9XCZLJXLUwme9XCZLJXLUzWvvfRwu/Pdx2xrlhPrC82EBuKjcTGYhOxqdhM bC62EFuKrcTWYhuxrdhObC92EDuKncTOYhexq9hN7C72EHuKNWavdqsWJpO7amEy uasWJpO7amEyuasWJpO7amEyuasWJpO7amEyuasWJpO7amEyuasWJpO7amEyuasW JpO7amEyuasWJpO7amGyRszefLdbtTCZ7FULk8letTCZ7FULk8letTCZ7FULk8le tTCZ7FULk8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk8letTBZ +1618Pdf0xctTNYV64n1xQZiQ7GR2FhsIjYVm4nNxRZiS7GV2FpsI7YV24ntxQ5i R7GT2FnsInYVu4ndxR5iT7HG7NVuaWE0uUsLo8ldWhhN7tLCaHKXFkaTu7Qwmtyl hdHkLi2MJndpYTS5SwujyV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYzWiNmb73ZL C6PJXloYTfbSwmiylxZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLCaLKX FkaTvbQwmuylhdFkLy2MJntpYTTZSwujte99tHDz+a4j1hXrifXFBmJDsZHYWGwi NhWbic3FFmJLsZXYWmwjthXbie3FDmJHsZPYWewidhW7id3FHmJPscbs1W7VwmRy Vy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1MJnfVwmRyVy1M JnfVwmRyVy1MJnfVwmRyVy1M1ojZm+92qxYmk71qYTLZqxYmk71qYTLZqxYmk71q YTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZqxYmk71qYTLZ qxYma9/7aOHX57uOWFesJ9YXG4gNxUZiY7GJ2FRsJjYXW4gtxVZia7GN2FZsJ7YX O4gdxU5iZ7GL2FXsJnYXe4g9xRqzV7tVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUw mdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUwmdxVC5PJXbUwWSNm b77brVqYTPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhclk r1qYTPaqhclkr1qYTPaqhclkr1qYTPaqhclkr1qYrH3vo4Xfn+86Yl2xnlhfbCA2 FBuJjcUmYlOxmdhcbCG2FFuJrcU2Yluxndhe7CB2FDuJncUuYlexm9hd7CH2FGvM Xu1WLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZHJX LUwmd9XCZHJXLUwmd9XCZHJXLUwmd9XCZI2Yvflut2phMtmrFiaTvWphMtmrFiaT vWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWphMtmrFiaTvWph MtmrFiaTvWphsva9auEfvqYvWpisK9YT64sNxIZiI7Gx2ERsKjYTm4stxJZiK7G1 2EZsK7YT24sdxI5iJ7Gz2EXsKnYTu4s9xJ5ijdmr3dLCaHKXFkaTu7QwmtylhdHk Li2MJndpYTS5SwujyV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYwmd2lhNLlLC6PJ XVoYrRGzN9/tlhZGk720MJrspYXRZC8tjCZ7aWE02UsLo8leWhhN9tLCaLKXFkaT vbQwmuylhdFkLy2MJntpYTTZSwujyV5aGE320sJospcWRmvf+2jh5vNdR6wr1hPr iw3EhmIjsbHYRGwqNhObiy3ElmIrsbXYRmwrthPbix3EjmInsbPYRewqdhO7iz3E nmKN2avdqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5a mEzuqoXJ5K5amEzuqoXJ5K5amEzuqoXJ5K5amKwRszff7VYtTCZ71cJkslctTCZ7 1cJkslctTCZ71cJkslctTCZ71cJkslctTCZ71cJkslctTCZ71cJkslctTCZ71cJk slctTCZ71cJkslctTNa+99HCr893HbGuWE+sLzYQG4qNxMZiE7Gp2ExsLrYQW4qt xNZiG7Gt2E5sL3YQO4qdxM5iF7Gr2E3sLvYQe4o1Zq92qxYmk7tqYTK5qxYmk7tq YTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5qxYmk7tqYTK5 qxYmk7tqYbJGzN58t1u1MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuT yV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MJnsVQuTyV61MFn73kcLvz/f dcS6Yj2xvthAbCg2EhuLTcSmYjOxudhCbCm2EluLbcS2YjuxvdhB7Ch2EjuLXcSu Yjexu9hD7CnWmL3arVqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnk rlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhcnkrlqYTO6qhckaMXvz3W7VwmSyVy1M JnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvVwmSyVy1MJnvV wmSyVy1MJnvVwmSyVy1MJnvVwmTte9XCP35NX7QwWVesJ9YXG4gNxUZiY7GJ2FRs JjYXW4gtxVZia7GN2FZsJ7YXO4gdxU5iZ7GL2FXsJnYXe4g9xRqzV7ulhdHkLi2M JndpYTS5SwujyV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYwmd2lhNLlLC6PJXVoY Te7SwmhylxZGk7u0MFojZm++2y0tjCZ7aWE02UsLo8leWhhN9tLCaLKXFkaTvbQw muylhdFkLy2MJntpYTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF0WQvLYzWvvfR ws3nu45YV6wn1hcbiA3FRmJjsYnYVGwmNhdbiC3FVmJrsY3YVmwnthc7iB3FTmJn sYvYVewmdhd7iD3FGrNXu1ULk8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ld tTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ldtTCZ3FULk8ldtTBZI2ZvvtutWphM 9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqFyWSvWphM9qqF yWSvWphM9qqFyWSvWphM9qqFyWSvWpisfe+jhV+f7zpiXbGeWF9sIDYUG4mNxSZi U7GZ2FxsIbYUW4mtxTZiW7Gd2F7sIHYUO4mdxS5iV7Gb2F3sIfYUa8xe7VYtTCZ3 1cJkclctTCZ31cJkclctTCZ31cJkclctTCZ31cJkclctTCZ31cJkclctTCZ31cJk clctTCZ31cJkclctTCZ31cJkjZi9+W63amEy2asWJpO9amEy2asWJpO9amEy2asW JpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9amEy2asWJpO9 amGy9r2PFn5/vuuIdcV6Yn2xgdhQbCQ2FpuITcVmYnOxhdhSbCW2FtuIbcV2Ynux g9hR7CR2FruIXcVuYnexh9hTrDF7tVu1MJncVQuTyV21MJncVQuTyV21MJncVQuT yV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTyV21MJncVQuTNWL2 5rvdqoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2 qoXJZK9amEz2qoXJZK9amEz2qoXJZK9amEz2qoXJ2veqhX/6mr5oYbKuWE+sLzYQ G4qNxMZiE7Gp2ExsLrYQW4qtxNZiG7Gt2E5sL3YQO4qdxM5iF7Gr2E3sLvYQe4o1 Zq92SwujyV1aGE3u0sJocpcWRpO7tDCa3KWF0eQuLYwmd2lhNLlLC6PJXVoYTe7S wmhylxZGk7u0MJrcpYXR5C4tjCZ3aWG0RszefLdbWhhN9tLCaLKXFkaTvbQwmuyl hdFkLy2MJntpYTTZSwujyV5aGE320sJospcWRpO9tDCa7KWF0WQvLYwme2lhNNlL C6PJXloYrX3vo4Wbz3cdsa5YT6wvNhAbio3ExmITsanYTGwuthBbiq3E1mIbsa3Y TmwvdhA7ip3EzmIXsavYTewu9hB7ijVmr3arFiaTu2phMrmrFiaTu2phMrmrFiaT u2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2phMrmrFiaTu2ph skbM3ny3W7UwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexV C5PJXrUwmexVC5PJXrUwmexVC5PJXrUwmexVC5PJXrUwWfveRwu/Pt91xLpiPbG+ 2EBsKDYSG4tNxKZiM7G52EJsKbYSW4ttxLZiO7G92EHsKHYSO4tdxK5iN7G72EPs KdaYvdqtWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqF yeSuWphM7qqFyeSuWphM7qqFyeSuWphM7qqFyRoxe/PdbtXCZLJXLUwme9XCZLJX LUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwme9XCZLJXLUwm e9XCZLJXLUwme9XCZO17Hy38/nzXEeuK9cT6YgOxodhIbCw2EZuKzcTmYguxpdhK bC22EduK7cT2Ygexo9hJ7Cx2EbuK3cTuYg+xp1hj9mq3amEyuasWJpO7amEyuasW JpO7amEyuasWJpO7amEyuasWJpO7amEyuasWJpO7amEyuasWJpO7amEyuasWJpO7 amEyuasWJmvE7M13u1ULk8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk8letTCZ 7FULk8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk8letTCZ7FULk7XvVQv//DV9 0cJkXbGeWF9sIDYUG4mNxSZiU7GZ2FxsIbYUW4mtxTZiW7Gd2F7sIHYUO4mdxS5i V7Gb2F3sIfYUa8xe7ZYWRpO7tDCa3KWF0eQuLYwmd2lhNLlLC6PJXVoYTe7Swmhy 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 `turtle world` H4sIAAAAAAAAAD2OMQ7CMAxFTUlaEIiJkYGBiYEBGBg5SkNjNUhREiWGwik4Mrih qiVL78nfcWBV0yOSxW0iRVhfYawPlBZdS4b5AvIWETXjDqpgPQV0LAeQjbc+Mm5A vJtMS1jkx8btM8w4rn3nAtsRZDIqIOMexOu/I2DaGZ/vlskMyRNUBpW+u5ZlzT0B SVqRGn5YsHI05cmconryzdhr8eXqIz/zzoGK4AAAAAAAAOA=