Version 57 of Hearts

Updated 2005-03-22 17:58:32 by MG

if 0 {

Current Version: 0.19

MG Feb 18 2005 - After being in need of a quick diversion, I started writing another card game (see Spider Solitaire for my last), this time Hearts, similar to the one shipped with Windows since, IIRC, Windows 3.1.1 for Workgroups.

It's not finished yet, but I thought I'd post what I've done so far and update it as I go.

It uses the same set of card images as Spider Solitaire and Once in a Lifetime, with a few changes; the card back image now has a black border around it (nicer when you have 13 cards overlapping in a line), and I added a few new card back images (one is picked at random), using a few of the 'fill patterns' from Photoshop.

Comments welcomed, as always :)

Vince says that in the UK the rules are different - normally AKQ of spades are bad, with A=7,K=10,Q=13 points, and the hearts one point each. Normally J-diamonds isn't special, either. Also, the player to left of dealer leads whatever card they want (no forcing of the 2-clubs lead). Finally, you can't lead a heart until one has been discarded, unless all you have are hearts. I've played both versions a lot, in the US and UK, and most people I know find the UK rules lead to a more interesting game.

MG is from the UK himself, but hadn't heard of those rules - the only version I've ever played in the one shipped with Windows. Would be interesting to add that ruleset at the end and make it configurable, too, though. Thanks for posting about it :)

With your comment about the Jack of Diamonds.. it shouldn't be special in this version, either. Did you find that you got points for it somewhere? If so, it's a bug that I'll take a look for...

Vince you're right it's not special in this version at present. The standard US rules give -10 points for it. In the UK it's irrelevant.

rdt Well, Vince, I've played (in the US) for decades and never heard of that rule, maybe its not so 'standard' after all.

MG Ah, I see. I was going by the scoring in the MS Windows version of Hearts (though who knows where they got the rules from, after what you said). *grins* More options to add.

See below for changes in different versions


rdt says this is a nice game and its getting to be in "pretty good shape". I have one suggestion about the AI that I've noticed. When a player is about to take a trick, that is, he is playing the fourth card on a trick and he doesn't have a card lower than any of the three already played, why does he play his lowest card of the suit instead of the highest? MG March 12 - this shouldn't happen any more, with the recoded AIs

MG Hi rdt, thanks for your comments. I'm planning to do three levels of AI, but all that's there right now is the really stupid one (which I just wrote so that the game would actually be playable). And when I say stupid, I really mean it :) It uses extremely basic routines to pick a card - if there are cards down, and it can match suit, it always does so with the lowest card it has. I'll probably change that as you suggest, though, when I do the other AIs, since otherwise it's going to be a little too basic, even for an 'easy' player. (Right now, though, it has the advantage of making it easy to test things, since it's fairly easy to win or lose any round.) Hopefully I should fix up the other AIs in the next couple of days. At the moment, though, and after reading some of RS's pages like Describing and rendering flags in Tcl in the last few days, I'm thinking of recoding the AI handling slightly, to make it easier to define different difficulties/intelligence levels with shorthand / a little language - as it is, every AI proc has to check for the 2 of clubs (which is something every single one will definately have to do, so it's kind've pointless repeating it like that...), and things like that. (Wow, that was rambling.)

rdt I understand. Its fun as it is, like you say.


rdt Hey, I thought the rule was "you can't drop a heart on the first trick". Top led the 2 clubs & Right dropped the Jack of Hearts. Is that supposed to permitted or is it a bug?

MG That is a bug, yes. You can't play a heart on the first round (or any other point card). I haven't looked at the code yet, but I'm pretty sure where it is - I didn't check for it being the first round in the AI code. (It does check that, in the 'player' code, though, so it's not possible for you to do that.) Will fix later tonight. Thanks :)

MG Fixed now (v 0.7).

rdt Thanks MG, now I'm getting a "can't read $origx while executing if { $origx == $tox && ..." error from the doMoveCard proc for some reason & I can't figure out why. :(

MG Ack. I'd gotten that once before, but wasn't sure why, and thought/hoped some small changes I'd made had sorted it. I'll go digging later on and see if I can find what's causing it. Thanks :)

MG adds, a few minutes later, that v 0.8 has been released, with an extra call to [puts] in [doMoveCard], which should show what's causing the problem. (Incidently, whenever I saw the error myself, it was on the right-hand player. Did you happen to notice the same thing, if you remember?) Update: *coughs* Removed a stupid bug in the 'puts' check (I had [info exists $origx] not [info exists origx])

rdt Ok, the output was 'Error! doMoveCard .c cardNum 3 /' from Top, I believe. Apparentely the '$c coords $item' did not return anything. Further testing reveals that to be correct.

MG With the aid of another 25 or so calls to puts, I've tracked it down ;) Hopefully it's fixed now (v 0.9). The problem was that the AI was filtering the cards incorrectly - it was stopping the AI from playing a heart or the queen of spades (ie, point cards) if there were no cards down, rather than if it was the first play of the round (when the 2 of clubs is played, and point cards are banned). That caused an AI whose cards were soley made up of point cards to not be able to start a play (with getBestCard-1 returning an empty string, instead of a card). Should work fine, now (he says, crossing his fingers).

rdt Shoot. I broke it for the wiki_reaper so I edited my text above. :)

MG v 0.10 now released (early hours of March 12 2005). The AI code is now re-written, which should make defining AIs easier - instead of actual coded procs, it uses two variables per AI, both a Tcl list.

MG, several hours later: now at v0.11, with some improvements to the AI code, and a new, more intelligent AI added. Explaination of how they both work removed; I'll re-add it at the end, when it's set. Right now, if you have a suggestion for how an AI should work, the best thing to do is just drop a textual explaination here - the code format may change a little, and it's somewhat confusing, at the moment, I think. Any comments welcomed, though :) The top and right AIs now use a (theoretically) more intelligent AI than the left-hand one, which is also slightly better at the game than it was before. A third level of AI will follow, which will have "memory" (will remember if the queen of spades was played, and play it's cards accordingly, and so on).

rdt Well, it certainly is a better AI.

MG March 13 2005 - Fixed a really, really stupid bug in the AI - where I had glob patterns for choosing which cards to put up, the * was on the wrong side of the character, so none of them matched. :P Fixed that, now, and a bug in the AIchooseCardsUp proc which let one card match several times (meaning that some AIs only passed 1 or 2 cards over, instead of 3). Also added a third AI, which is better than both the others. It's not as intelligent as it could be yet, I don't think, but it definately beats the other two. I think the AI code is suitable for more intelligent things, too - if there's something that's not possible, I think it just means more variables need to made available for the expressions - so I'll explain the way the AIs are coded later tonight. At the moment, there's one AI of each difficulty - no "good" way to change it yet, so just edit the code, it's quite near the top (data(diffs,$num), set to 1 for basic, 2 for moderate, 3 for better). Any suggestions for improvements to make the AIs more intelligent would be appreciated, either with code or just an explaination of why they're stupid :)

MG Bug in AIchooseCardsUp fixed in v0.13

rdt A suggestion, the color of the score for the player that goes over 100, should be red and how about having the score be a "drop-down" white rectangle from the top of the canvas? MG Agreed, on the red, I'll add that in (done in v0.14). I'm not completely sure what you mean for the drop-down part, though?

rdt Instead of opening a new toplevel window, a rectangle (in white as if it were a score sheet) drawn directly onto the canvas beginning at its top. Additional lines would extend the rectangle downward. It would come and go just like the current score window does.

MG Ah, I see what you mean now. Hrm... not too sure about that one, I'll have to think about it. It would seem to have a few drawbacks to me: it would be harder to align things properly (I'm not too fond of the experience I've had with doing text on the canvas with this, though it could well just be me being stupid), whereas pack takes care of things very simply. It would also be more difficult to arrange the bindings - simple deactivation of the canvas wouldn't be an option, if the score dialog was a part of it. (Just binding to the canvas itself and still deactivating the canvas may sort it, though.) I'm not really sure that I see any benefit of doing it like that, though...

rdt Yes, I understand your feeling about text on the canvas. It could be done by label windows (one for each score) placed onto the canvas. The "dismiss" button would just clear the canvas like the end of a game.

rdt Whoops. I meant to have just the score over 100 be red. Not the entire column.

MG Personally, I think it looks better with all of them in red. But I've made it more easily changable - just find the line 'set allRed 1' in the showScores proc, and change it to 0, and only the last score (the one over 99 - 100 loses the game, too) will be shown in red. The previous scores are also shown with an overstrike, now, similar to the MS version.


MG March 22 2005 - Version 0.18 released (including changes from 0.16 and 0.17, which I never uploaded as they were minor). Now has an Options dialog (not the most attractive, but it works). AI names are only changed when you start a new game, the other options take effect immediately. Also made some small internal changes, and added a button-3 binding to show the whole card by raising it above the others.


Anon 22Mar05 - Request - could you add a keyboard interface, so that it could be played entirely without resort to the mouse? MS-Hearts uses <space> to throw in either lowest card in suit or furtherst left if you can't follow suit. But this could be improved by using the arrow keys to pick a card (it could toggle between allowable moves). Cheers!

MG That would be good to have, I agree. Maybe 1, 2,.. 9, 0 to play one of the first ten cards, and Shift-[1-3] for one of the others? (That's also much easier to do than using the arrow keys to scroll through, since it basically requires no new code other than the [bind] calls.)


Anon 22Mar05 - Has someone fiddled with doEndRound? The scoring system is completely broken. For example the command incr last $data(points,$x) isn't going to work as data(points,$x) is a list of cards.

MG Woops.. that would be me. I was changing it over to add a new feature, but decided to release all the other changes first, and add that feature later - and completely forgot I'd half-started. I'll fix that ASAP. Thanks for pointing it out...

MG Fixed now, hopefully. The incr last $data(points,$x) you mentioned should have been incr last $points, and then there were several stupid other bugs like an lsearch's return value being checked incorrectly (so it was always taken as being true, even if it returned -1, which should've been false here). Anyway... hopefully all sorted, now. Thanks again.


}

 # Hearts, based on the card game shipped with MS Windows
 # Mike Griffiths, Feb 17th 2005

 package require Tk

 set p(name) "Hearts"
 set p(ver) "0.19"
 set p(firstdate) [clock scan "February 17 2005"]
 set p(lastdate)  [clock scan "March 22 2005"]

 # Changes:
 #  0.1  - Initial version, shows the canvas and deals cards,
 #           but nothing else.
 #  0.2  - you can now pick which three cards to pass on.
 #           Beginning of AI so the other players can also pick cards.
 #           Game starts if an AI has the 2 of clubs, but fails when it's
 #           the (human) player's turn.
 #  0.3  - First playable version. Basic level AI only, and a poor score
 #           dialog, but the game works. Also added displaying the four
 #           player's names on the canvas, by their cards.
 #  0.4  - Temporary (and, as it turned out, buggy) score dialog removed,
 #           and replaced with a proper one.
 #         Changed the way the card backs are stored - the cardback array is
 #           now set via a proc (so that it can be unset to free memory, but set
 #           again later); later, you'll be able to select/change the cardback image
 #           at any time. The cardback() array's keys no longer need to be incrementing
 #           integers for random selection, either, so the images can be named.
 #         Also removed a card-back image I didn't like, and added 2 more (to make 8
 #           in total, better for displaying the 'select card back' screen): a red
 #           pattern, and a Tcl Powered one.
 #         "package require Tk" also added by Brian Theado [http://mini.net/tcl/561].
 #  0.5  - Added a dialog for selecting which cardback you want to use.
 #         Small internal change to the code for "transient" windows, to better handle
 #           error cases (which shouldn't be possible, but better safe than sorry),
 #           and to deactivate .c instead of removing the bindings on the tags - 
 #           same effect, but less chance of it going wrong somewhere later.
 #  0.6  - The main window is now centered on startup, and isn't resizable.
 #  0.7  - AIs could play a Heart on the first round. Bug found by [rdt].
 #  0.8  - Added 'debugging' [puts] in doMoveCard, to try and catch the bug found by
 #           rdt. (If origx isn't set, it prints the arguments it was called with,
 #           and the results of the [$c coords $item] (where $origx should come from).
 #         Also updated the 'About' dialog to acknowledge contributions from people
 #           who I'd thus far left off due to forgetfulness.
 #  0.9  - Fixed bug mentioned in 0.8 (99% sure - extra [puts] left in just in case,
 #           for now). Also fixed a bug in the score dialog that made it say the game
 #           was over if someone scored more than 10 points - it should be more than 99,
 #           but I'd changed it once to check it worked and never set it back.
 #  0.10 - Changed the way the AI works, so that all that's needed to define which cards
 #           get put up at the start of a round is a simple list of glob patterns (ie,
 #           '*a *k *q *j *t ... *2' to go from highest to lowest).
 #  0.11 - Changes to the AI, because the way the new system was set up sucked ;)
 #  0.12 - Introduced a third (and final?) AI, slightly better than the last in avoiding
 #           the Queen of Spades
 #  0.13 - Bug in the AIchooseCardsUp proc fixed where, with multiple [lreplace] calls,
 #           the later ones were getting list indexes that no longer existed
 #  0.14 - The Scores dialog now shows scores over 100 in red, at game end (suggsted
 #           by RDT).
 #         Removed lots of old debugging calls to [puts], and fixed the OK button on
 #           the Scores dialog to have "-default active", instead of "-state active"
 #  0.15 - Added a variable, $data(winAt), which stores the number of points needed to
 #           lose the game. Saves changing it in multiple places for debugging things.
 #         Minor changes to score dialog's appearance (to allow less red, and to add
 #           overstriking of scores from previous rounds)
 #  0.16 - Added more status bar messages, so it doesn't appear to hang at the end of
 #           a round/game.
 #  0.17 - Added Button-3 event that raises a player's card, so you can see the 
 #           whole thing.
 #         Removed [hastag] proc - it was only used once, so I just used it's (one-line)
 #           body directly in the spot where it was being called. Marginally increases
 #           the speed.
 #  0.18 - Added Options dialog.
 #         There's no longer a delay (previously 350ms) between the right AI playing
 #           a card, and the player bindings being set (in doNextPlayer).
 #         Status bar is now set via a [setStatus] proc, rather than by directly
 #           configuring the widget, so that delayed calls to set it via [after]
 #           can be cancelled.
 #         AIs are now numbered 0-2 (not 1-3) for [lindex] purposes
 #  0.19 - Fixed scoring bugs found by [Anon] on the Wiki.

 # Known bugs, as yet unfixed, and things still to add:
 #   Player names display wrong (for bottom/right players, which use
 #     right-aligned text). Right-aligned text on the canvas doesn't seem
 #     to work quite as I'd expected...
 #   Alternative scoring options, as suggested by Vince on the Wiki.
 #   Help-file
 #   At end of round (in proc doEndRound), show the cards a player collected during
 #     the round (the ones that cost him points, anyway). Probably the easiest way
 #     to do that would be to have the score-recording proc append the card's "number"
 #     to a list, instead of incrementing an integer by the points it's worth.
 #   

 #---

 set ai(text,0) "Easy"
 set ai(up,0)   [list a* k* q* j* t* 9* 8* 7* 6* 5* 4* 3* 2*]
 set ai(play,0) [list [list {$hasSuit || $down==0} play LOWEST] [list 1 play HIGHEST]]
 set ai(text,1) "Moderate"
 set ai(up,1)   [list qs a* k* q* j* t* 9* 8* 7* 6* 5* 4* 3* 2*]
 set ai(play,1) [list [list {$hasSuit && $myHigh != ""} play HIGHESTSAFE] [list {$hasSuit && $down < 3} play LOWEST] [list {$hasSuit} play HIGHEST] [list {$down==0} play LOWEST] [list 1 play HIGHEST]]
 set ai(text,2) "Decent"
 set ai(up,2)   [list qs as ks a* k* q* 2c j* t* 9* 8* 7* 6* 5* 4* 3* 2*]
 set ai(play,2) [list [list {$first} play HIGHEST] [list {$hasSuit && $suit == "s"} filter qs] [list {$hasSuit && $suit == "s" && [lsearch "$data(cards,0) $data(cards,1) $data(cards,2) $data(cards,3)" "qs"] != "-1"} filter {as ks}] [list {$hasSuit && $myHigh != ""} play HIGHESTSAFE] [list {$hasSuit && $down < 3} play LOWEST] [list {$hasSuit} play HIGHEST] [list {$down==0} play LOWEST] [list {!$hasSuit && [lsearch $cards qs] > -1} play qs] [list 1 play HIGHEST]]

 set speed(0,time) 20
 set speed(0,name) "Slow"
 set speed(1,time) 10
 set speed(1,name) "Medium"
 set speed(2,time) 5
 set speed(2,name) "Fast"

 set data(speed) 1

 set data(name,0) "Player1"
 set data(name,1) "AI-1 (Left)"
 set data(name,2) "AI-2 (Right)"
 set data(name,3) "AI-3 (Top)"

 set data(diff,1) 0 
 set data(diff,2) 1
 set data(diff,3) 2

 set data(score,0) [list 0]
 set data(score,1) [list 0]
 set data(score,2) [list 0]
 set data(score,3) [list 0]

 set data(points,0) [list]
 set data(points,1) [list]
 set data(points,2) [list]
 set data(points,3) [list]

 set data(cards,0) {}
 set data(cards,1) {}
 set data(cards,2) {}
 set data(cards,3) {}

 set data(playing) 0
 set data(round)   0  ;# 1 = pass left
                      ;# 2 = pass right
                      ;# 3 = pass up
                      ;# 4 = don't pass, just play
 set data(doing) "none" ;# (see proc doCardClick) possible values:
                     #   pass   = passing cards to other players (select/deselect cards)
                     #   accept = accepting cards passed to us; no bindings
                     #   play1  = first round; 2 of clubs only
                     #   play2  = click a card to send it
                     #   none   = no bindings
                     #   ???    = ???

 set coords(tb,base) 140
 set coords(tb,diff) 15

 set coords(lr,base) 72
 set coords(lr,diff) 15

 set data(hearts) 0 ;# has hearts been broken?
 set data(winAt) 100 ;# what score do you win at?

 proc main {} {
   global p data

   wm withdraw .
   wm title . "$p(name) Version $p(ver)"
   bind . <Shift-F1> "console show"
   . configure -menu [menu .m -tearoff 0]
   .m add cascade -label "Game" -underline 0 -menu [menu .m.g -tearoff 0]
     .m.g add command -label "New Game" -underline 0 -command newGame \
                      -accelerator "F2"
          bind . <F2> [list doShortcut newGame]
     .m.g add separator
     .m.g add command -label "Change Card Back" -underline 0 -command showCardBack \
                      -accelerator "F7"
          bind . <F7> [list doShortcut showCardBack]
     .m.g add command -label "Options" -underline 0 -command showOptions \
                      -accelerator "F8"
          bind . <F8> [list doShortcut showOptions]
     .m.g add command -label "Score" -underline 0 -command showScores \
                      -accelerator "F9"
          bind . <F9> [list doShortcut showScores]
     .m.g add separator
     .m.g add command -label "Exit" -underline 1 -command chk_exit \
                      -accelerator "Alt-F4"
          bind . <Alt-F4> chk_exit ;# don't bother with doShortcut here
          wm protocol . WM_DELETE_WINDOW chk_exit
   .m add cascade -label "Help" -underline 0 -menu [menu .m.h -tearoff 0]
     set helpCommand showHelp
     .m.h add command -label "Help Topics" -underline 0 \
                      -command $helpCommand -accelerator "F1"
          bind . <F1> $helpCommand
     .m.h add separator
     .m.h add command -label "About" -underline 0 -command aboutHearts
     .m.h add command -label "Console" -underline 0 -command "console show" \
                      -accelerator "Shift+F1"

   canvas .c -width 530 -height 420 -background #000077770000 -highlightthickness 0
   .c bind player0 <ButtonPress-3> {set ::data(belowCard) [.c find above \
       [set ::data(raiseCard) [.c find withtag current]]] ; .c raise $::data(raiseCard)}
   .c bind card <ButtonRelease-3> {.c lower $::data(raiseCard) $::data(belowCard)}

   pack .c -side top -anchor nw -pady 2
   label .status -relief groove -borderwidth 1 -anchor w \
                      -text "Welcome to Hearts"
   pack .status -ipadx 5 -fill x

   update
   center .
   wm deiconify .
   update
   wm resizable . 0 0
   raise .
   focus -force .

 };# main

 proc showCardBack {} {
   global cardback data

   set thisCmd [lindex [info level 0] 0]
   if { [info exists dialog(cmd)] && !($dialog(cmd) == "" || $dialog(cmd) == $thisCmd) } {
        return; # already got another dialog up
      }
   set dialog(cmd) $thisCmd
   set dialog(win) .cardbacks
   set w $dialog(win)

   bind . <FocusIn> "forceWindow $w"

   catch {destroy $w}
   toplevel $w
   wm withdraw $w
   wm title $w "$::p(name) - Change Card Back"
   set destroyCmd [list closeDialog $w [list setCardBack 1]]
   set cancelCmd [list closeDialog $w [list setCardBack 0]]
   wm protocol $w WM_DELETE_WINDOW $cancelCmd
   # set .c disabled, to stop cards reacting
   .c configure -state disabled

   set data(cardbackTMP) $data(cardback)

   set txt "Click the Card Back you'd like to use, and then click OK."
   pack [label $w.txt -text $txt -wraplength [expr {[image width ::img::back]*4}]] \
                      -side top -fill x
   set i 3
   set list [list 1 2 3 0]
   set frame -1
   loadCardbacks
   foreach x [lsort [array names cardback]] {
            set i [lindex $list $i]
            if { $i == "0" } {
                 incr frame
                 pack [frame $w.fr$frame] -side top -fill both
               }
            lappend data(cardbackIMG) [set this [image create photo -data $cardback($x)]]
            radiobutton $w.fr$frame.$i -text $x -image $this -compound top \
                                       -variable data(cardbackTMP) -value $x \
                                       -indicatoron false -offrelief flat \
                                       -overrelief raised
            pack $w.fr$frame.$i -side left -padx 4 -pady 6
          }

   pack [frame $w.frBtn] -side top -expand 1 -fill x
   pack [button $w.frBtn.ok -command $destroyCmd -text "OK" -width 8] \
                -side left -anchor center -padx 5 -pady 8 -fill none -expand 1
   pack [button $w.frBtn.cancel -command $cancelCmd -text "Cancel" -width 8] \
                -side left -anchor center -padx 5 -pady 8 -fill none -expand 1

   update
   center $w
   wm deiconify $w
   update
   wm resizable $w 0 0
   raise $w
   focus -force $w

   return;

 };# showCardBack

 proc setCardBack {doit} {
   global data cardback

   # clean up after setting the new cardback. Only actually change it if
   # $doit is true, though.

   if { $doit } {
        ::img::back configure -data $cardback($data(cardbackTMP))
        set data(cardback) $data(cardbackTMP)
      }
   foreach x $data(cardbackIMG) {
            image delete $x
           }
   unset data(cardbackIMG) data(cardbackTMP) cardback

 };# setCardBack

 proc doShortcut {cmd} {
   global dialog

   if { [info exists dialog(cmd)] } {
        if { $dialog(cmd) == "" || ![winfo exists $dialog(win)] \
                                || $dialog(cmd) == [lindex $cmd 0] } {
             unset -nocomplain dialog
             uplevel #0 $cmd
           }
      } else {
        uplevel #0 $cmd
      }

 };# doShortcut

 proc newGame {{force 0}} {
   global data p coords

   if { $data(playing) && !$force } {
        set ans [tk_messageBox -message "Start a new game?" -title $p(name) \
                               -type yesno -icon question]
        if { $ans == "no" } {
             return;
           }
      }

   .c delete all

   set data(playing) 1
   set data(round) 0
   set data(score,0) [list 0]
   set data(score,1) [list 0]
   set data(score,2) [list 0]
   set data(score,3) [list 0]

   deal

   # get the color for names, and pick a font
   set nameCol [revCol [.c cget -background]]
   # or, on second thoughts....
   set nameCol "white"
   set nameFont [font actual Helvetica -displayof .]
   set fontH [font metrics $nameFont -displayof . -linespace]

   set cardW [image width ::img::back]
   set cardH [image height ::img::back]

   set pos(x,0) [expr {$coords(tb,base)-5-$cardW}]
   set pos(y,0) [expr {405-$fontH}]
   set pos(a,0) nw
   set pos(j,0) right

   set pos(x,1) 18
   set pos(y,1) [expr {$coords(lr,base)-$fontH}]
   set pos(a,1) nw
   set pos(j,1) left

   set pos(x,2) [expr {409+($cardW/2)}]
   set pos(y,2) [expr {$coords(lr,base)+5+(12*$coords(lr,diff))+$cardH}]
   set pos(a,2) nw
   set pos(j,2) right

   set pos(x,3) [expr {$coords(tb,base)+5+(12*$coords(tb,diff))+$cardW}]
   set pos(y,3) 15
   set pos(a,3) nw
   set pos(j,3) left

 #309 y, 15 y, 15 x, 444 x

   foreach {who} [list 0 1 2 3] {
            .c create text $pos(x,$who) $pos(y,$who) -tags [list name name$who] \
                           -text $data(name,$who) \
                           -fill $nameCol -width $cardW \
                           -anchor $pos(a,$who) -justify $pos(j,$who)
          }

 };# newGame

 proc revCol {n} {
   # return the inverse of color $n

   set list [winfo rgb . $n]

   set red [lindex $list 0]
   set green [lindex $list 1]
   set blue [lindex $list 2]
   set first [format "#%04x%04x%04x" $red $green $blue];  

   # invert it
   set first [string tolower $first]
   set inverse [string map "0 f 1 e 2 d 3 c 4 b 5 a 6 9 7 8 8 7 9 6 a 5 b 4 c 3 d 2 e 1 f 0" $first]
   return $inverse;

 };# revCol

 proc numValue {card} {

   # discard suit
   set card [string range $card 0 0]

   # return value
   return [lsearch [list FAKE FAKE 2 3 4 5 6 7 8 9 t j q k a] $card];

 };# numValue

 proc sortPlayerCards {{which "0 1 2 3"}} {
   global data

   # now we need to sort them, by suit and then by face value
   foreach x $which {
            set data(cards,$x) [lsort -command sortByCard $data(cards,$x)]
           }

 };# sortPlayerCards

 proc sortByFace {a b} {

   set a [numValue [string range $a 0 0]]
   set b [numValue [string range $b 0 0]]
   if { $a < $b } {
         return -1;
     } elseif { $a > $b } {
         return 1;
     } else {
         return 0;
     }

 };# sortByFace  

 proc sortByCard {a0 b0} {

   # split into face value and suit value
   set a(face) [numValue $a0]
   set b(face) [numValue $b0]

   set a(suit) [lsearch [list c d s h] [string range $a0 end end]]
   set b(suit) [lsearch [list c d s h] [string range $b0 end end]]

   if { [set ans [sortByCardSub $a(suit) $b(suit)]] == "0" } {
        return [sortByCardSub $a(face) $b(face)];
      } else {
        return $ans;
      }

 };# sortByCard

 proc sortByCardSub {a b} {

   if { $a < $b } {
         return -1;
     } elseif { $a > $b } {
         return 1;
     } else {
         return 0;
     }

 };# sortByCardSub

 proc deal {} {
   global data coords

   set cards [shuffleList $::ALLCARDS]
   set data(lastCards) $cards
   set data(cards,0) [lrange $cards 0 12]
   set data(cards,1) [lrange $cards 13 25]
   set data(cards,2) [lrange $cards 26 38]
   set data(cards,3) [lrange $cards 39 51]
   # now sort them, by suit then by face
   sortPlayerCards

   set data(points,0) [list]
   set data(points,1) [list]
   set data(points,2) [list]
   set data(points,3) [list]

   set data(hearts) 0

   # FIGURES FOR TOP/BOTTOM PLAYERS
   set base $coords(tb,base)
   set diff $coords(tb,diff)

   # draw the player (0)'s cards
   set lc $data(cards,0)
   for {set i 0} {$i < 13} {incr i} {
        .c create image [expr {$base+($i*$diff)}] 309 \
                  -image ::img::[lindex $lc $i] -anchor nw \
                  -tags [list card player0 cardNum[lindex $lc $i] down]
       }

   # draw the top AI (3)'s cards
   set lc $data(cards,3)
   for {set i 0} {$i < 13} {incr i} {
        .c create image [expr {$base+($i*$diff)}] 15 \
                  -image ::img::back -anchor nw \
                  -tags [list card player3 cardNum[lindex $lc $i] down]
       }

   # FIGURES FOR LEFT/RIGHT PLAYERS
   set base $coords(lr,base)
   set diff $coords(lr,diff)

   # draw the left AI (1)'s cards
   set lc $data(cards,1)
   for {set i 0} {$i < 13} {incr i} {
        .c create image 15 [expr {$base+($i*$diff)}] \
                  -image ::img::back -anchor nw \
                  -tags [list card player1 cardNum[lindex $lc $i] down]
       }

   # draw the left AI (2)'s cards
   set lc $data(cards,2)
   for {set i 0} {$i < 13} {incr i} {
        .c create image 444 [expr {$base+($i*$diff)}] \
                  -image ::img::back -anchor nw \
                  -tags [list card player2 cardNum[lindex $lc $i] down]
       }

   # set up binding, etc
   set data(round) [lindex "1 2 3 4 1" $data(round)] ;# set internal record to this round
   if { [lsearch [list 1 2 3] $data(round)] != "-1" } {
        set data(doing) pass1
        .c bind player0 <Button-1> {doCardUpDown}
        set dir [lindex "XXX Left Right Across" $data(round)]
        set dirL [string tolower $dir]
        setStatus "Select three cards to pass $dirL to $data(name,$data(round))"
        # Now we need to create a button to allow them to pass the cards
        makeButton "Pass $dir" doPassCards disabled
        # We also need the 'AI' to choose cards for each of the other players
        foreach x [list 1 2 3] {
                 # chooseAICardsUp-$data(diff,$x) $x
                 AIchooseCardsUp $x
                }
      } else {
        # we're on round 4
        startPlay
     }

 };# deal

 proc makeButton {text {cmd {}} {state normal}} {

   # make a button .c.btn for the canvas
   set w .c.btn
   catch {destroy $w}
   button $w -text $text -command $cmd -state $state \
             -padx 5 -pady 2 -font [list Helvetica 11]
   set btnX [expr {265-([winfo reqwidth .c.btn]/2)}]
   set btnY [expr {210-([winfo reqheight .c.btn]/2)}]
   .c create window $btnX $btnY -window .c.btn -anchor nw \
                         -tags "passBtn"

 };# makeButton

 proc AIchooseCardsUp {who} {
   global data ai

   # add * to the end to catch errors
   set ptn $ai(up,$data(diff,$who))
   set ptn [linsert $ptn end ?*]

   set cards $data(cards,$who)

   set putUp [list]
   while { [llength $putUp] < 3 } {
           set thisP [lindex $ptn 0]
           set ptn [lrange $ptn 1 end]
           foreach x [lsearch -glob -all $cards $thisP] {
                    lappend putUp [lindex $cards $x]
                    set cards [lreplace $cards $x $x {}]
                   }
         }
   foreach x [lsearch -decreasing $cards {}] {
            set cards [lreplace $cards $x $x]
           }
   set goUp($who,first) $putUp
   set putUp [lrange $putUp 0 2]
   set goUp($who,second) $putUp
   set move [lindex [list {} "15 0" "-15 0" "0 15"] $who]
   foreach x $putUp {
            .c dtag cardNum$x down
            .c addtag up withtag cardNum$x
            eval .c move cardNum$x $move
           }

 };# AIchooseCardsUp

 proc AIgetBestCard {who} {
   global data ai

   # filter cards
   set cards $data(cards,$who)
   if { [lsearch $cards 2c] != "-1" } {
        return "2c";
      }

   # Vars available for {$expr}'s:
   #   first   : 1 or 0 (is this is the first (with 2c) round?)
   #   down    : how many cards are already down (0 - 3)
   #   pot     : list of cards already down
   #   cards   : list of all your cards, in format <num><suit>
   #   hasSuit : 1 or 0 (if there are cards down, can we follow suit on the first one?)
   #   suit    : the suit that lead the round (h/d/c/s), or an empty string if none
   #   high    : the highest card in play which follows suit
   #   myHigh  : the card used for 'HIGHESTSAFE'

   set first [expr {$data(doing)=="play1"}]
   set down [expr {4-[llength [lsearch -all $data(pot) {}]]}]
   set pot $data(pot)
   set suit $data(suit)

   if { ([lsearch -regexp $cards {^.[^h]$}] != "-1" && (!$data(hearts)) || $first ) } {
        # hearts aren't valid atm
        set cards [setdiff $cards [list 2h 3h 4h 5h 6h 7h 8h 9h th jh qh kh ah]]
      }
   if { $first } {
        set cards [setdiff $cards qs]
      }
   if { $down != "0" } {
        set tmp [lsearch -inline -all -regexp $cards "^.$data(suit)$"]
        if { [llength $tmp] > 0 } {
             set hasSuit 1
             set cards $tmp
           } else {
             set hasSuit 0
           }
        unset tmp
      } else {
        set hasSuit 0 ;# make sure var is set
      }

   set high [list]
   foreach x $data(pot) {
            if { $x != "" && [string match *$data(suit) $x] } {
                 lappend high $x
               }
           }
   set high [lindex [lsort -command sortByFace $high] end]

   foreach x $ai(play,$data(diff,$who)) {
            foreach {expr cmd ptn} $x {break;}
            set cards [lsort -command sortByFace $cards]
            if { $hasSuit } {
                 set good 0
                 set goDown [lsort -decreasing -command sortByFace $cards]
                 foreach y $goDown {
                           set myHigh $y
                           if { [numValue $myHigh] < [numValue $high] } {
                                set good 1
                                break;
                              }
                          }
                  if { !$good } {
                       set myHigh ""
                     }
                 unset good
               } else {
                 set myHigh ""
               }

            if { $ptn == "LOWEST" } {
                 set ptn [lindex $cards 0]
               } elseif { $ptn == "HIGHEST" } {
                 set ptn [lindex $cards end]
               } elseif { $ptn == "HIGHESTSAFE" } {
                 if { $down == "0" } {
                      continue;
                    } else {
                      set ptn $myHigh
                    }
               }
            if { [expr $expr] } {
                 if { $cmd == "filter" } {
                      AIgetBestCardFilter cards $ptn
                      continue
                    } elseif { $cmd == "play" } {
                      return $ptn;
                    }
               }
          }

   # just in case...
   return [lindex $cards 0];

 };# AIgetBestCard

 proc AIgetBestCardFilter {var pattern} {

   upvar 1 $var myVar
   set tmp [setdiff $myVar [lsearch -inline -all -glob $myVar $pattern]]
   if { [llength $tmp] > 0 } {
        set myVar $tmp
      }
   return;

 };# AIgetBestCardFilter

 proc doPassCards {} {
   global data coords 

   # turn off binding
   .c bind player0 <Button-1> {}

   switch -- $data(round) {
           "1"  {set dirs "1 3 0 2"}
           "2"  {set dirs "2 0 3 1"}
           "3"  {set dirs "3 2 0 1"}
         }

   foreach x [list 0 1 2 3] {
       set up($x,ids) [.c find withtag "player$x&&up"] ;# ids
       set up($x,faces) [list] ;# face values
       foreach y $up($x,ids) {
                lappend up($x,faces) [set val [fullValue $y]]
                .c dtag $y player$x
                set pos [lsearch $data(cards,$x) $val]
                set data(cards,$x) [lreplace $data(cards,$x) $pos $pos]
              }
   }

   foreach x [list 0 1 2 3] {
            set recip [lindex $dirs $x]
            foreach y $up($x,faces) {
                     lappend data(cards,$recip) $y
                     .c addtag player$recip withtag cardNum$y
                    }
           }
   sortPlayerCards
   foreach x $data(cards,0) {
            .c itemconfig [.c find withtag cardNum$x] -image ::img::$x
           }
   foreach x "$data(cards,1) $data(cards,2) $data(cards,3)" {
            .c itemconfig [.c find withtag cardNum$x] -image ::img::back
           }


   set base1 $coords(tb,base)
   set diff1 $coords(tb,diff)
   set base2 $coords(lr,base)
   set diff2 $coords(lr,diff)
   for {set i 0} {$i < 13} {incr i} {
        .c coords [set c cardNum[lindex $data(cards,0) $i]] [expr {$base1+($i*$diff1)}] 309
        .c raise $c
        .c coords [set c cardNum[lindex $data(cards,3) $i]] [expr {$base1+($i*$diff1)}] 15
        .c raise $c
        .c coords [set c cardNum[lindex $data(cards,1) $i]] 15  [expr {$base2+($i*$diff2)}] 
        .c raise $c
        .c coords [set c cardNum[lindex $data(cards,2) $i]] 444 [expr {$base2+($i*$diff2)}]
        .c raise $c
       }

   set moves [list "0 -15" "15 0" "-15 0" "0 15"]
   foreach x [list 0 1 2 3] {
            foreach y [.c find withtag "(player$x && up)"] {
                      eval .c move $y [lindex $moves $x]
                    }
          }

   set data(doing) "accept"
   makeButton "Accept Cards" doAcceptCards
   setStatus "Click \"Accept Cards\" to continue"


 };# doPassCards

 proc doAcceptCards {} {
   global data

   # here, we need to:
   #   a) set all cards "down" not "up", and move 'em to the right spot
   #   b) set up the bindings for the first round
   #   c) fire off the AI to move, if the player doesn't have the 2 of clubs

   foreach x [.c find withtag "(player0 && up)"] {
            .c dtag $x up
            .c addtag down withtag $x
            .c move $x 0 15
           }
   foreach x [.c find withtag "(player1 && up)"] {
            .c dtag $x up
            .c addtag down withtag $x
            .c move $x -15 0
           }
   foreach x [.c find withtag "(player2 && up)"] {
            .c dtag $x up
            .c addtag down withtag $x
            .c move $x 15 0
           }
   foreach x [.c find withtag "(player3 && up)"] {
            .c dtag $x up
            .c addtag down withtag $x
            .c move $x 0 -15
           }

   destroy .c.btn ;# remove the "accept" button
   startPlay

 };# doAcceptCards

 proc startPlay {{where ""} {aiPause 0}} {
   global data

   set data(doing) play2

   set msg "Select a card to play"

   # OK... let's find the two of clubs, if we can
   foreach x [list 0 1 2 3] {
            if { [lindex $data(cards,$x) 0] == "2c" } {
                 set where $x;
                 set msg "Click the Two of Clubs to being the round"
                 set data(doing) play1
               }
           }
   set data(pot) [list {} {} {} {}]
   set data(suit) {}
   if { $where == "0" } {
        # the human player has the two of clubs
        setStatus "Click the Two of Clubs to begin the round"
        doPlayersTurn
      } else {
        if { $aiPause > 0 } {
             after $aiPause [list runAI $where]
           } else {
             runAI $where
           }
      }

 };# startPlay

 proc runAI {who} {
   global data

   # Start running the AI (ie, computer players start throwing out cards for this round)
   # from player $who (1, 2 or 3). When we get to player 3, we stop for the human
   # player to take his turn, then carry on at player 1. Stop when everyone's had a go.

   setStatus "Waiting for $data(name,$who) to move..."
   update
   set time [lindex [shuffleList [list 200 220 250 300 320 350 500]] 0]
   after $time

   # for all the cards $who, see what an AI of his intelligence would play
   set card [AIgetBestCard $who]
   set len [llength $data(cards,$who)]
   # and actually play it
   doPlayCard $card $who
   doNextPlayer $who

 };# runAI

 proc doNextPlayer {last} {
   global data

   if { [lsearch $data(pot) {}] == "-1" } {
        doEndRound
      } elseif { $last == "2" } {
        doPlayersTurn
      } else {
        after 350 "runAI [lindex [list 1 3 XXX 2] $last]"
      }  

 };# doNextPlayer

 proc doPlayCard {value who} {
   global data

   if { $who != 0 } {
        scan $value "%1s%1s" v1 v2
        set text "$data(name,$who) plays the [spellValue $v1] of [spellSuit $v2]s"
        setStatus $text
      }
   .c raise cardNum$value
   .c addtag inPlay withtag cardNum$value
   .c itemconfigure cardNum$value -image ::img::$value ;# show AI cards
   doMoveCard .c cardNum$value $who
   set pos [lsearch $data(cards,$who) $value]
   if { [string range $value end end] == "h" } {
        set data(hearts) 1
      }
   set data(cards,$who) [lreplace $data(cards,$who) $pos $pos]
   set data(pot) [lreplace $data(pot) $who $who $value]
   if { $data(suit) == "" } {
        set data(suit) [string range $value end end]
      }

 };# doPlayCard

 proc doPlayersTurn {} {
   global data

   .c bind player0 <Button-1> doPlayersTurnSub
   setStatus "Select a card to play"

 };# doPlayersTurn

 proc doPlayersTurnSub {} {
   global data

   # Use 'current' tag to tell which card was clicked (thanks RS!)
   set card [.c find withtag current]
   set v(full) [fullValue $card]
   scan $v(full) "%1s%1s" v(face) v(suit)

   set played [expr {4-[llength [lsearch -all $data(pot) {}]]}]
   set hasNonHearts [expr {[llength [lsearch -all -glob $data(cards,0) "?h"]] != [llength $data(cards,0)]}]
   if { $played == "0" && $data(doing) == "play1" && $v(full) != "2c" } {
        set valid 0
        set msg "You must lead with the 2 of Clubs"
      } elseif { $played == "0" && $v(suit) == "h" && !$data(hearts) && $hasNonHearts} {
        set valid 0
        set msg "Hearts has not been broken. Choose another suit"
      } else {
        set hasSuit [expr {[lsearch -glob $data(cards,0) "?$data(suit)"]!="-1"}]
        if { $hasSuit && $v(suit) != $data(suit) } {
             set valid 0
             set msg "You must follow suit; play a [spellSuit $data(suit)]."
           } elseif { $data(doing) == "play1" && ($v(suit) == "h" || $v(full) == "qs") } {
             set valid 0
             set msg "You cannot play a Point Card in the first round."
           } else {
             set valid 1
           }
      }

   if { $valid } {
        # play the card
        .c bind player0 <Button-1> {}
        setStatus "You play the [spellValue $v(face)] of [spellSuit $v(suit)]s"
        doPlayCard $v(full) 0
        doNextPlayer 0
      } else {
        doErrorClick $card $msg
      }

 };# doPlayersTurnSub

 proc doEndRound {} {
   global data

   # everyone player has played a card; sort scores, check if all cards
   # dealt have been played (and show scores if they have).

   # find who scored highest
   set pot $data(pot)
   foreach x [lsort -decr [setdiff "0 1 2 3" [lsearch -all -glob $pot "?$data(suit)"]]] {
            set pot [lreplace $pot $x $x]
           }
   set pot [lsort -command sortByFace $pot]
   set high [lindex $pot end]
   set player [lsearch $data(pot) $high] ;# $player (0-3) played the highest card

   setStatus ""

   # tally up points
   foreach x $data(pot) {
            if { $x == "qs" || [string range $x end end] == "h" } {
                 lappend data(points,$player) $x
               }
           }

   switch -- $player {
         0 {set x   0 ; set y  25}
         1 {set x -25 ; set y   0}
         2 {set x  25 ; set y   0}
         3 {set x   0 ; set y -25}
        }
   after 450
   for {set i 0} {$i < 20} {incr i} {
        .c move inPlay $x $y
        update
        after 5
       }
   .c delete inPlay

   set cardsLeft [llength $data(cards,0)]

   if { $cardsLeft > 0 } {
        startPlay $player 350
        return;
      }

   foreach x [list 0 1 2 3] {
            if { [llength $data(points,$x)] == "14" } {
                 set not $x
                 break;
               }
           }

   if { [info exists not] } {
        foreach x [setdiff "0 1 2 3" $not] {
                 set last [lindex $data(score,$x) end]
                 incr last 26
                 lappend data(score,$x) $last
                }
        set last [lindex $data(score,$not) end]
        lappend data(score,$not) $last
        set "Duplicating $not's score from the last round..."
      } else {
        foreach x [list 0 1 2 3] {
                 set last [lindex $data(score,$x) end]
                 set points [llength $data(points,$x)]
                 if { [lsearch $data(points,$x) "qs"] != "-1" } {
                      incr points 12
                    }
                 incr last $points
                 lappend data(score,$x) $last
               }
      }

   foreach x [list 0 1 2 3] {
            set data(cards,$x) $data(points,$x)
           }
   sortPlayerCards
   # display player cards. Problem here is they won't necessarily have
   # 13 cards, but we do want them centered on the screen.
   # And the current code for showing a player's hand uses hard-coded values,
   # based on the fact there're always 13 cards to start with...


   foreach x [list 0 1 2 3] {
            if { [lindex $data(score,$x) end] >= $data(winAt) } {
                 set data(playing) 0
                 showScores
                 return;
               }
           }

   showScores deal

 };# doEndRound

 proc doErrorClick {card msg} {
   global data

   set binding [.c bind player0 <Button-1>]
   .c bind player0 <Button-1> {}
   set picture [.c itemcget $card -image]
   .c itemconfigure $card -image ::img::back
   set text [.status cget -text]
   setStatus $msg
   update
   after  300 [list .c itemconfigure $card -image $picture]
   after 1000 [list .c bind player0 <Button-1> $binding]
   set data(statusAfter) [after 1000 [list setStatus $text]]

 };# doErrorClick

 proc setStatus {text} {
   global data

   if { [info exists data(statusAfter)] && $data(statusAfter) != "" } {
        set this $data(statusAfter) ; set data(statusAfter) ""
        foreach x $this {
                 after cancel $this
                }
      }

   .status configure -text $text

 };# setStatus

 proc spellSuit {short} {

   set which [lsearch "c d h s" $short]
   incr which
   return [lindex "$short Club Diamond Heart Spade" $which];

 };# spellSuit

 proc spellValue {val} {

   switch -- $val {
            a {set ret Ace}
            2 {set ret Two}
            3 {set ret Three}
            4 {set ret Four}
            5 {set ret Five}
            6 {set ret Six}
            7 {set ret Seven}
            8 {set ret Eight}
            9 {set ret Nine}
            t {set ret Ten}
            j {set ret Jack}
            q {set ret Queen}
            k {set ret King}
      default {set ret $val}
    }
   return $ret;


 };# spellValue

 proc doMoveCard {c item who {steps 10}} {

   # base measurements, for the center of the screen
   set tox 230
   set toy 162
   # adjust depending on which side the card comes from
   switch $who {
       0 {incr toy 22; #incr tox -5}
       1 {incr tox -22; #incr toy 5}
       2 {incr tox 22; #incr toy -5}
       3 {incr toy -22; #incr tox 5}
      }

   # don't bother with calls to 'global' for speed/data, we only use
   # them once here
   set time $::speed($::data(speed),time)

   scan [$c coords $item] "%s %s" origx origy
   if { ![info exists origx] } {
        puts "Error! \[[info level 0]\] / [$c coords $item]"
        parray ::data *,$who
      }
   if { $origx == $tox && $origy != $toy } {
        set stepx 0
        set stepy [expr {round($steps*1.5)}]
      } elseif { $origy == $toy && $origx != $tox } {
        set stepy 0
        set stepx [expr {round($steps*1.5)}]
      } elseif { $origy == $toy && $origx == $tox } {
        return;
      } else {
        set diffx [expr {abs($origx-$tox)}]
        set diffy [expr {abs($origy-$toy)}]

        if { $diffx > $diffy } {
             set stepy [expr {$steps*1}]
             if { [expr { round(ceil($diffx + $diffy))}] == "0" } {
                  set stepx 0
                } elseif { [catch {expr {$steps*(double($diffx) / $diffy)}} stepx] } {
                  set stepx 1
                }
           } else {
             set stepx [expr {$steps*1}]
             if { [expr {round(ceil($diffx+$diffy))}] == "0" } {
                  set stepy 0
                } elseif { [catch {expr {$steps*(double($diffy) / $diffx)}} stepy] } {
                  set stepy 1
                }
           }
      }

   set dirx ">" ; set diry ">"
   if { $origx > $tox } {
        set stepx [expr {$stepx*-1}] ; set dirx "<"
      }
   if { $origy > $toy } {
        set stepy [expr {$stepy*-1}] ; set diry "<"
      }

   while {1} {
     scan [$c coords $item] "%s %s" nowx nowy
     if { $nowx == $tox && $nowy == $toy } {
          return;
        }
     if { [expr {round(ceil($nowx-$tox))}] == 0 } {
          set stepx 0
        } elseif " [expr {$nowx+$stepx}] $dirx $tox " {
          set stepx [expr {$tox-$nowx}]
        }
     if { [expr {round(ceil($nowy-$toy))}] == 0 } {
          set stepy 0
        } elseif " [expr {$nowy+$stepy}] $diry $toy " {
          set stepy [expr {$toy-$nowy}]
        }
     $c move $item $stepx $stepy
     update idletasks
     after $time
    }

 };# doMoveCard


 proc fullValue {id} {

   set tags [.c gettags $id]
   set tag [lindex $tags [lsearch -glob $tags cardNum*]]
   return [string range $tag end-1 end];

 };# fullValue

 proc shuffleList {list} {

   set length [llength $list]
   for {set i 1} {$i < $length} {incr i} {
         set rand [expr { int( rand() * $length ) }]
         set temp [lindex $list $i]
         lset list $i [lindex $list $rand]
         lset list $rand $temp
       }
   return $list;

 };# shuffleList

 proc setinter {arg1 arg2} {

   set list ""
   foreach x $arg1 {
            if { [lsearch -exact $arg2 $x] != "-1" } {
                 lappend list $x
               }
           }
   return [lsort -unique $list];

 };# setinter

 proc setdiff {arg1 arg2} {
   set list ""
   foreach x $arg1 {
            if { [lsearch -exact $arg2 $x] == "-1" } {
                 lappend list $x
               }
           }
   return [lsort -unique $list];

 };# setdiff

 proc setunion {arg1 arg2} {

   foreach x $arg1 {
            lappend arg2 $x
           }

   return [lsort -unique $arg2];

 };# setunion

 proc doCardUpDown {} {

   # get the card's id
   set card [.c find withtag current]
   if { $card == "" } {
        error "Error finding card in 'doCardUpDown'!"
      }
   if { [lsearch [.c gettags $card] up] != "-1" } {
        .c dtag $card "up"
        .c addtag "down" withtag $card
        .c move $card 0 20
      } elseif { [llength [.c find withtag "player0 && up"]] == "3" } {
        bell -displayof .
      } else {
        .c dtag $card down
        .c addtag up withtag $card
        .c move $card 0 -20
      }

   if { [llength [.c find withtag "(player0 && up)"]] == "3" } {
        .c.btn configure -state normal
      } else {
        .c.btn configure -state disabled
      }

 };# doCardUpDown

 proc showOptions {} {
   global p data speed tmpOpt ai

   set thisCmd [lindex [info level 0] 0]
   if { [info exists dialog(cmd)] && !($dialog(cmd) == "" || $dialog(cmd) == $thisCmd) } {
        return; # already got another dialog up
      }
   set dialog(cmd) $thisCmd
   set dialog(win) .options
   set w $dialog(win)

   bind . <FocusIn> "forceWindow $w"

   catch {destroy $w}
   toplevel $w
   wm withdraw $w
   wm title $w "$p(name) - Options"
   set destroyCmd [list closeDialog $w [list setNewOptions 1]]
   set cancelCmd [list closeDialog $w [list setNewOptions 0]]
   wm protocol $w WM_DELETE_WINDOW $cancelCmd
   .c configure -state disabled
   bind $w <Return> $destroyCmd

   foreach x [list name,1 name,2 name,3 speed] {
         set tmpOpt($x) $data($x)
        }

   pack [frame $w.top] -side top
   pack [frame $w.btm] -side bottom

   set tmpOpt(aiVals) [list]
   foreach x [lsort -int [string map [list text, {}] [array names ai text,*]]] {
              lappend tmpOpt(aiVals) $ai(text,$x)
           }

   set aai [labelframe $w.top.ai -text "Adjust AIs"]  
   foreach x [list 1 2 3] {
             pack [frame $aai.$x] -side top -padx 2 -pady 2
             pack [label $aai.$x.lName -text "Name "] -side left
             pack [entry $aai.$x.eName -textvariable tmpOpt(name,$x)] -side left
             pack [label $aai.$x.lDiff -text "Difficulty  "] -side left
             pack [spinbox $aai.$x.sDiff -values $tmpOpt(aiVals) \
                            -state readonly \
                            -textvariable tmpOpt(aiDiff,$x)] -side left
             $aai.$x.sDiff set $ai(text,$data(diff,$x))
           }
   pack $aai -side left -padx 5 -pady 5

   set as [labelframe $w.btm.speed -text "Animation Speed"]
   foreach x [list 0 1 2] {
            pack [radiobutton $as.$x -variable tmpOpt(speed) \
                              -value $x -text $speed($x,name)] \
                 -side top -anchor nw
          }
   pack $as -side left -padx 20 -pady 5 -fill x

   pack [frame $w.btm.btn] -side left -fill x -padx 20
   pack [button $w.btm.btn.ok -command $destroyCmd -text "OK" \
                              -width 8 -default active] -side top -pady 8
   pack [button $w.btm.btn.cancel -command $cancelCmd -text "Cancel" \
                                  -width 8] -pady 8

   update
   center $w
   wm deiconify $w
   update
   wm resizable $w 0 0
   raise $w
   focus -force $w

   return;

 };# showOptions

 proc setNewOptions {set} {
   global tmpOpt data

   if { $set } {
        # update options
        foreach x [list name,1 name,2 name,3 speed] {
                  set data($x) $tmpOpt($x)
                }
        foreach x [list 1 2 3] {
                  set data(diff,$x) [lsearch $tmpOpt(aiVals) $tmpOpt(aiDiff,$x)]
                }
      }


   # now remove temporary changes
   unset tmpOpt


 };# setNewOptions

 proc forceWindow {w} {

   wm deiconify $w
   raise $w
   bell -displayof .
   focus -force $w

   return -code break;

 };# forceWindow

 proc closeDialog {w {cmd ""}} {

   bind . <FocusIn> {}
   destroy $w
   focus .
   .c configure -state normal
   if { $cmd != "" } {
        uplevel #0 $cmd
      }

 };# closeDialog

 proc showScores {{cmd ""}} {
   global p data dialog

   set thisCmd [lindex [info level 0] 0]
   if { [info exists dialog(cmd)] && !($dialog(cmd) == "" || $dialog(cmd) == $thisCmd) } {
        return; # already got another dialog up
      }
   set dialog(cmd) $thisCmd
   set dialog(win) .scores
   set w $dialog(win)

   bind . <FocusIn> "forceWindow $w"

   catch {destroy $w}
   toplevel $w
   wm withdraw $w
   set destroyCmd [list closeDialog $w $cmd]
   wm protocol $w WM_DELETE_WINDOW $destroyCmd
   .c configure -state disabled


   # see which place we're in for the window title
   set myScore [lindex $data(score,0) end]
   set allScores $myScore
   lappend allScores [lindex $data(score,1) end]
   lappend allScores [lindex $data(score,2) end]
   lappend allScores [lindex $data(score,3) end]
   set allScores [lsort -integer $allScores]
   set bestScore [lindex $allScores 0]
   set worstScore [lindex $allScores end]
   set place [lsearch $allScores $myScore]
   set place [string map "0 First 1 Second 2 Third 3 Last" $place]
   wm title $w "Scores -- $place Place"
   set tmp [label .nameThatWontBeUsed]
   set lFont [$tmp cget -font]
   catch {destroy $tmp}
   set font [font actual "[font actual $lFont] -weight bold"]
   set font2 [font actual "[font actual $font] -overstrike 1"]
   set width 85
   pack [frame $w.top] -side top -fill both

   set allRed 1
   foreach x [list 0 1 2 3] {
            pack [frame $w.top.player$x] -side left -fill y
            set MyHighest [lindex $data(score,$x) end]
            if { $MyHighest == $bestScore } {
                 set color($x) blue
                 set color2($x) blue
               } elseif { $MyHighest >= $data(winAt) } {
                 if { $allRed } {
                      set color($x) red
                    } else {
                      set color($x) black
                    }
                 set color2($x) red
               } else {
                 set color($x) black
                 set color2($x) black
               }                
            pack [label $w.top.player$x.name -foreground $color($x) -font $font \
                            -text $data(name,$x) -width $width -justify center \
                            -compound top -image ::img::blank] \
                 -anchor nw -side top -fill x
            set round 0
            if { [llength $data(score,0)] > 1 } {
                 foreach y [lrange $data(score,$x) 0 end-1] {
                          pack [label $w.top.player$x.r$round -foreground $color($x) \
                                      -font $font2 -text $y -width $width \
                                      -justify center -compound top \
                                      -image ::img::blank] \
                                -anchor nw -side top -fill x
                          incr round
                         }
               }
            pack [label $w.top.player$x.r$round -foreground $color2($x) \
                         -font $font -text [lindex $data(score,$x) end] \
                         -width $width -justify center -compound top \
                         -image ::img::blank] \
                   -anchor nw -side top -fill x
           }

   pack [button $w.top.ok -text "OK" -command $destroyCmd -width 8 -default active] \
           -side left -padx 5 -anchor center
   bind $w <Return> $destroyCmd

   if { $worstScore >= $data(winAt) } {
        pack [label $w.btm -text "Game over! You came in $place Place."] -side bottom
        setStatus "Game over! You came in $place Place."
      } else {
        setStatus "Close the Scores dialog to continue playing."
      }

   update
   center $w
   wm deiconify $w
   update
   wm resizable $w 0 0
   raise $w
   focus -force $w

   return;

 };# showScores

 proc center {win} {
   # Center window $win on the screen

   set w [winfo width $win]
   set h [winfo height $win]

   set sh [winfo screenheight $win]
   set sw [winfo screenwidth $win]

   set reqX [expr {($sw-$w)/2}]
   set reqY [expr {($sh-$h)/2}]

   wm geometry $win +$reqX+$reqY
   update idletasks
   after 10
   return;

 };# center

 proc chk_exit {} {
   global p

   set ans [tk_messageBox -type yesno -icon question \
                          -title "$p(name) Verison $p(ver)" \
                          -message "Are you sure you want to quit?"]
   if { $ans != "no" } {
        exit
      }
 };# chk_exit

 proc showHelp {} {

   aboutHearts
   #abc write me! 

 };# showHelp

 proc aboutHearts {} {
   global p

   set format "%b %e %Y"
   set msg "Hearts was written by Mike Griffiths ([email protected]) "
   append msg "on [clock format $p(firstdate) -format $format]. "
   append msg "It's now at version $p(ver), and was last updated on "
   append msg "[clock format $p(lastdate) -format $format]."

   append msg "\n\nCode, ideas, feedback, etc, were greatfully received from:\n"
   append msg "Richard Suchenwirth, Vince Darley, and especially R. Dale Thomas."
   append msg " Thanks!"

   append msg "\n\nTODO: (see top of code for a more up-to-date list)"
   append msg "\n* Make AIs (name and difficulty) configurable"
   append msg "\n* Make AI names actually show up properly (buggy)"
   append msg "\n* Full help-files"
   tk_messageBox -icon info -title "$p(name) Version $p(ver)" \
                 -message $msg

 };# aboutHearts


  namespace eval ::img {}

  image create photo ::img::blank ;# used for compound [label]s, to get sizes right

  image create photo ::img::2d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVseNAmhwtr8Iq
       1tLzRU84Lja8pJXHwXB5tvY6tdA3K87WPXd4+XGv1ufXRvfDJyhFNLjSd0ZnB4fn+LOmE/flcm
       mZg6mluWk2SbkI93WhmGdaU3ijKuqqCgj7xzo7Z2sqi6tXu0vom9gLvDo8JVzccozMo7xcoutM
       Ah39MU3dYX29ka2d1Z38rcIdHtJMjjEenv693t2u/X4dTz0fXe98v5yPvF/cP/wPWEBfA3cVxH
       XQVsJZC2E1dPUwlrluocqd2+BnYcVAbnISklKh6SCkSHYKfrpTyaKURhyBDGTJEd1EMogseUMi
       6OOMgDmDYYEJMqXKJkBpQjIplJEZlzOV6iQhhqmqp0ZlutpI8ubFURoigtrWFBkbr4HSgAlb7B
       PZlqHW+txarQJcDhMMSLiLN+9dAwUAADs=}
  image create photo ::img::2h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6bBmg8JghvozIpvLGbCKVMV3uV52OlgMr
       rvvtHnu+KCgMDo+30OUKDV9zryc4Wo79vu164dPLlxX0B8inJRVoNkOWJrZn57SVQ6cCGZmnNn
       Mn5WKpSXkItUkjyMk2aiWFQdSneolR6ooHK6tKWPuKW3ur68fWa/sLnDtMXDx7jJw8KLysw+vM
       0xzNAk1NYn39ka3dwd298Q2eND0OIm5ugZ6+bt4+/g4e3z2vXX99T50fve/cv/wvWcBjA4sVHH
       YQWMJeC3U1xPVwV7l03iZSdHQhYpBYfhoLYWyIkcWohbHqxAlhcUerSicPojJhqaAnmFWuDAz0
       SFTGlI8MKduYKNSRRCUX8TRJFCmdf0QVcRh5lGZSmm7URS1x5+WHMkACqsmUc6cqOqCkkqO4oW
       THTyGtoi3S1u3bqm3kzhW19Cq1lWtN3T1X4S+HCQYkGD6M2LCBAgA7}
  image create photo ::img::2c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPcfnQH6hhihJUFMFnlLpjIpRPakz1rTB6vueEaU
       7bl7OVUNLbMcQyu3ilsWPJ6mkNRhdyaBxuslCd899tbnF4cX1JZDSBSFmEhX8wcoBmnleHR0Zw
       jpkJYph/nAIqgHyln1CRpCeYp6xWq35/maOPsqWyuJa6a7y7tW6JsbDDu8CFzccoxMu4xz2/yj
       DA3yPM1Rba2Bnb3EnexNJg1+OO5VPnhOsg2+7t3O/Z4dbz0/XQ9935y/vI/cX/xvWMBgA30V5H
       VQV0I9sdKJaXjuEZWFziBgOjVqUKhKambEXbPIERaXVLTonPHoRWKjlIyM+QnH5x8hlA9biswD
       UxtNdTiJMaQUSdivoBobHVST7M3RL6JOToKT0dyqkAz31VlI1FI3h1OfpotEEQuwsK3COFRDVs
       7VnezYuqvAdcMEAzPr2r07twAAOw==}
  image create photo ::img::2s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPcfnQH6hhihJUFMFnlLpjIpRPqcT6C0d60ypcac
       4nncimc27avccpjDsPRD2SVHoFScpH6Ls+76tAZPwge4R5WFwkdk9aViM4KGJdbm5cKzOESpJg
       cWxvbIaAlXmbkJeRZSQ3pZ2Jf6GcTaehhLCjsbU2vrlxu6y9ubOPirK1xKXGycF4wcqLz80+zc
       gRv9B01dfT2cXTK9jerNbQ3evU2ebX6NTq0eze7svgyPLG9MT2wvjP+r38u/658LoC2BswjGMg
       hsFbhqChdycjTG4ZtvWgxNKkPQ4sU2YPoWiTLXwJSqLxBBhcuCTxChhlMQ7cE2UgIwOnNmJoRA
       J9TET5L87eRpCWDIWxEp6nSHqWjFkUtSiXvGUqIRhJDwULUD6GoykUbHodGaDOXTcmPPVXAojY
       KgtWzbTgBQAAA7}
  image create photo ::img::3d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7wO+MJQbfLb4jsFHHBpDNTzD2noZFRymtSl9fs
       cWvVfFnYqa85VuXSyHNZvWYLo7JaXM7jeu/aod7Op5O01LcSWJgXxoR4wmcW9mZ49wgUCWfpZx
       W3hzenuSYkCHYlmkV1Qcd4ukO4Sunq+gfbpjj7JGubmDu6e1vb6wnshCusQlyM8ovMcrxMpOzc
       Ax1d0mwXOx3aGUyFmdkN+urk6DtFPpxNFliedLjdki55Tms+yT5ujw7urbv/XmNNnSpupwYSpA
       YPoY14CjcEbIiKIUQMDydWhHixYUaFhxsRdqT2MVpIZyN39SlpqxRKDgZNlFkp5h+ITVUK1tlB
       EyapmzRySmyUT+AXnYvCAdKi85Apij9JuGsp7YlSfVKDXhpDdB7Ql01dGpXUxQLRSjI74BlbyQ
       sHtC+08aw5MabKrsvSsMWn4S6SI0PpAqMJN+5OUXqxCa5W4bCHCQYkOH4M2bGBAgA7}
  image create photo ::img::3h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7wO+MJQbfLb4jsFHHBpDNTzD2noZFRypJdj8jl
       NSvNNYVe4Eo8Q3etzK8KDV9vtW+4WD4fm+z3YbnGh0XGhhTINfhkqLfj86MDZufkokV3FidpFU
       mj9jR5uVmJCcQJeCg6GgpIZRGVusqz9PiKh7E4y0h4O/Wn65fbm8QLjDu8+1sMe4xcI7ys0uyM
       ohz9PE0tfZ2cTZwo68qddNfn66RGqh2uaMsCfaK+3mJtqUg79F5vbxgsP8+3PxXoVLdz5KgQLG
       jwG6JXsjrx4wFv4TZ2DyduaGdRA8aMmRg2cmRV8SNIkdhIkvD4ESVHlRlZWnS5bBHMYg2rmKwV
       aiaJiDvH6fxQ092lnx0E1eFEdMPBnkhDCl0KVAedpDg1PWXShCoqqxIL6cMHUR3YHfeeHtJatg
       QptGL3NOHCNsy4nhy0YpVqlO5Fp2q9BQUx127ChoJXmSoMUCZfZ0fgLka29jFNn5InIu4l4qaH
       CQYkeP4M2rOBAgA7}
  image create photo ::img::3c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqZWw8axGzLyfdIujfce/xr5hh0gkIgMYhbJZm3JvCWcys0xp6BenzNb
       UyfksmDfMHnsTfKiMrY6PJzKt214T2LHHacqPL1l50bil1eXIQhCSGSU1Zc1gihlBpnyZ7UTVC
       iZ6dCl6bMDgcZXxnlGZZgZUvOJipJH6qoHaylbUmubmlu6y9uLhPuLJQzcSux4HGecfLvMnOj8
       /BMtzRE8inrtGFvsdLpIjRV5F/46PqvV6KtM2f5WHNHNLgEOjlc/H68MX8mqDf1GiMB/ANOVG+
       ZN3btqXRg2dAgIYkSJCCk2s/gK40WNhQU5TvP4gSAxbmI4khS5Sw6rCyht6WsZUqG5TiUDeqIJ
       85JAVcPmsDw4TeW5IjJzQrknjpE9ekkDAbXmBxAtfg/k2VtJEl3CrE2hbJXZFMxXroMm/Rzbco
       tRqGTLQs2WM01NjG7W5lIKcq5dV6HOejyz16C6wMII/xKR1woFQowbO54AoAAAOw==}
  image create photo ::img::3s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqZWw8axGzLyfdIujfce/xr5hh0gkIgMYhbJZm3JxAmdz81RlaBWNVeU
       gqqbdkmwZjjacpintSwrkhy/JUh5Gk605yR6L3fGxyYl6IYVmMeG5vU1YjN09mW4E9Tn1+YIKF
       gn9CCjuEmJqXUTFrI1SkpYiQpitMr6own7KDvb82pbgpvbWssL+IsYTDvss1vM5Yusq7zc6+zZ
       LDV6zCwdDRa55lQWdy0pSrzZCYqIJ057bvxNdoh+675uTvc+yHhZbcXePnlZzp3vGcBC3qABM5
       gGYUKFexg2dMgMYkSJAinGsvgh4DKNfLMInqLokSOqFI3E7PtFTqQ+j3vKqFyZyuXJjG44seyF
       5qWNktoW8dAZr2UGoHxmJJunbtA4CP/WJVW6tBu4RDNxhvNZ6CWUTw+3aN0asMvXrVCPaqk6VN
       HYNQTXAkyLUQlcjDtM0sXkFmmpuBzyshLBlwuFQIQLG15goAAAOw==}
  image create photo ::img::4d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbaMLDy7GJwPOdnbd24DvzwfL+gUVO7CWDHZsalXBadRygxypnKtKiR
       9MrtMXNYFe8yzvpmRNZZ3AGz5GavrYwGh+P6+gsvRmeit8fx5kGYBpJYiGS3yNgYmNiVUcg4SF
       mZd9l3Qug3uQf66bkp+Ne2glpipaoGmBkL4rqGqDiHu/mluyFJ8mv4OEsFdBZc3PKYzHzI7OT8
       XLUsDU1dPY2dHK2dw90t8w2uPN4kXr6LrnOuTnvdHgpP8y7fSl/vjh9+r9/B3o/hH0ALAgcWBH
       iwX0J9C/E1rPdQXkR4E9tVVHcRXcZyphvHdQT3sVtIbSOxlax2UlrKZyub8QM4pWWQMg2RIQJm
       K8RLWDqIiRqT8NWqnL6uENxpyehQoUlVFSQlS2lRLE9NlYA6NSDSn0xvYX3xZGukX2PTQfrq1W
       q+UqzOSr2jq2rbD2h5OVpKNCqxXkHzsu2VZ8NCnzhHeao5M63Tre3GRJFJJgZVxuqEQmaD5/KW
       uJTR8e2sEDTDCgNJTDAgIbXq1akNFAAAOw==}
  image create photo ::img::4h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbaMLDy7GJwPOdnbd24DvzwfL+gUVO7CWDHZsalXBadRygxevFlsSBt
       jwuyXotXqfdTLpd428zYfOa83yT21z2md/J64QjPtMUXtzFItPZnw2VI+MIYGJaI9jjl+Ihoct
       nFiCI5aUiiWZeoBAbX95m386fVyKfyuvqFOtsYqiZ7ans6c9jCqioHKWOKWVtsE1TZqYhMlcPm
       /EzjuTRNZXeNXa3tlN1dxQ1u9D0OVG4OLZ6uzu697s6CHq8yT898fw6fb8xP7d8OoAx7AjkQLI
       hkH8INBxdeaOgwhMKIDydSlHhxVMZIvRv9dPQA0WHIhSMRlix4UmBKgCv9teT3Ml/MezPp1Yx3
       013Oa5V2PgPj04kvCymXrTAq6MxJabeQxio59Oiupxab7UpVjCqsYJm4JoVDtKquqFhxCTJTsS
       uoTWs1lhDlAa7HppziUupXNtaeu1+fWKSE9Nggqwnf8t0rd1hauqXMFkrjWHFYtY2vWmViVivl
       vnQ5C44StEkg0GLvYYYU+kjU1EYIsVYm+TUQyRg/GixNsoLtJxQk+P4N3LeBAgA7}
  image create photo ::img::4c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqaay8YsfCXyrdKhjfcgvfAJOzCbboh08Y5IodLh4cWkudGuQVRMtS1r
       hlljdIPVDdiCrZJPR65ZrHajvOHz1R6Vz9XXPsmYQvVDNxhRCLH31SZhx4gXpijoSBgpUaKzhu
       aYx3hJmKlpdEf5ojUCmgcJGIkW6mkF+4jx9MAhyDcTW1t6+ypbGgrV5OQl2ju8xYvctEi6LPP7
       fBMtnVz9TH1dpo2cze35Pewd/jFOnnU+ZJ4OzN6z7g4ZP+08D25vjd+ln8u/78+mHsA3AxMVHH
       Twj8CEmhiWW8gQ3jyJ8Si6s8gOYzqNpuc4kvMYDuQ3kdxIajOpbpFDP7MgXgzEEiW9XeZQ+aJk
       aAc0eL1yZlviSiGsoA1XNZxjTM+bpJL0RJvEyVIdTC6D5bS1aeqnqqMQZenUEifXrmmi7lLIB1
       BVtSzR5jp2qJ7ScWWRKg3WLg7cr3ePKnrb1+wZJjUDPzxGcyyrnXKFyfRBy2/CQEUUb5Tz+F3T
       lbcy4yBsmZ/nbhVWvqAwKbXq1RMAFAAAOw==}
  image create photo ::img::4s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqaay8YsfCXyrdKhjfcgvfAJOzCbboh08Y5IodLhGfWkM+mDyDzxWlRM
       1hKMhXPdWtnLqI5RZ8XmqoXGX1sznBSZlyTnt4TNlvfzt9fnx/fB95Vx1KdoaEc4yNiomGiJ17
       W24zaSFhXkuYkVWcdpBWbK4RaSukjp+nmIo1oYO3orgzt5utukS5Ui+tukU0tMW3aMDMzsnPrs
       /Bp9M00tBnldna2N3V3M/U0mPmRNnnnuY54Oyp7svg3fLF9FX28/jq+nb8vf788L4CWBAQmuCi
       dwHT+F+hjic2gPIj2J8ijCs+gOIzuNn+k4nvNIDqQ0YwgvkjQobIcZgnAg+hp0rGVJOjMPQpIZ
       CNWpTEpiURpjLo0oVlg69VJGVCVPSTaZuoK1VFBRp2DoFEIECmvBS1KzQgB09StMsehyNjArK5
       LVOGfZplUL1e0yr8uYuExKZq7dmmj40pwahqLfN3RZiUT2xMrgb8KKLO625jAxvJJ/qaoMzo/B
       dptXVejMiMKj0aRLTwBQAAA7}
  image create photo ::img::5d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbCAMcDS9euHNe6es/7zxu9fMAiqCczKjXI5PLpysBARF01uJl6clZt
       S+j1Zp0sHKt3EUtx1xK7fQSzOW81tY61mOn4Ux3uEUXyZ9dBCMgh+HFYqMGIyCSUtkVocngiyM
       X3pvKXN6Tp2Gc5WtIUurbXOZfHaUi2ooopJzsGOdgYlwZrCHQbKAn6NBwS/EI8rIicbLwM1eys
       pBxtNE0NZH29k61tA92tww3+NV79XU6O/iOuTsJutfxOgyp9vlNrPuy6JO9XWtSP1L58Si7VK8
       joIEJPCheyamiEIcSIDydSpAfQ3r1ctOs03ovnsd2HgCIjlfR2kgbJlBZWsnSZEuZJmSVpirTZ
       Dqc6neh4lvMZ7QrQZaFk/hqESxNMjP5uuXKJTyDHpyFT8XJT0SoXkhKxDtR6geu/O19TYQhoMO
       lYDEKrgqpEFq47t2/Lvuqqq2nWuFHrnqVb9+qitftW2uXbKAwRqIK95lIcFvCuo5QgNTLqa3Ai
       yeAKc+6saqgzL6KJLv6szTPLTWRKX3NNTcRqFBQk2L6N27aBAgA7}
  image create photo ::img::5h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft4wD1T5ZsEiaCgzKjPI5HJ5y/ykuleV5MRdSVHM
       9JKbhbE5bfY4soKJ1nKYzXmbz57h2vuWe/J69Lr8x7e1IQjoFwg3V/hRSNfR1dE4qCH59QEZ2U
       i2WIIZpwkiiZJmVkrFZ8LZmZbkiHryOto2Rkmr0ier6DibCLt7GFvbe2vZQ4pLGDS8ijf5BNTl
       /MwDuTy943mtlK1dxN0NTQr+9D1eU27Ogp4uJM4etP7OLO/tTn9uf6+er9++lPULn5IxtuDxYy
       EHGbaDKypZa8GQmKh6RhwaiReq0sWIzxIFbePoS5XBfx4/PglG8WTBjdMMQQFJQ9rIaw/D9aMG
       8yYHjDqZ5OzpE+g+oRCJ+jOaCymXn0Z5EnUqFCq9XlLfDaqazmXVmiVq9pEqs2uxZrSguuy47J
       VThZt2qWWKMqPCVlUwimRUspmpEDkn4r1bpy+ov3kPyR38ye8lmBb3aCQLZ13jTIq/Mn5MGfGX
       L5IJrhRG1+VmNvE8B4Qs5uxYC3avnD7FxtUyrOMsK4XNmenN3Lc/XaANznZvXaR1RzUOVMTwRx
       QkOH8O3bmBAgA7}
  image create photo ::img::5c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqZWw8axGzLyfdI0zpf62AuCfgqhMUMsHo87TFOTuEVZzxeQs5gpVb9L
       1Zrl2sTe67cWzo3V5TR0jYL7rugz2O5xx8Wj6HSY4oeHRAcYYQixR1hYd9gh8ffRpAdpV8mIVU
       hZmcdJMrnVFtiI2Ec6V4ZWs/gCNgcEO+gU+5CJGXcLeAfzFqnmi9ootyRDFKJK3PMEnCzFyNys
       FT0tO12ca81Tnd2CzX39vbQdHkweNG4u6Z2uyI6D7r4B/5s8/2qvXj+sva6lp9yPyr53AQVCIy
       gukMKCnxg2dATQyKVzDtVBoijREz8mukX6hELIEZYrIfge6mv2L2I8ZytZtpT2UmBMmTPJ1GRz
       s11OXTsb9vT5c+SsoEJT9fSDbNVOR/ZSPlyWSKlBZ5iYOpxC61WrpKsEGb1nyukspJt8bZv4SO
       Opr6Wi2pIwFhQuuGkvjn3zy21dvfnoCQr4lyvPbgctWgo1j1deaIoTD+zktIsVgx+fMjaD2V/T
       ymyH+qPaKRPRxhXNrSlpOjNRz1KPni4djvTqtLOxVKjthMKl3bx7TwBQAAA7}
  image create photo ::img::5s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqYhw8ay28i2So/3jusuDwTlFMGiZkg0Kn8YJkd3g7akF+fR2qOifFBs
       NclahLnfTm0q7lnOV3bpoV6DM5EtfGuHkCRac/8psRf49tc26MdHeLTB5/WVKEhn1VgoBykklf
       aYEPIyxyg2AhNp+ZnE5djE2elZKVmq2RaV6oEUq7o6lnti+6k0Wybq+hv3SGzktHu8Q7vMPOxs
       0xw9A009dv07nV3MDbTtrRj+bT2OuVyOTaxcBJ7lzpuex84DL+hGjqzXLv9xWd+v1iGAQSgVDA
       joHzByCqUhBEVEmK9q/GiU4neMXj5ttBMJmnv2EWRIhyNJloxh76QclepYxnPZDeY5meJozrTp
       7yE3ZSnD8dRJLYWwMjjvpLwVT6NRhBrtIBoF7tRFTBZbSdK0DYbEprBEtUo2J2ujnA1/Emp4dW
       CVK2fVGqpD6t4+snNvUq379E5cufgE6sXFBN5fvhPZ2OtL+M+PxQGRzvND9AXKnsYgg5pRLycg
       nF27AA2K9fNOz5zZruRsWDS6UZJLW3bNqAJsOhQo2b6NewKAAgA7}
  image create photo ::img::6d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbYAA/sTLtWDNO6asf7f+rJgESQEFdMZo5IpVJ4yXWGQCpvdKNKN75f
       9xrVWl9NGm5Mgma5Z7Sp7fYwv2E4C75NY7P0evuOF7QHgtdHWBi3YfOBmHfYWLIokAh5UqlHRh
       m4UijoF9fJuRmJZcd2ZvbnOal66ihqaFTaelr1isl3m5HIObMY6wQkyRusI1lcfIzspLyc1OxM
       BB39M01tPHhdZK3Nwt0NBr6dLY5dLk1+7p2uHt5LRNzxrQGsUi/H7oGqs7/6RmsPoCxLowiaIm
       VQIIlQCEtccogIRb5dDx9FxLXw4j+GzwM3KrTYD2PGgwlDdvR4j9FHeRM5mISlCx+geCPXzaDp
       0FfLdid52vSpE2hQoS12EtUw7+iFpEpDGG1qgalSqUepErUqFGu5MVrB0cGKcyHIpU8phtUXk9
       U+qi8D1jMllaTbMmabMOWIkm6mLXcL5n2bJ2lFkCu5Pm10FjFOwRoh4pX5N+0Uv7ms9JXrWODB
       uCsJu9nCt+ynHW1ZhSE705am01FFvyjCCzSVrtQ2u97aj7bX2bfVfdEdLSRwZ3qHlzMuTgRUIx
       QkOH8O3bmBAgA7}
  image create photo ::img::6h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbYAA/sTLtWDNO6asf7f+rJgESQEFdMZo5IpVJ4yWWaAiqIajWObsNq
       l4vEST9iWRm19Ua/ZfPZ0/aKS1Duqx2H49/a9dy/56MXKNgH+CVHiKihWPhhQ9a4OCVJl3alSN
       KIZrKJScgJJscY2FkaGuYIxleyx7PlSvqnkhcEi8cxu6KLips7NqMamig8BTRpeVfstAM5yvx0
       eQPt5EzNbH0drX2dzU3k/f0TLq5DXj5zjt4ivd7c7l4DH8+iTk9if/84/zuWNdjln4d8xNwIlO
       WD1b5WZ2r1S8WrQz5JyA6dMvQpE0BQ6fj4UfLUgWIyTZU2XlzIkGMklRgzxlp5EmVKXyRfdqRF
       c2ZEmaZ2ugQ2EueymkCDCt0xlCetY/L0vXNqziNUpVOHVbV1lV3WV1uxdjX6daDUsBYIdjWrbx
       FaeqrWutPldtqPiqsKxU1aM6Qvtz6JIou11mFPgYDHflT4UxjEIWZZwhQ8yq7hujn1OhY72Kbl
       mJj9cj58mcPEkpsdw50s0qTNWqNBPmTpr0vrxXjjOIx9gWDDvsoS8sJddvIqQIOJU1qTWzhbPn
       HRMVcOdUzzt9KhxztN1njy7FS5YxDhfcMEAxLKmz9f3kABADs=}
  image create photo ::img::6c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqaYwsayay3yrdIJzp/62AuCfjCh8QUMMY7M34XG2c2gvqSzY2Nlc9Yu
       dsndory1pKbRAlef6nO7hOYipV96mAo3k3Z8fDTVp/fhVwcxJDHmJihhp4i4pyemxOjBSOiWIW
       kpOPd4mFnUOTIaWjg6eYlZNqkECvSaOldTxvlF6/BXm6c7CPuwITnWmHcbx8RDFMJ63IM3zHzj
       HAu9Rk09bR3Nm42Dza21/R3jLV5dLkR+DqmOHs5O/I7sHt87NZ87fu+aLgoOHnwIYL00Aiu9WU
       ew1C6FCBPq65cmDKtnwABZ1JeOUq8I14kWcjRlqGFATxU1fvIYMhdJg1X4oApngxTFihKVLQs4
       66bImvkesunJj81MlvS0FTV6NF9SpUsjNpXz1FzUnVOJVj15dWBWnau2cm111SWdoN8+kn0JdF
       HIs19blsQFVljOobJs2rkYNyMMmdNiooX4E+UvkIOLgRK2ct9Hw0gQL377+KveyJDhUt040Vug
       trb+nS34t+sdupVrGSNrzDGhK3FbMhxJkfXn15BmyvYpVBuv215P4z6nhi071l5vCi9b6jg3hc
       rjNX8nojgwCpuqW78+AUABADs=}
  image create photo ::img::6s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqaYwsayay3yrdIJzp/62AuCfjCh8QUMMY7M34XGSd6kuaSzs5tCfdYu
       tsiytbw16nM5FnPPamSj+l6zt+UHCiInScyb/f0eoSfxJ+jnsUcXZcaHyOc2KJiR9Rh4iFgC1a
       YEM4L2xbk5+UEEVgd0Kvp5akpop+gIGOPiqqHJlYqJGscU5NQJyxtGhRuMs0VcPAOc3JPILOT8
       3LwsrVzNG31trW2UzT32DU0dnjvTvJ1m7P0ljFy43jcu6XlbWl5vO+pQhU+vTxspV6V/eO69A6
       gKoSWBkBIWHCKvEcGB+hhSjGcIosVOyqG8Lflljx3DGqwgzioZMJ0WebVYUlLmbiE5HvBmVrSp
       BWdOnbJc8kTyU1hQcEPzFE15VGNSpEtFNq0z7ymbqE9T/DpTdZ+SdjUxOnPVdZ7PlrDAsiyiax
       xalKYm1fzYcRlcf23eXrKUcSrQgw9fNXzRcqNCsX9l8t2Ft+/Nw/78DlbUL5/jxoYFh42LrO5Y
       xIBCtr0C5/JLyGWwtlMHDLToJ+cMg16qeiy3Xatnq6lN7rVUt7Jti8J9zR5wnCKkRqHQKLny5R
       MAFAAAOw==}
  image create photo ::img::7d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7w9eMJPzdMcIjcFIGzpBOzxDWf1OixMxVme6PM
       daPTfkvLsVfGy7W6TE/OXHpvQeU5U86Swzl1rD7/h8IGohdmUrinEcWBmKjR6HhR5leo0ihotF
       e5sknGpgYWaClK4oIXCgqY6vnyRhn5scoqJXtmxwmr+IkWm3RLN2hI9TTpOyw5+CRMnOzLW9U8
       dMpM1Zm0mEaKhF1z6cStivgdveN9TV6uPQROY72Nnl67Dh+fu3ZMi8+ehh9Cj2WMxT5U0uxB+f
       foWTuFsw65WijPw8A7D0dNK4WQYsRY3eokZqTV0Y24hhxHxoFEsmTIVxeJfAS5UWRLlyfcnZzp
       0SLDmhVTkoj5cycwVQV/5cwT8F6/fhOX2njpVEXTqFKhUvV5VcjUrBi5jvN6Duw7sfPIarVqNs
       NWs1vWihXmFkdSlsiIijF6ai1QQkJbgdqK82bfvC9tBg2caqphvoHz1RXcmJHJR2ozonRojibk
       nodX6uIZmWXfVgdBc9687Exp06kxjyb9mHW21qpjgy7Kt3K7uX50pz3p+zfHz8KHBy8eqo0/5K
       KbxM1KmHlV6T0qUKdDQYL27dy1GygAADs=}
  image create photo ::img::7h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbWAMcDS9OuIMf1ft7w9eMJPzdMcIjcFIGzpBOzxDWf1OgxI2NeP9mX
       DjXCTo05aZdbzo2JYeZGPYOj0+rScuuF1z16Oem+ltf31TFY9tfm9WZIyMHY6BHl+Bgo9miXOD
       dIcolp0qnZB6ZlpmH4uTlqFge5eojqpypquqcSK6s32QqLhyj4Slt5suv722s0JFz8S3N2hgSo
       HMr6LGTVXHfLI4kNap25Qymtws0inlS+cg4NHs7olK7+jt7uPktPdY+fXwtfLwTMHxVSA0P8S1
       bQQryEQxaSOVKND6GIkQ5a0tGvEB2K/xwcuvqhLViWkB0tapmn0VvFEutSomTDktI0fSs5yZSo
       soPHjyRF0qxp8xSInDpNPswV8yfQpBmHIlU1rGlQjkt5jcN5DKa5rEltGHWE0CvDsTvHsihrlt
       zXtC3Wsu3h9q0nuQLp7rPbMC7eonvz9v32d5gGtHshEbYL7PCLsC4JKSYGq3GXwwGjEptFuOfM
       RX7QKsVaeeSXskKnhsR4ZCdRn09BqH4pWfPgry11weZrOlXs1m6g0L65m+QWj7U535aSgXg2qU
       dRV0bu2yo1yM2n98JDeiL1iycnzQ4c8zt4NEr0Iq6k+C3EKenZxmqf9r358Qbpn61gHwUFCfz7
       +wTnb0ABADs=}
  image create photo ::img::7c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqZWw8axGzLyfdL6iPcfjQH6hhnhi0dMXoxG5ZCJ9CRuUxYUtJgprNEa
       1qaChbvNIjh3RpG7GzE6OzaT4K1tfTyaVr/51H7OJiXBB6Gm8XckEbikuHi4htjoWKNYIkSXON
       ghaQkJpUdZFrTVhyjISOk1ysMqasaaiJbp9krlehpKy2jayfs1m+ZkuxuSKuzziXwrk4yDSbSs
       9ax8rEstbN0TLb0dp6Tn1w34rXn91HiexGmuXMne7pcLPSn9Ejt/fO8kXssxre+tji9C9PwVbB
       MM0L8fBx8tFPRwU8NXdt5UNMRlIEON6BLxpOJIDNxEVb0KbTQ5rmQEiOUYqnFnEKZLlSgRysSl
       sljEWTovznxpzxifoCBHMePX705GpDyV5nvK9KksqfmiUk15dd/IrBi5qtvq9VdYfGPTlX13du
       OjtEDlsIXYE4lVqStJ4ok6ra7VohID6d1apVXDwADD9UH1Mt5OeaUu+ey2LmbLZ5DR9Z38eGJk
       my2FIqaZjeKDrr0+bhPpWaxAvD4Rur3Ld1Xr10eWxt4126hu2EhDf65tmxu9K/WOFiT+VvXv5A
       ZdM8e5+/la4Haly94z96qb7Gy5pxVhHQUFSeTLm58AoAAAOw==}
  image create photo ::img::7s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqZWw8axGzLyfdL6iPcfjQH6hhnhi0dMXoxG5ZCJ9ERl01y1WcSitL8p
       95igKljCL6xlU5WrQYfabc12IttHvCRha/LbOoTEh6e3lzcIJiG4t1FoWBMIsnZV2PXY1RZ2GT
       aSNrcQ4ogJiXS2hMkzJupyGip66MnBSvbV6YpKGGuFC7hK6uSz8znre1faiDJ8lGW8uzzTjKb7
       +5xrmyT81vs0zQxHdC1I571N+ScuXonznYqofc4u7Z6y+Qrv/nJoPV6HrF4kVa3ImTN9lwRC65
       dJH8Js4ADuwsapIb1Efhh2stNHYrd/4OEearR4q5zHdR1hTRpJruSik624qQz50qTGYBNXjpnn
       UGbDe6C48cypE1o6hMkOEgSl8CiyjEv5KW3aEqovolJRVjV3VQnVrLS4YvVaD2yPrVljkb1q9i
       lUeTVKif2oKmk0lybPUJ0L7mKab6h4LeuLLyEwl5uQNrKBMy2ra4xSiiwmhzBGvTElwQVZ7J2l
       y0CVPd4sOSLljaBD4/UMEgrEmiQ7q15NFHPbyKvFnH4t9MZtNlvVfirt9i1F2sL/BS3elRBy40
       WbL4cJ5GzTXtLfVhcr4rkaCoy6e/8+AUABADs=}
  image create photo ::img::8d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJsZ2yzmnRNyRcw1meaPf
       FaiJCcWtbpS5se7UqqU3bd2e4vJPVYqhg036egfKltHHMohiBtK3h5hoWJJIRvKoyAF10/Gogl
       kCOOlFR6jHZQQpGLpSuNn1CRd4Gtem+oqFN9Oa6kkb1pm5O2Rmm5bkB8I5PLVTaXx6fFHZROrk
       jASMJK0lG304bdpkrYOa5F3L2K29JlnupBlufr2ars7NfvwOP0UtJH6urKN/GQmQhT9WY3r9af
       cBH59cJAbmweZKISWEs+ottGiHIiuI/xc5ZuyIMSG5hhofrot00pejlCJZTgTpsaW8jzChrQx5
       cM7MmzFz6pQo0ybNnwYXCR36syA/JSX/IQpYhlmUpTMcRixatSkooFnv7QxitSZWWPHA5dMqlq
       uoZyOroSWqlmzZnv3ewh0r1+tRsHZ5URXYN9OzDGGlosxS+IUwo0AST1XqYVXiuJcYjpJSGOdh
       y1Mx2zXLE1+gsKA3KyRl1WXktoIIo5X0F/at0HQrfn2ZdmvMVqRvB2X4LnPt33WANA5M2bYf41
       cc7006C02IwD8WVx5N3fBGxNm1P5Tu2Pv3NxbCiyd/pnz388HXs6dl/rxK+dEq0K9GQYL+/fz1
       GwIoAAA7}
  image create photo ::img::8h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJsZ2yzmnRNwRI40CQdks
       afm7hnNWcaesjaFGYabRmlZ7ykV6CRzF0u3zPfrLFrfl93dG6DUUGJdxiKjRKAcC1Qf5AbmVaF
       LJ1bim2cl56Dmm9Uj46cfDRhb5VliSqjr26tqK6ii5uscBN9Or4hK7YbtCfBfIdyZkJls7RaVY
       +uw0eTMNfZ1tUa3dxN2N9M0biTsOVM4hbsqKrsdunB5tCJds/g6voe4OOs//oV/rFCV/mUhcYs
       bo0jFYCgeKAnRLmMNdCxk+tESwoEWK/wYFVozYbhjHjyARhgqpRF5HfCdN/lO5cgdLjcWW1YAJ
       LgjAnCx28gSG8+cMn8NsDg1KSSamUSp+FUOZ8qnTki2QrqPVEuoTq/vqYZSYqyRWkRfDbgRrD2
       0Hnwe/Zox31mNauTQnqu1Kdy1XQXcD9s3AFo3Xq2oGw40raGXhqXXdurr1mKlQIUQnm7Wscy9m
       LPk0b5Z2oTJmp6I5B3E5K1JpUjrwxVrNOOJcOaUNZ0X42jPfpW4Zv9vmuWxvrIuvEN003HbUuM
       rxNge8t63dkY1nUydMl3T0hv3KJguM3Hq9c8a30xvrnK8eNyE0C46NPfH6NsBPdJm5L3L6+p8V
       iylZ/RN5oek2mYD89dcHewDy9B2BBXqxIIIR9icCgj1RIEGGGm6YoQEFAAA7}
  image create photo ::img::8c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1jAwpXPX5CRwU5ZxKVXMtC3h
       NdOw2lRXJHNMRqO86nM01yYh30WuuJqGj6Z4ED/V5yckGCEnsVY3WCOhmHhoCGa3+NjBaFap+G
       bZGMlYYkYHsyeJyTfJmRW0iHXkwhPoUfV6GTv7sAGbhirYettJ+0ka3OvgNAQVsmrsc5m7vJX4
       TAQsPb1bzXxdq00YQ739/SMMqTtOaF7bRRe8zlvuLN4ufhcOzo17HzS6v8YPj98PgqFCwwZSyu
       KJ3DmCpQ6mM8gQoUNMAfecgphMHsB+/0d6cUymrKA6KvVSqSspMV8kbM9Qsuzy0pjLmIhOqnR0
       U9Udkjl1susYshvIf3UqZkTnBtBFkfEm/or4cKFAe1PdSfXVECpFdlWphmHa7Y9KsUGt6pn5VI
       xNtMSIbjzrFp/GrXDZnmJrd27Tnqx08fTGl2ZUwdkIj1xpWE/RxGFD2mVJMC/SvTjHPI67TW6x
       vkJtffSs6o/PhUfjilqqD1S+TXu7hlptqTVW1K24an3atSxnr3E0z57HkexP4WBtb/mnqefXd8
       CW4+191SSr53pTNmcz2ihgeGUCYy7lNTtje2fGK/xiXjr69IunB47p/D18SY/Z108vgn0LCpv6
       +wb/PwEABQAAOw==}
  image create photo ::img::8s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1jAwpXPX7AhvU5VxKUWyErGr
       lqmYhVvCa6axtVnL6rNjjc5No+AHCiK/R0iSquebtQfSd1fSB1gnYejnV0P4d7joxhgJ+Tg4Nx
       YUNtLGYdNJB7mpecQVYoo4ycN6ytcat+HapfoD65nYuDhb6IjrhAMUCpykxUvcY1yLTMbsvOwc
       rMvnM41Ja/2anZV2rActu130q10qKRe7Sz76nW5r11sO/453Lv+GKfiqrv9ZeX1vnr9LtvjVC6
       Ro3z1U60ilCGWOm7ojqcSNuRUPjjRx/OG6gRv40U00ZCFHrjEJrCRKe+hU5kqDbSOtbxR9lasZ
       UWI+LhC95erk66PQfyD7sdtpdBzBo/SSrnLa0aC7ovgUBmz4c6rOqz7DCQTYLqclrFFbdh171p
       9Hjl5dYiHDduDMLtXErFTi9u5WvXpE8tUI5m+hYaYEcy0MN29Qqqfyps2HsEnIixVvorKZNYhB
       hqKU8gxahc7QpZ6T8hqdMPJBJuOkVmX8mmnT2LA770VLu+1X2bNt1wYkOi7ox09zxnKpFSkiL8
       IrNneo0ww6mdHZzKiL27pheYG3F0T81rta8IpNMhefXTP6yN3X53GfowJ8PhQO2b+Pf4GBAgA7}
  image create photo ::img::9d -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJmb5OzqbRJx0c91lUSNj
       jhMThltdDTBj1X55ZcwYbd2a4vJhO22m1z/6vfL+BkfH0sc21+eHhchVghjI55h4YfPT4ahyWU
       L56KZH6MkYxSka9zkYepqHZ7qm2ZWqesYqqeECqyom6+qla5ZE+9cJPEWGRnxMeaycrEzM3Oz0
       TDIMQv3UdmgN1gsi7bE6A757ckteaph9jgk63shuXm6XHv+92A6ZOR15j/+uX8ivnzh39Dh4U1
       RwD8CAArndcFjQILZ/EFsJctjhoKWK/wO9sNBoaWPCGSBXLExSEp6/ICkJ2kPS0mXEjxODnIRZ
       U81MmuHqdXxBMic+nxhHdRMqsqhSo/JUMr1B9GmweRZlVm1qVeq2ndeo/kzK1ULKSMPIMty6su
       HXWkhjrQV7NWPbi2/R1u3qFKNaFTFJaaNbzKRegjwJ/QoKrVnfxOgYT1nsGEsGyJGF4TV5WOCk
       uQhz+Tm1+G5UuEf6hkUYFzRnXqLppl4T82ZWjpervZzNNMvYfbjjsvXq2666o3m1ov7ZKnZa2/
       HAmR6+ruOo0MEp1uEG2ThzuLXJZRYuhXJkIEDEOyYffnVlOEzEql/f/uFm+NFhv6f/MJB5/PP5
       7w4Q4V8NFEhAYIEGEmhAAQA7}
  image create photo ::img::9h -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXAMPsTLtCjNP6acuWvwt6eoNXUYjcEI3JJmb5OzqbRJzUCMyVtLcY
       b4T1YqxFMslsLtkywK7VzeWQy2nQGjuezz/6PWn9ltcXtzEYaAcW1aZoeFXYuNhx1wEZyVaplg
       gCedaIosnnuSn6l+glJqhnYvjFCKfRpxLbCneYinriRzsLS5jrW8poe+m4gktbazkmVPx5OzV1
       dwwtNNlMvTOJHQ26ze29rU2JCixHPj3UPZ5T54E2nL71Dk/M3h7fyemOGZxPaq4PkbyAAP/hG0
       XwUUJJ6gry2scq0yqDDlVJnPgwVMYP/+LW3UP4kWNDiOU0lmTIYhgXQvQEplw07xi6finrnbp3
       jWaQSjlbjDTGr9pPWUGDdAS6sMZQd70iLptxFKJNi3hYRHU4VeVJlES16hKm7OBAnGS/6gRp1i
       vVsyQzyqTI1d/GYkk5XAW7MetasW0HmXQqcixghXCVLMW7t2lhDXeT0WkZ5ibkDI2TWUb7eKbh
       X1k0Kw6DDNw30dAqkw59uiblw6kBrm79EpdpNsz+ApldlYbmWbhr6S7Hm/WtsH2bBe8asngkez
       5MD1Y+TfKFynX1Tn4tODHhvHZZ87TNnbH3otv91nsyvjritHEaf4feDp37mJ4d22eyOftl2/vB
       ojnnLMVWqYCW1XTCwRYFfiEciGBnBiL4i4K9peagBROepsuFGLbHIITdeWhUBSBCRYEEJp6Ioo
       kGFAAAOw==}
  image create photo ::img::9c -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1oJMpXIH6yRwUxbSxolaFdus
       MNPYalHfYNnMbWFz3zF4zXaTrlVpWowkx2ujOmgKmPdzZhcxJ6H3Vibht8Eo6KVIxzhIeSjZ9l
       iJeInhBtN35wHKBxl5FBrq6cLTOMqKSmgX6+BoSib71wpRJKoi12no5AMVwjc8JOiKfKN8y6wG
       Lf0s3UNdSHV9+usbp92rBqwr/hrefUg+y51eeD6Ilzv+/bYXGK94vKyOziv/kOivX6xVlnSVeC
       REC8KD99AIC1NKmEGGgCI6hJIi1bx5/8eMdaTlp8quhqti6LPohaQtePjsYepCpCAxlfwkWqMZ
       8F8ynJtsZmPp0NgYdtvW9Wo1EB9MikeSEjza9GOnmkJFDeWikea3ha9klqspMCWniTlrdR37jm
       LYdjqnosu3MaNcnByDmnSX1tvJs3uLqu0rFjC4dXj51l1ijifBw4jDZVOMqhozxpLdVnZM7/Ld
       M5QlV6zTeVo/xkTZHjVLWXBXWzo5inQ6LmrIVI3jfi4cNOvLkmDbBg77SSVXtsB9bdVk2LfUyH
       /N9nRO9q1LptMZAr0ulrde0nB2M98OGSLUweDhmTofHjdf4tqNNnsmPrTnhPQ1LzVin02Txvmt
       fxuXX018kNl3VX87GUhMBQjOQAFCDj4I4QQAFAAAOw==}
  image create photo ::img::9s -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbXwsayGzLyfdL6iPff/uL5hhqghUZM1oJMpXIH8whvUxXS1kngtCwk
       xvtVzMSt6hF8jlqxuak681g31mF0LV6KtFESksScBcjx59eXJ1j0h5hmCAIGqLh41/hTxVVHuR
       F5iGkJM8I2+Dlplxj0NnnEWOjCQ1bIiFq3VVoZ+wqHK1cbeHvp5AMEKglMN1uc5PWL3MPL3Eyc
       FTwWs1wWrYmda83H7ah9qnso+71LLuVgPJ6+PsfXDcEaz9nOXqlH/02Ivl8uj/9iW6Ze/+al6W
       TQVsEQpISosTFMnCh4qlL5CldR4sQu/2jwbKsGLpwnj7E4JhtIJeS9hNCIbBriDB7AljAVuVQZ
       SExEbyZvtlp1kyPPoRoVXstZiqdRfa6ArsyoNFc9hqGy6WyYb+VMqyiz1SPJdStBpmIFlvX6ta
       qos2gLutNqz1/aqAjPbZRZdK3apV+F5r3bhi5SnDGt0sK5pNo0kM9qemocTBliyGeoOpwMGU9h
       s2O8aUYsmN9gMptJO+XX1KJII2RBYUWdYqfkX4VfjgZ7R6rbuGFZVgwzd29d3mNbv4VNvDjc47
       eFt90duuE5XJt9VZdu58116X49dyT8F7byJkdTLgq1PWCz5eQplyGf3n3i+fHds65P+T7mzGzw
       5xanvp98pgjoUgUENkNBJAouyOAEABQAADs=}
  image create photo ::img::ad -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbZwMay5WLwjJ+1NfT5D9oJejegUbPz+Y5M2uiiLDaNteVQOs1VicQs
       9ckNe38uKw87ZqW40G5atnZfzW+VsP7FT+9ovf3Z1udXksQ22AIYRncYlKjIqOMoBkkIOLdI2S
       Ekl9moIdi5cReKYkkaeapmmkoyyurh+soRK4u0Wjt7i2u769kLq/vrJKwZDASqZZzDeUSLM8nk
       LKOIHCPNQo05c72SXY3Y5K1trdwtPg7OdN5cjp0d3W5ODZ81T19veI//TZ7G309MVLxa3AgOlF
       UQ4cFXCRkuZNUQ4sNUESlOPFUR40VSZRkPoenohxlIPNBCbCT5aFgveyZ/sRxZpyTMmHRmxuQV
       EGdODDbDyTHUU91PN0GFvihS9Ii3C0mVplSJy4qZpk6vZKBqJMrVkyg/cqXplVgfrEoF7tx6lm
       eFtBMMSHgLN+5bAwUAADs=}
  image create photo ::img::ah -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbawMZyOL7zfbrYwOP+p7vwYL+iJijo9YxMWkZJbBaDy2RUiqMOh9if
       bgvuZmvW51XMcm2FXHRM3bZW3SokfUq+G+36MRsW15dTs7YmOGgBZnhYAqd4xujhqBjZSPZYab
       mzmAmUJ9ep+RQqStryaVqaioK66umKCKsqK9lKe2R7i8Gnu5vb6wTMwStMLLPI6WdESen1u4KJ
       6WMM/Sit/GN9fUOtot2M7fMdNv1cPY7HND7HbX5uvef+Tp4ute3cRR8vFrjP39XtVkBaA2UVhH
       XQVcJVC1M1NPWQVMRQEztVzHTxDqSMYm76ceTH6SOWayKbaLNQUh28YLROspRVqE1KlYCqzLxz
       k05ONztnIJMp79DPJT19nrEZVOjKl7C2FTXKxlcvKBmeQmVn1ejGpJH6MW25IavPsFwZlnVYQV
       hVChLaun3b1kABADs=}
  image create photo ::img::ac -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbayMaym8HyfdJXgvekbuH5hhxgCkgkGkfIpE9HazpvUMY0GXVch9ma
       bUuFKXZC8ExcHpvPa7O0/fwG3/DSslxvyRf52J3e19HFAxjoNfdgaIeWqAjiEuH4aEMYUiiJhC
       f5kXm5afkZFso2yuJZeoiqcqo615oj9+rB2kqraouKW6q7GMvl+6v5u9Uwxctp5XQ8m4wFHCcc
       Z3xE/WxqfR05rCSxTObcvR0sIT7OZBnth50dhOjs5l20fpaOE+94r5hvuB/Y3/cvT8A6A+EUbH
       NwTUJ4srzEWthDGER159LM0wfBlSxtVxP1NOqoBx0ojQ3RLSmJ6CRKPhhAUnxxcWPMVy5RWIQ0
       E+BNNCVVjpRZjCRQNUJpUvpScxWTPTn5LU21shNKd1BXbkja4mrTXFt3VZh6lUK3sWTLPjBQAA
       A7}
  image create photo ::img::as -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbZyMZyCGP1jJfuleQ+uLP0fsRNMBUsFo+jpPK3i96ePumCuoQ9sFDt
       1MllIYc0cPg0tk7PKjO7un535VRnnI7+uvHA25XfUtMA2OY1SKhjyICYKOSQcwfH00QDuTeTRI
       apUKcXibKodBnDyZn1VFr2GSja46qJM5qXRjvXRfsq23fblNur6wEc7BuiarxpWUtsSrrap9xr
       zMwqU/paDC1s49xhPVZW6c2toT2ZDb4MS1Iu7Ut5JV4YiPuLq1oLOn+fi02fllfoHzx099Cp6z
       bOXMFvDKPBA6bNnTSC4n7lA1XPkUCD3y68NcLI0d5DfgeNJOTYLkJKcOtOkhQJ02JJci7xLcRW
       UKPFlrP2jQw5aOaLmvUWbYHAchfGou6MBhW6LaBORSGnary41FPHrbD+8AyI9OrUR1hnkc3pc9
       pXMaHMZWoLsJNXIuxazrXV6hDdk4m27GVkCXAsvoKHFrZr+DAQmooR9pvU2OShunL8Un5jmTAf
       vZcrT+vsWU/kYIxHlzX9ATQj1XIFDWGNiowp2LETV0Kd1jXusX4005ESdXc40cK/BS9uxzcedb
       S5xGmO5bnywtB/VxDOYYIBCdy7e+duoAAAOw==}
  image create photo ::img::jd -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP8A////AP///////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyw30AN+4vNU27q+6Xe9HJAU1tKJSdBQkl9BO
       8xmtTodV6HVj6XolI9mTegIFbDUneq12Ns3h8nhYNrOTeLS7Pvvw/XI8dGFDVG17H2lScUKGbx
       xngpI0f0g8i0yVUo8aX5UEggSQjJkFmp0OpmZ8oJKinaQ7m6qrAaa0HkGtoVyxalgMuLm3ticN
       JQ20k5clsbuvyMJ8xcTGLckny4LNmRq7NK/BdUHUxaOdyto9p1yB29HW0sTSXLjfNdDsqN68yM
       nCJeZNq1fnHrhe3fgd7DSggMNjkAS2K2Nuwz1o3EIEUYTK/xTEiOXMeKzzDqHGP1hKNGwSTCIq
       YwJu4eJoclUcgAEFesxli1ifXL78rBwmrpiNgQN64twUlCdOpT0jUWrA44HGpE2lDN0EQV1SYy
       OJ6kN2c9qZYw8mQVD1MSDWhFdpYft6zQK8ljKKjeXUMYIpunUj+DMXlW6BtycJjXzwF0IzmFSL
       iquhNyskvWdTZa6Q9OvDnAySHt5Lui5go6HPdlZ9NmCqh5XhwnncWPPXhrgP6x4a1d/D0ZYnxt
       s8OfXq4/F2aiYd5iWx07VZI/cNGyxim5lCi8Zm27h0a9Gq75Tth+z2h9Az584NPvmt64DKUh65
       svt3rHUXx05cSk453P+MbTZdYKgBR14uK81HlW75qccaWVGxNR5/Jynz32hp1cYeWpOJBh9Pik
       mFWX2+0aAhcRGe4Rpz/SHxX1e2mOigNXNRYiCFdvxlo1VpxZggjM+hwxdZLZ4H420+hhWMYSLe
       iF1ckWA22G6pYegAgEGuGFxfrn12DXJnKRejlTp6yCKU23GoEmtVZmjkOhM+uYp+Yq4JZprJMK
       ngmTlCBZl1u2GIZ5VBXrPlXX5CiNxqYQbYoQOHnsFWS0ouKiBmbYaVkZyALBbel/c5qF+ag0W6
       UnWguRXoem1eSRgsB85CqWZ2horkqASaWpuXsDHKGaabxRlff3sWRddjj/WoX57/fApFX2+YDs
       ajq8vux6lTFEVVlLRgUAtRjM0iKM01y6oFaWTTCAtii1xN6hUYUjg57FXspEUZVfPJ9JS6TMUa
       EXqbZqOXR/t+2K9GiYAEG7bz7Dvkwx5wFGGy4zTMErgdpATxDMz4dko5T3HHMTB7cXARSC8R5N
       NlSiH2TDvNKdSPazWB/Ie2EJ1MJMIy85APLumGRBBYYkiyDxOWaCNkzS4draUAOkPsVRJScth0
       wBO+7PRsXgnJIdEr+xEnTRtDPQlGj5TDibVOHDyb2a5cJpJVc4eLSc8DYPRSF9lFmnHHkExNiS
       8dl90IID0YQoXB5/yiiOGy8KRHHm3goQ9JTYmvUzIKoVV+xxpo1CuEJVsD4snpdpHudhZKGFI6
       60S4vjPsRcg+JO0r2D4W7iroznvsNM3+OwyACz+8ErcfH0MGyiOPAerQR0+BAgkAADs=}
  image create photo ::img::jh -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP8A////AAAA/////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyw30AN+4vNU27q+6Xe9HJAU1tKJSdBQkl9BO
       8xmtTodV6HVj6XolI9mTegIFkjWn08ZGl1Fvc3k8lDU457YavXbOaQQbBGkacR9iPHUDZQEFcX
       k7MzstiYGDPIVhb5hci4UFjp2JozSUo2uJJZphniWgb1+mpKeGHk1SDq6hn429u1xIs7Sra5ZP
       J2y8XI7MvYUnf8KYtbiobUnIas+8zaEt0BqX0gOB1HjIs6rgrozdzh0GguOBqkzopCW5jbu+/Y
       fh8zLZEyCOR7lW+2C5+yUl2Cx69UIgSlUC4atl/X61MKBD/xgeYtYUtXu0EJodD/g+DhSC5YxJ
       WAxK2vpAUaVEQ1gq1trnKOOjW6iACbzJylBCd+9sony2aB1RJq0wvnJH6FkuWzWcyikq5dVRBo
       kaTL2IlRFIM1GXgWqWh1TCpPnAml0pMa1VB17d8tTYae7Tuj/Z7F0LgbDXoVYjboXK6IGNmGsj
       Sz7ctLE6xYfM9UXk4DHkyT3vXX2A2ZbmQouorOnsR8K1zggznc6nqYHqUrb36M5quw7p2UDVhr
       5d2SWE4rfv+F0scWxP4rZhVYZuuXQ1JszGgsWC25Nx6t5oAx8fcx9y7nKbcm9K+Nz4MGrZ5x2i
       HuyMzxdfvqdrfDIkJP+5BTMYWYnRZYZs5bk2CX0ThHfVX8zpQs1/d6x2CEMVQpgZOAnF9U0e0j
       XlITQOZhjhhnh449WHcYknloo/7XfTN+xIaFlbJj2TX4nBbWMPjc68tQ2OtOWzI4cunYUiRjay
       qJx+RzLFUGa1ceiNPiCK8qFyKw5A4ImmkTThMZxd+NxhBm5o5QQMMijBmaEpGWaK/lExnRADgr
       WijHIAKZl9k3yHJ096htZjkTPS+Rx6Lqk3A3IrfkklE+Kx85+ASX63HmQvTmkafEVu92h0m126
       GqeSfkqpOoBiKtdxsI0q1qG0jrjJecnk2pqog5o4qUT1MILbdoIpeN6odqkKLGn/HqbRqX+UxB
       pXstcty6pVnoGmbbTMJpnmTL425tWe+BFWLB7UngOqtxENRixv5DbBLpgN6WRiL4T2Bu9eO6XL
       BXCoTWhYYOy9Jem8vx5I5Jzy+jSVUf76uKxxSABrS0kHR4zogUNVhYshSLUnhV051dpBTUpx04
       8OyqXlsckscaISlz6lKOytVcEcksxPSuXPJ/y0khLMBZ1iHTvuqHUzQaSUAzDT0tAjcM0Sjriz
       s08XPQpEO8lU42X30AKw1k3LJp7XHakRtjUb/zMOJzki/fPXyfxhTA+1vk2IUV5XzayGM+mNTS
       xKByxnQ/jg8640CgUdB89PVwI11vRJIqDNXoY7tPfTqEAkDmp96CF6WhV21AOZoMJxzR65ouHv
       rcFI3GcstFcghLJZLKGa7LkXsXvbvf/w+6HBrzD8bMWrcHzyRMjMO/MvOA889EUQT30MGVyvxA
       UK1O799xQokAAAOw==}
  image create photo ::img::jc -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAAD/AP//AAD//////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyzlwbcsbbe8rnp+8IMqnIQqPHaMRyVQCmdDi
       8xetOn+WrBYyknmf01lgMBiTx2Y0uVxmdYFf6odxrqfZ7HBpqU/CHzltHg1ndA5lhoM6M29YU2
       lJBARma5WWRBFJjSKUj5NbepmMnH1ii5JLJQUBq6uKgKMhPg0zBbZgqKWsu66vSpt7tFK3WKu0
       x627psHMRcCwqsS1xy0Myb3BFM6kzsfD2EXYj9d/WSWNE9Hg1mDTyVLmpVTp1uLv2+G85Rbn3P
       S29pQ1U6Vv34mDOuRJWYgQnjh2IApKE1YuBzABBgIYqDXx/1aBc8II1nPSR+GeZcXgtDKmaCUX
       eL+4cQKo8haaGWWMGTvYr8vFOTTL4Tl0JuhJRDJlmYS4Jw8lRGsiuIpaEtycpT2bqrGFCM0fgg
       LIFBhwMoc0pW9oqKETtVk1YgMAkn1A8+eghVrZcIXDsC5XW9lYnY24lOnapzje7gwrN3DdpBHB
       5h2zt9qJnHXFknE8+OqbiU4rIbwsmIYlzlYV+VR2mPLYansAZo67mW5n1aRsGiIUtQ2aZLTick
       VduEtQCMJzrpXtdyxg26n9GLfJDPEu5TuDy+UtOLqY6eKKJO/enflU2ng83pY+kxgY6yOzU2Mr
       +jHa9ix5usZsnrkXsf9jFbXed/jp1xRVr+20SlxgWNKVfYSBB9tle9EkSAlIBcIVUuTZlURd+o
       nWoTc4iQYShJ4VqN9+u1TT1nvjgdQhZEDpRkhlfHUS24I4OoAibrKAiKGJ8yhmjIn6/chekO6Z
       sZcYF/52S3Ig7eidHEzu5CAYCTbAI30cnjgglhFZCOAZZvXnX4wrKklglk8VQoFLvBVi0Yz3wb
       mhk7WpuRKPr+GDZ4QFyincWIHpoxxi1Q2aIpw0/PVReRb+xqJUY+IFqXbD+XjdQXjI6dVIxakY
       HHrqGIXQeIb45kqpm7Zwmo8LVidiHuGwROMgx8mKanljnHTja07lk9WjZdpIYaf/I5V1YCG4ig
       RrsvIJIKk6DfXDYrFlTVtjtYfO1SQ8Q0J700t5JvsIhX0mNOp43Hbj4TRXrSEtUVBRxW2L85Kp
       yFwImdnVHRQ5CmRkJKzY4oKPIPKYwUsibEpitvHrh0cqhTSQsxKjJIZuD/HkUq5WhZGKReRq64
       VN9/AaUotfZXvyNoCM9gU5WORjT5OZzCyjOQS13JM+aVrWM1Zb6CyQoLqSbHPNSGuh9DpmmUzd
       zyr7lKgoQfM7X8n2QePze6NtrM+rRsNcNNkUaz1xVURfhUqa68yC1dtK4Cw3AY6MfXffJGkxSY
       kXEiqLH9BI4eDiZcxd4rptc+JLKF0NXHlXVXNECcvYV1FOsB11ZAhkHBzPwUKoauTRm+ia4EW6
       UqDEzo+m/lYhxBW2NxGKSbm7gHvvt+8O/BG/D3+DxqUbHwPyPitfQ/POx5BB9MRjIPv12FOgQA
       IAOw==}
  image create photo ::img::js -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AAAA/wD//////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vyzlwbcsbbe8rnp+8IMqnIQqPHaMRyVQCmdDi
       8xetOn+WrBYyknmfYPAgMCiTyeO02dzrAr+5IoEgRp/XdvZnOnNLdSUldAN0OWMMh4gNeh4Ne3
       5/UycBg4WGZZiZmXyRnJxJn32UZJadFY1cfSJLqpSlRUl0sqOoEaohRHxhjSVvs7OgE3Grkj6+
       r4GTk7+0praBxFg4y6RTBY3MpVmw0b0P3K6Se9lvWtC4yra7w9ijwN4W5yAtwsfrLdfu+s4S8n
       vpXKgREtcrHzlTyb6FotIrIaxRA2/lyEYHIDhH/lBxMBDA/4CoSsXAzNE3Z2SwR93+tDIpUZAs
       imEwttS4Cl6xDodgIsMFiecuB9cEbKo4K1yKhVK6JLW5aFO4lxWP9pwHjcYWYUpTUk2X8Co9bz
       W1PnJklZxZrjKTTP2XKBnTbZN6HeIlttGhMfBKaNqrCS0mjGn/uTnzVRmhMgQQKz4cd1IiM6OQ
       NiSW0yKagYkzU/oLtimDkqwY4qpcqHG1zHMws2kMeSSgeZIbFLVZCfHmw6vpyS5ZMbZvZsp6k9
       WtzO3uBztBdQEu+3Nj48aR8ybq203RyuHQEjf91EHUurFcC43s3Ovn6dSrr+pthijoGCOFD1KP
       rsWY9BD56r+P/jMj2P+DtXceaObp450da6GSGHmR9RbVT8H1lxhn4M0wIWb9FTdNLw6W5xxkCS
       aBGXIMXjXdh21VOFGD/e2nH3nUDcAhffPcdyBLPfCGYnkhzsDiiQXKR8aMyflo3Y29daVdhOWR
       FtpSuLino0LQPdcgie+gs5x0ZDk0HEA8Ojebin8ASZxei8miWIlEBkZTfechghdrqpWkWmGCRI
       YXmRy6BplftmWmWm70VDQXn00+ZiVuEza6ppWKPDlZfX9wRpaLe1l2F40o+TgXd1dFR1iP7JxE
       1lkHWfUVosSAGipaGSkXVqsFbvcQqdyQMKA7hjqVihe4xjoOdTFiokEBqsbBKV3/ur5EEiKydi
       KsaFQFM018vBrVkrYhGTmrj7ro+Is2xixY2kYdectTXlUNh22WpW5GSzkOTboVlb8ehOwbFtqo
       pEKxvdVPnswIkA+9clgCZrI1bSHHs9VCufBwSjlM8D7MusTvW1BWu83DBXcQlBz+xjRNwAJ/A/
       I+eFqoMLjqRnyKhRA35AkYasXcacrthFyqxrkC+C3H1sYzUcnB3uwmmpjuSfK84K6z7kl7/JkI
       YWccDTVC9u48UxFrpJHH2BO9vBQcQ3cRtth4/OX0hmcjDGetdJ/8ZhVIXIF3EzfvzffdfvOgd+
       BBDE74DYFJeriuiUu2eA2KPx5DBpIfcYECB3VnXrcCCQAAOw==}
  image create photo ::img::qd -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/////////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqw00Dd94eQp1n/+snW02ABpHsiGveGx6ksyl
       c7qBbpTUppWYnW6lOot4DEEKo8NTgMButwO0nVpH2MXM3LzcXV/DB3OBbHYgURyEH1A9THt8g3
       FVagx1IjVPeESWGnZrb36QJZthlB+LHYhPqJqcjgyAOocOpBwFiwWHmB1pVZ51caglgH4dtYsD
       t6IiMlenvG6uci0OwsMbxbZVuUuGrH2+r5Lhv7PGpqHKdtfI5yXPcMvJwdSU5cbsIDLXNMiNk3
       9z2TbV8JepXjx8Z8w1GvQuFKcqA6sJ0FdjHbBYGijya1en/w+kZQ0EjktXzmIudQE7uXp171QP
       ghmxBQwBT1O8BqAabpL2TdisbVhaptLVDCJLHUf3rIR5JajQUxdn/nMWkmowpswuoUMi8gHHPr
       IoyYpalCZZh7/ChOvEcK3ESIjOwkv0L1DVnSClvZ3UB9dWZR/d3oU7Cp4flQ61JQIkNqReCQ6Z
       sh2EV3Eqgl7Xqg3XjhPMw5ah+mksLbFdxwyhcpw7FB1YUo4db1bTNi5ouXI9+hP8WMZovXB9h4
       71bvTrCTu9afYM0KwZn8Vr021L2ndp3Eigu6JTOyzOYWNFlf5r9rCwImFbmb+tUk5i8giVn+dx
       GIIn9K/BBnqKUdnxhv/o1cfXbvh1JBYs7sGXSGS+wMFDZ/RN5hF9npRxEF1mjPVKgPTstt47YJ
       mWoHPKmDYhfif45M4/ykGGHToP+PKghxHUQABjIF4XxnDZ2CUjivUM0AaOKQrolYKX2eegP0Ky
       EeQwRRBpGo+V+ZijkBFJ0FeURrKmWokTyDePOyg+CN2USBalYwMNRsfmdqChR6QDVLKj5SMR8g
       EnPfRJ2RxCXEXm0CCUadfdllfV9xOGYEY2IIF86adhhET2lSYuAD1Kh5sSVlgkpy/ShOAm+nU2
       5p1bvqkTiaJytllnmibJEJHC1Omqo7TthpeSA+rmZX+ivrrTprDR6eKHi7bWKmj/xCFWxnK+/W
       ers7ZRltmUy3U0GKNmwRYiqZxlJltmpV5K2FeUgXsdcr2ZGio+gyoXS4jbzgbcVOYeFKu6O+7a
       bGRp5dtSvUaO4qlaSIFjawoCrhajtdOw9O6CHhiiLjjp4pUxvvxFEigHNl18pp21duVXVh6XCL
       IPvKyEY79XdQXSytzIRYtMsL4UbF3pkrRPysFOVFLLf0iclzz+WBtTD/zYvDTO5oFiJ1qRwlbQ
       Kk4HmYZHUhOiRhzeWC0008OWqLUl9XUNlYobW1MR0PACVQ7Rv4SLdNgPNVXzxxT9THRxjwlU9S
       yIWPzrTH0fc4pudIEdad5OwaLy034fIilGeNHpGVDIZQd9NT70JsNi1XnLDTfFNPsXm1Gd9nx1
       Gk4T5d+BgTguYYJKwP6xC7edw6IjSoMBxuG7kmG8BXkMf1YXLuTOyPLMq+B859H/ML3k1VuPxv
       PZA3E98d2jMDf24d9gDvnlHwF++jFkwL4RFyhw/Pz0i6FAAgA7}
  image create photo ::img::qh -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/////////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqw00Dd94eQp1n/+snW02ABpHsiGveGx6ksyl
       c7qBbpTUppWYnW6lOot4DEEKo8NdqHXaNQaEeFyNon++aRG7xH8TAnNXNAUbBTVVZkQ9THYcDj
       pVDHByZzWEhj58emqLiCCAbRpqkn9/ij6LNo0dMhyHmk+gdGwBNIFLqbmwn6t5dwQDqw6Tlbmd
       q47InqyAwQ1hYbamxrrKomeXvqzAzm20b3AnmNSDu3cnqIeNDNyjjtFq48aE5rG4qfXN4ct9z4
       XkA+hZg0QtHzdTot6FoUOOXj1mAuRZMmjLTat+/k514ndO/6M2UQcR3rmW8d4rjvY0ctT351sV
       hA9cZVK4hiEWO/rYuXkpsoyikZs6REnoCJgskSXmtIow41MiPdtOtJTFbmrPmFCDZo1EIGkDOV
       NBwXoUCRLRmkiSlSoS9gEwAVP5ASoF8+kannO6znVACa6EojXcab0bpuXapH2JldzV7NbAiyPn
       gs0bp0gtSt4SZuZrKtRgXl+/hgXLd08VGpJDe0arZzJpi6plJUPdV0dnu6CpivVWumU/1FgRr+
       aFxLXShddKyahFO5DbnZ/PKddJS7PsNrQDlwhm9mGy4sZD1Voue3uwg84gLcV9DpThZzlBis8O
       XDzRx4+N+66KGpp5lv/pmQYdazWNRgtd3SxHX3/+NMjeE+F5Y5gzSklyHhwMjsUdfmYYFhc75x
       lVVUsXdgONhelFByFpJjaT02htARfNIhxuolOGRxlFl4fM7YMdjTWuQUlgEs51nj7hWIjZj8Ah
       1VFrKG44Yn3chPMHMfv1mNqDzKQiXpV7pXalUrcxpxuXjnhJS31VlVaRj5JIdguBvBB5opLjpU
       bKmN+QCVlKd42HyI/AXJmgUklmGR6anjTIRg+Gwrbndbr5piIr96l32ZvcnSjNgYteqtBOvNUQ
       aR8wVVSYTnGJukx1pHBqkaVxohoqnUCpt6GpZvaz3zWrsvonRFnp1saQ/dlW3iP/I04WpFN7RT
       JMgMq29WVpiwEKLa3IXkSdscnp92xkVHX7zrdychbbsN9BdWxY6mkCqlE8UCKud2UVWxlSOIlm
       GWn1HuWgq2f1yG8Eei0Z7Y49MXofZbNI21WSCAds6VnEbVWdtO5UuqQpF2P8JGE1keVVm7EljJ
       PD3jHiU2H8vrcPTU21S7JMUbwc7cN4YirIUOyitBFJy13F20ErqwTsVh4BTZYyRs7siS7dOfUz
       PhwP1yDST0SUCyFBnyXR0Mgx9pKqmBYUtiZjL+IQchGDhPY7aj+mQds9OJSn1qcl2XU6qtiNt9
       tJscnbjE4SVQ4mS98FkA9Rw/fNZcOO+/fji2lUZnKaiSs+VL6OY85IZQHOUl7XuGg7ki5Uu2ei
       vF6RPPTaxQTkdSZyvq5p0LWnYbciDo3Dk4t7iGfNGYI0bnUKcopIatVAKeG7GWRUPwYX2K/dhQ
       vSu7x9E90r/30O4UM//g3la38+CekPtD77WKv/vgizuz9/DPbfv4IJ+h9xgQLWC6AAxaCABAAA
       Ow==}
  image create photo ::img::qc -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP//////AP8AAAD//////////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqz1wbZcnTt98Ksu4nnD0ywWHSE9xA0w6lzOj
       Mwk9Tqk5YNHC7UKIWeNvQC6bCQxCad2SxsBRZthMRwfUbR2p8XErwzsnAXQMA3Z4cU19DkpwUX
       wzM2aDBIdskX4cER2Zmn6QWXWHeFKQiztMjpxZTGeWa6shm5qqeqmShXZ3jzp3nb2fqqhiA5Sj
       bIBof4JtWsKMkSVllQ1qsNdppRbRsqx8rNJk1HeItzjKj9u/iRJsxeRp1qVyvukV1yDNm4XF47
       v4oNBQA0YB3yKC387pqsRNCbWBNJiBcpTnBz1yM9DpqRZP/2I0U+usCCgQoAAtetbOiUk3Slum
       kE1MYYsX5V0pm77g2WskQhHPaqQIGCqGs584ePWI1Oqjg2EWoZWIGjtaYpxGnzCzZosg1FClqE
       cdPHxq52Q3MHfKREwrSpA0X8pyDmx4sOcgomTAcdxac1A9cl/n2SUySSoyQYF7qdWSbeNSh1/R
       LK4I1a1fm8U4hXv3mFNkank5I4Z4t18hfeHyDO75edwksQ6kum4w2eJqWVL7zX5dGrOdd2qxGf
       wDJrdff3RqGzsNjVFWwn65CqUA3N9Yt5du54ue/F3U2My9PtSgK2JnTXhxlkZKm3vgfgLGpnpu
       N+9pzEYf+JbsPXDz8/9M6GIccKa1V51kd/0j0Era9TGbfrIBZyB/D6jhD13EsRZfPP7x44t6lF
       ymG2ALDheLhhumBJpUEOonVkbkQXOWXZExs2F7gdUYWoKI7CJfgw5hFNeGO6pVI2gvtlEjfd2k
       EWOM7bUIXl4MxWiNRtspBVeOFOYHIoVA+Wchk/k8wlB5PEp4H4L2gacTkJplpGCCumEW3YcSGt
       cYnCdV6B+V00WZS4L30cYZn/MFKORx3xUK1Hqx7QggJlxZ+ZWdhHrFDyHRTZodMwItFOidEGga
       gWGIUroFc40amtyjA/p0oizCQeodfm0WxuFlfnkKyKZRrogTmq+1hmVdtHq4UXT//ImWGDN4kT
       jXjN0E58adhiFmiGWuSksmU9/oQk9tVZFmWW7BpQrQZ4jxGsZCE21GqK8BHtIugmyAdYY+m4qr
       rjZzbVnhNJGFBUF59M4qV1xdfUdUVOiccOG3PLHWUcOkPrytxP5SHKcnAdnbHsiHXtiQTLKaBb
       ImVv0npxH+NkSSSXIoxQss4YrskZzkIfwRt3H0tJNESob6Sw7WlUX0Wlp2UW5SKEMJj30INdM0
       Fy8zGI1Vv3G7D0xVz1KVM6lwna43qqV8C9aKao00UGdfJAbYvHyDVcdumd0rN8PQDbLaOaF2Y1
       qnmWNL0LT+LdOst4wyydov+W0P4DFxHA8hcD9/IjlCQntzo8Nx74R4massTpxFhxBo7eRh2Fz6
       HhVJnEZ3VFtRBek12Jj37LRnZnvrdnkhvNO/j36FEIwZfzwPyYu0PPNzK/987tE7Pz31NVt/fQ
       xfaL+9C31/f4Xa4ttgQvlIXKDA8Oy3z4UCCQAAOw==}
  image create photo ::img::qs -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AAD//////////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vqz1wbZcnTt98Ksu4nnD0ywWHSE9xA0w6lzOj
       Mwk9Tqk5YNHC7UKIWeNP1CqXBIMAgUFor1ngKDM7UzrOrXRbvf9IOX92UTt0HWZjem59hk1McY
       NadYwnhQF6bG+TjWdkgQ11an+UUpSJfKJfgI+MoJlynpaJbmISqp2GuKGAAzqjDAOXp5ARjrdz
       pCWuJbyfzcCXmVySIVp3UbNMzMVnwMLDtZzUYYShrpbhpM+6vRXhIGW1mNHA6Krq4xbufr5flO
       bM43Z1w9cuEKsJeP5ZUYKm2zc8NAwCCgPxIUR4YtI01NhL/5I1iXM4FAhQYCK2cx+z5RloxyBI
       OcdUfVqmQ1mDNSfuTZxpSxyYk8xw4mRT7o1OFC8X7jt5U2g5TDyVaqC37V1SX5AUPZgVIY2UgV
       SvXl2GlaiiPUOjPNMz1RQ9sUSSER2FtuiWZ3JzgAW46p3cAXscnA2sY21enG1ncPTZKRQwxGZP
       +cKbl8+bLAQWWwXjGDAEraMM/20KmWjffZ0Jy4NnuNvQrbBPtzTqGePlWLw2dvYadR1jcaFiBY
       aKA++94KmYKNvH+fLjm89xN9y6Zq2n5YIaI34s9LnxmTcJXdPMXHtowGsye6bHe2d1jV3hmi/F
       /dTbXzDDCyZmDPjlZf/14QfeR0SZMhR2rMyHx1rWbTJJemhxJduDlFzkBQVnmdafVcEtyOCHII
       b4GWIbovZfMxjpoCKKvoDm4EScWZYWiyumyOJ+L4bUyXANhOjjjxXOJR81Qrl4IUJBplWiHVrN
       oiRwIkL05GZkHGgfcsMMgkZT6iQUVXnA4agfRVuudEobXQo54S7ExILlMby49hyaXlW2ZjYkEq
       Rkj7qpV+R9U4L5Dna4meIAewP5CR18gWZHJCqf9YioVxAKpp6aSxpi06GuSafbmIK91WiCj4oJ
       26R1rmZppznCVKqlQ13SFkvyvMYGq0O+U1tCw2VyHA512XrpqDCSUWdYwdE2EF3/g1Ena66o7X
       VNTsvWlJ5dOP6X6USuvafBe7SG16ytpVS4bTHSzsEbdcJytYU+jvq1AVUHURdZkXdY1qpUuCCF
       G1TX6meUP4SdO80xTfwCaG9pcdTMTsVSg5odeP0iBiRbJlOwBiOVpKPEHXHykXWL3SgyORXxK1
       NE7GRRsU8lnxjPWF6o5VBMQcQc5Mxx1VzcWz1Ri5lqPJPRMkJ/3TxNTmIE/A2ZIEsDrLcX1xHz
       xjuoXIw0kaWZoma6kJLwWE9/FNh7+X4CtrZVaX0w0hrPwpIhdSpnroP7QmqNcpXCx60o2n7pNr
       xZ811gJSr2SwtPeU+saYbaBDEKQyejbLQfU0xGiNLOgldCi6vyklBrgXhI/hLUVXB45OpIVwP6
       FUK4PjjsLsi+L+0r2J4U7ix8Pjvv/up4O/CipzI88TH6jvwTuy8fQwbOD3GBAqxXb30ECiQAAD
       s=}
  image create photo ::img::kd -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/wAA/////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vO8yDQNdwDsu03etA1smnmQWPqRbRiGyKlDen
       FARlTq+bqhU7rRKzlrA4MvJ+S6gAYU1Qr93seHzooVOHVqZ9g+O4G20Mb3JsdA0aSiE8RlF7Pn
       1ZNzeBf4VZbYgDjh2LNY0dkpwSk4BKf5mbfqlZHAWSBaIUkoZvqGWriBuukgOwrKIlZCW1D7eg
       nLq8vX7BrCfCang2aE92P7mPyn2HQ89o3t10ntSKdLvLudqhAgZ13+/dmPDGAuczvnjqOJvg88
       OYxaoV4YWtnjJ8VOZ5Q1SrhCZ69tCZO4goQDt3/Raecoir/5mGc77IGbwRsmKLbgrJRbMlkM+W
       PeuYBTOU0tDJhy35IAO1RdWHjO844SxX5gMkmapQAhXaMVHCmfQKAl3oZ+idouCcNtvzTKm/qk
       2bbg36zVGiqT+t/gyLVmSdMWCjXqVaUR4YCA3/hQtI9AnZmYIqBCMmSN6psEWpPZgRmAFjbs/e
       nCQsWe5PMJqiPdYcYPOYyW7fYu18I1rXNowzE1pNCYLlt7OiBdr8uKbi1g5eC6VReBBp0x39oM
       5cUXdV1YVKBb4rgaFm4lpFP9E05wFAgHBWR3Y8PHfOO8khUwokGe/2NwO6Rwf2JLxN4PBLGyaP
       Wr3xS+ptjm/AayV83P+HfPcTar+ZAhyApTjnQHqdEXhfXQRostlM5JE2y3UO1NdgZ4hVk16EBZ
       7WmHkKzkCgawLWkdoamU1gl4ITfCihWtIpwluLEaoWD1f7LSghixw+CBh/ajw2XwQ9zrQiiB3a
       WOSTrWGnjWmUKPljIEJyCCKTCQ5pXmMmpbZSirFYl+F2/Y2IZZjUvbjWLYxtWaFzpSk3InOWkJ
       lUnG36h+AfB56UYWV6MsfnctkRcuaIgBRCI3tEOUbdmILBGGVyjGUZTpzB3dVdG9WVpimJtnVF
       m46z1TkqXqzJ4dhvWAYWW2iQJoTdZ5Jqyd+kHNJUKIST3UoYYJulWowpWerFUJX/gHpppncm0e
       pTNQFtpJcwl2iVVZZWfeZXTetN6+RlS3nkE03bNkkFjW2dhIy27tL15nRm2VaQuXeg9CtHGPkT
       IFLHuLNvkO+mVCNPR7l1VLiRdIWuwVCFFtO91+Cb1o7OGOzwHhGVNNE9YJSB00ZobWKAEhGBjE
       3HxdG77MPl7pQyOtQo03I53DRU8mXZ2EwNyxb3i3GpHlykTw8f08xwOtO0vHNZ4uhD8UtijTPM
       XrlR5W4yvIQEU61r5WwYGdHZMbPX3MZjl4WeNdfKKwDPO66ygwFSJ7YDVYxGFI00NfLahZSXY3
       8e6L13D33T82+igfdorU4C57GPWAO22jioRnkm9oUebOHq+QQcMDI5F1hEETTpSPywNOowmL46
       6yuIfjPsQDDBOe21I450p7iDwPfuvV/xevAumEB8Exco8PnyzEegQAIAOw==}
  image create photo ::img::kh -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP////8AAP//AP8A/////////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5vO8yDQNdwDsu03etA1smnmQWPqRbRiGyKlDen
       FARlTq+bqhU7rRKzlrA4MvJ+SyxCgMBet9lqOHzooVOHViadVtgUfg1qDIJrgYN2HYh1J1FReD
       d9f1ElcpVzbUNKHIqJjD2OPjc1onqkNJWZbYllnJuhpqIaFKKphFmsZa+wgHcSarKZuD6Rerq7
       OK0nymiUqctPnkagkscDfQ8lDmjKg4SFzCE8pszUsNfZ3Nzb6Jiy7tDGPUPlpud0dsv5qu+tYA
       L0M85pADjpGbh1z8gc/KClIIddt+65SijrRjB4RSYtHOfu/54mhNvI9AP2cIuiWBGfdMw2IEDL
       lx8ZIsJxy8OPTfli5ithqoGwcCBoYlsIMpNLi+/CjSSK06USgzslomvpY2nMOjIftHyKUFMLj0
       evdsrVlCpLqlyD+cS5VRtGoCR5epzxVJ2bi05bevtJBd02tMDoHuI2h5lLNW0F8ZXJBrBTw4Lj
       dNtXEfGDX2+pEKDx1GzgrYJQ3dvs1JtVq4LXPs7EeXJhWaS3DsB0ukxbBmjphoyMquPL2+0yM2
       7Amafno3rlfP3sYAblO2U2zyaeWzduN3OOh6XuvPYT542x4d6aTTTz5rP1eg83u017t2O2oz+F
       WWl094bcbqgWwXlysf843YeYcvXZEAY649GnmHB1ZGdIgYkgBcZ4pM0BoD9PZEcgJz4Vl85hCu
       oHHTQamgYBgk59SBx2Ky62CHYmrlWeckaNB+OK61EB2mXKgWEZZspYQltYLkYInJAJ/eiVaPl5
       NqJSiWV3GzDmARMBjTkyFKVlJ16nTQXhWVhkU9idcttX8ohViBzJQbgIKyymd2YWEjIk2XWv2U
       diYxbFh9smccDRZpaLuCddf8d0kl9pz8l0Hy1anVmBlW606aSjGYJ4pmBU0njWV80JeumbGfZp
       4z1t4qeMh6lJ5+ZYGR5KXVowIqZbRdUldmFcSg1JF2CUiMbpqrlpRaii4eVVX63/hBT3V402jj
       nhIS8tW+tgnNJp1CnHAmosaYBaeOetq+bzXrc+rgjuNmIOtp1vORn0ZC+FwMSPKqCepy2v6FLq
       paKGGUZsZzImNa9MqUUEFkhTKbQKg0bK5ZNEO63EUsFYQeyKca2tJC8/+tH0sJ5KIYdUxROGZN
       MWNe0HK5R5pbgOUyntp1HLoQSokgRFNVVzPCOjlA1ZJuM1c1IGQVQTR7sKPFRUG898TB/uEHSN
       VUjjyzDSaBAEiTsQNY3XXcvZBeoyXvMBNixD7+wNbV1NrE3aX0czSpq5fNOMxzQ/Uo0RjxCDDN
       ZtFzJBX/Gw3S84gQAJKc+Jj7M4InfBxiYscn43QgoamgNOuM7dMGtJ5tb8g5Ldr7QNl53uEuL6
       WmoPdNMjNvOKeIOoXPLGG0tFzYQep/kpPAUlfdE0FzkU1DvyMACyPPMrKA+9E9IMPj0Sv1t/vQ
       6d13D89iF0rzr4TnxP/gomnN/EBQoM7/77ESiQAAA7}
  image create photo ::img::kc -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP//////AP8AAAD//////////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5v65QNbNtyPd88e9KaVm+IEuaIyJGxlmx+lj+n
       dAONTp1LINXC7UaUv2xwFRiYy2fzAK1WW6ngYNT4FHbKjTVDj2a/4SI5gid/D08EiImKiHl/gC
       GDNDJ3EHUUiY4lmoGZj3KGHl6OO5CdYxxflCCEpHABBKZan6ihrWOZhJKhJbBxn3Zzgrq3OjO5
       hbyxwKRhFr+srJq5d8m+0JvQztObt9K7r8rZhuIU3qfd2669nJKV5BPm3N7pt+ul7ePP0jvTTP
       Py9cLJ2XeOSbMwswYeGxbQl4YCAQrQqlXIILB/3AjZW2XF/x9AfN9WYSMobWMdJT4WEtvHCpYM
       k7VQFkH3b5JGTNXYBUrRr+Y2BgQG4ATnUCSnixr7uXwVVCijnPd2WpoAC5NLRUwT6YHKUeYWpn
       1Y6Vm0CKjTp0mLPkFFNmwjoGXNOl3TUCckOQQE5N1b4gyhNXwY7cn6FAhRuyIbkMXkdzCfRoro
       6jocFdJSvZj5wmoM+PGZoEN1wFQVaOliTGWW6lktt7Cx0aiUmc5MO4/Lzm0I0wX6UmBpxVgV8+
       YTGHho0b5L+d3b8QHrNmtAS+adFvGT3K6bMWJNvSnacbC3gGncCyw+PHjcRH5HuetRd98ZDwZH
       uDwdWe5LCbb4zLEfRP9C7dacHflxJEFsXXhnnywEnqTTQQ4UFgRqEQIYjT7WUbRMXxQa19F+/A
       yUIWmG3WTGUlwgmEplBjbHoVN+AJZKFWAl595BvAR322Co5ciejYccmBpjacz3WnmqbTUiW+Tk
       eCJ16EXnkohg5aZWKPZN+eJmuXHXyit67aEki0GCVJ9wRkYH5Zm8XXlHljKcxWWXZtWgWWbCuc
       lkOxN6N5+XQcF1Wp5LUmHfSwBy6UCRYoJ5Z16EkonlNRzK5xx6jZ52GZCTanFmYKrhQcMZtDGH
       UKET9jOXUMZR+FgfbU0k6ZvHRHaVpvONKqVHH5G4in1yVoWasFU5sxaq1WR1omn/CBH1E6+7IO
       usVloStFCzPOlp6E1oWVvTSDNJe+iUOhjmCkMkcEorNirRcy4l0A4YmxLlAXLtV79QdKwn+JUp
       77XBnGpQQuyS1GCnyKg0TD/GgMSSO7K5e+8jx3Tx8DgRfzRxQReX82O/CIeUzhwdw9PsJCCvm7
       C1g0AIT0bMZLyyOHwGPNlFGKa8Z0UKU8PzwfKK95vGDTuoIq/qqjiVsfDakvS7WIJ4oIZI11yM
       V6GAqulooNBizNVSZZ0GcW+Jqm+0G+rMbxDQueH22JJlS2UzYIhiN9MlingFFvztLUXffifBTy
       yBk3HhwYXDIAbiiaeUjdqNp1vMEZHzXTkWDhlcTsQFCtzt+ecUKJAAADs=}
  image create photo ::img::ks -format gif -data {
       R0lGODlhRwBgAMIAAH//1AAAAP//////AP8AAAD//////////yH5BAEAAAAALAAAAABHAGAAAA
       P/CBDc/jDKSWtQS+jNu/9gKI7CFZBoqqrM6r5v65QNbNtyPd88e9KaVm+IEuaIyJGxlmx+lj+n
       dAONTp1LINXC7UaUv2yQNSibz2i0lbP2iLXtsTs9CNTv9nxcHsr5T3FMHQx4dQQBh4mIe3wgfz
       QybjsciokEl5iYjFp9myWDEG6ZhxOdnkJ9bBKgD46BdadrslulVJ+Ajp+DsGCqVmEWtritM216
       vUGTwBXCt4CPc6iuya3OXGPDbM270k/PX9/Bt+O22NGxkKHhzOO45eRsvCJ/xOmRoe26kObc6E
       DPcnYsi5INoDlj8jpxKBCggDZJxu61yyLt2LxfFSFmzLfH/x3BhNPmpShIjmBJKiC9KSGhI4wz
       jsl4WVQo0lRClzihyJwZMpU3Q7Ba6hpmiJCMQyklrWSlR0/QekajpksKamlMp0ZJFYJQVKYmqq
       qWMrj0oCsiUg7wNPXaAOyWlYjKRF17lsCZsou8fu2m9OIAsmmjGroUtAzZwkcD++tj96/RrUjP
       pjkstS7lxY4I4537NIJZQGir0ezzV2seM1hNXq2MFDXfqvMMB0ach08YWGwLy0XGWO5pO3LN5i
       uBO/Fu4JifaG5L1+i7PJEbAPbD21Hpx8CDOzdJN+ioST0zO2b+tLgE87X0hVduV3B2rHR8dxYE
       XuXFRbOZN+X6mLa+5P9uYAMfHu2NNR16vlVRnTdVJIieJoREpt0xLl1k1TO6peYZZ/vhByBTtO
       DVXnzFoWbedQsGSI1+7p0XHXbSOZYiU9/BWBt3JZqoh2Yz+pLOdNDVZhttv7VFVo8o1UFcUTQU
       dxBxeb2nlmxIBuFakE0695+VHD7V2Ie+3HVIllLZNuBWkoEZogNjZtUhfxymdaSFflnWJlaEoU
       GZhEU2NiadnXiJIXN5GnkZega6lQwYgx3pZmdn7BUnlWqutgiZ8EGwZ4eANWJfoHUN+iJ5O6am
       1kOjufIUpjudFydflWZ5JyyRTfSPnDyhup4kOwVFzVDAWlpTqj8NipOtHn3DUpX3WZaTTUAwef
       LOrqAoCW1Hw2EkyLTbvqaKtYtCES2sr1nBkENv1RmgO/8Ml05ATADzEieqGjMUKiTZMwxUq3i7
       BbjbqJevF9aoEwvA/AicbRcFE3Owvao9ORAzE79RL4PKSkSQOBvT9/C6LekAzzUCV/TxIApL7M
       sqnspyMmwabatvt8zKvLKmmUQkmqd9ETvIKN9VEjPIj/jLMxuVLMInVTYX/K7R6lX7WyFpBJIL
       JxY/YR2JXEv7nLz0YuzF2OKEC/YVWMTrNdoxZM32EAKt/XYRBkE990hg2333feGEvfcKxQj1d9
       qDY5FB4URcoADZjDfOhQIJAAA7}
  image create photo ::img::td -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbCMFgwzNa1S8+zzaPjG6MBe8QPLhgbFpeao1LIjIZ+uSRUunQKr5lk
       0avSWsGYHdEcpiJlZDa6pmuDxGxNnHu6yz1iXVe/9wEYuOEEhDfIkuhjMogn6MhI4vgGSVnich
       F4mReJ+ePWsagySpIZx1HaCHhyhLqh50EY26r2Cusn+qiZW+vWizsLbLdrBHorKnsnewN62KNa
       lClzxio1/eXJhA1NSdjinB3dw12yaQ3brLg7/gy+gly2HFzcUa4cz1upPzwXbjmP2J52HO6lQm
       dHF61PqwgedJjB4B9Ok7wxNKcNI0QM/xIFBuy00NQ/fB8bljRG6qTJfShTsgRZr+BIEC9dsuiY
       bMk3ezOx+MTpM0vPoFGAEiU39Ki0pEqRwmGyU+a6qDRjSnVpFSBVjkwn9luZlSvMfBVD+hv7ta
       rZlmURtl3LU2NGrW7jyoVLEm+hrvzIUnuo0u7dtC83ikU7kHBgwSsBF07Lh+9Ex4q3HoancLHl
       yzrnEjE6WO9NyaEhq5NiWFBE0qU3C+ScJ2+9nbdAyxNW0x3lJLZ/4c6b2Uxv0bgr57Kd2qvf2q
       ST39Z8BTTF1sXIGPW2FfvFt4t3m16NOKzyfrmEIK/LvdIy86xF022zZc0UeN/VPoqvpHeoaonr
       sDl/qpMu/vHGWlN/DGiBfgbyguB8C67ToIIP4vffg/T5UaGFWNXhoIZCebhNBSCSQ4EEJp6Ioo
       kGFAAAOw==}
  image create photo ::img::th -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP////8AACH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbCMFgwzNa1S8+zzaPjG6MBe8QPLhgbFpeao1LIjIZ+uSRUunQKr0Co
       zvSV7XziZ1L81XE5amSYpLWe2+43u921e+JlNF398UdXEvcmiOdxCAhHJXelqKcBOQbiAjK5lo
       F5ZvRDMvkJSVYCeilK6LlDeaEIdnhyVLUmyEpp+KcSi6i5i9e7O0q7sZin+rsajHvHuYmBPFqc
       6cxbympjWbzSnOWJxrJdhC1jUx3eTVROJI7+GrXOPij13nH7CFzPWXmeCHhv50tMHymAAVcNii
       cwVLp84DoNTCcJE6qHp+hJZESxFT+I/xzmDau4sR3GjMoCgXToSpjCkiNTAlsZsKXLZzCl7dkH
       k1wkmSdo9rSJ8luRfLBwYjk6BalSDB6XcnO6tGmgodeMmiKqwmfCrDszspD6MSZJrEHHAg37cm
       tNsRZV8gzptq1ItSY11p1bFi7eiBw3gPVjd9nJDn+jxeU7uKNVaicZXqQr11hBe/3SKp5Zh7Jm
       WVqbLEZca7Pm0GQvSzms7rO2vT0Km2VbNUrfT56ZNEyZwfXVxHc56dbEOPCL3lB+h3b2uEvkMM
       azAeZsq6sw4wgJRmc7XXVwfKRJi00zRrdwvd9lXXA9G/l4wtqfIyRv2fTu9ep5117LEm3gMEIK
       32FGbBdAFviXnH4ibYHEgO0dFJ930HkhhxLoVdbVdtEgV0Z/7fnRHUUd1pJhEs1BBeIQGpKoU4
       gKolgDghJuyCKGJooIY4zPvWjjai4mleNTPYZTwY88TGCABEYeiaSRBhQAADs=}
  image create photo ::img::tc -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbh+Lrs3MIpQ+eoPbqyDuT4erygcTN8WX7HYzLZjD6LQmYNVlsStdUE
       bcGacjWNME4lVpLPaPaO676Ur4qsut617rz2kvev1xUz+OYnQSKBBWLFJ5eoiPRomAHmmPjxCN
       nBVKl16ZE5idHpeRPDifp3qrmJdfM66uNJiWe5NFsYEcm6GtjYVjoX+2tZOxyIyfNAR2wko9ps
       GB3EiJxMhC2lOX0N0WTd9knNayYOBN6qGGprVv4Dhv1uXHgiTKh8zN3K7NtPKlovTrBd8xCRA1
       VwD7pIAbPpo+VwoSOFyxYdAthNF0Jz/wilXUz3MZlHjSBJihwZYpVBaAmrNLxFaCXMh7Rm0Lxm
       82DJLy1PRvnpEqjQmkOLqjEqVCJEpWtursmp02LUoNJmKuWDj55UU//y9FCJcWNIgiY7rhzbFC
       3VjN7Elt030sHZigZfApo6625Ad3jJtguXsGuvvhMBTzss0CI/dbJiDu7TUB7LX4IVl8vXFhdk
       HevGOZHkjPBWui+Jfo4oml2spD1xZhujrbLbM0yLsbJnO+2c2qqXIr7dlilWzQOHWWU86FlfeG
       B7q4wH6Z/Ezl4zN4fNljRZ69LxUt+uvdlVtbrlhnX9anl6x5YN8+SGB0pkp7714JBPkffjp0rw
       x0NNvR9RsBw133v9wEHFFZwhk4Z+SBU2oIMP3rEFgRPu1V+CF2IYIYAX3qfhhgqNIaGIDJnoTA
       UockZBJi6+COMEABQAADs=}
  image create photo ::img::ts -format gif -data {
       R0lGODlhRwBgAKEAAH//1AAAAP///////yH5BAEAAAAALAAAAABHAGAAAAL/BIKpy+0PYzBH2I
       uz3rz7L0wBSJamiZzquqbh+Lrs3MIpQ+eoPbqyDuT4erygcTN8WX7HYzLZjD6LHZjOWlsStVVm
       DXuacpEK2oIlVmoaaJxqWs483g76OI6J7Oa7PYQkAebh1aUHEtgHGCgot1jixbjImOeo2CgoKX
       cp8Yh1RllGhBcDmhASY2qp9XkRx/PDirq0OklGG3sp5LZGqMrHm1qKi1o7+Lrrx9Ykc6MWxukE
       FkxnaMQ0nfxnXUwNHdTbhrhtttmMfDoD/oHtSpvbFg6OLQzfPU9MNnzIDXy+r5yo069/dQISHF
       hImypF1Yw1XMfvlkJd4vYJ9EYRo7GL/w/7ddTFsQcxbjhE3bN1cZYsgipHQUynjiHMeBEz1mwU
       JedGnTxx9vzpDKjOmDbNuOwE8ybFmSnRHc1nwx1ShqZMxiw5curBiVA/otyK0CPXLiHDlhsLsq
       y/rgUXgl0rFqDFbPpswk1Ll+jZk2TtEdInV+szvoSfzv2yqSU7vV9bnD11TqnPb5UoR6sIhDFV
       rxClSe6MVialZRotbRlzuW1eKvbiQjLMR/O7uEvtptLcbuWtUoqv7WKMFdm04LhiAa+sshXyVZ
       NBc5ZoFlPNTA5L431bd+9dXqsNa8/OvfvNjq5Yq5UctqT5sjT/FoHSOmmvNLJBXZH3fn2Ybztv
       6DEX+gwX8AGYhRIDEhiggf8hOJd/qDGYjRr1QbjSgRTmMOGFQlSgIYYUSAJiiCJOAEABADs=}

 #--------
 # cardbacks

 proc loadCardbacks {} {
   global cardback

   set cardback(Original) {
       R0lGODlhRwBgAKIAANnZ2QAAAP///wAA/8DAwP//AP8A/////yH5BAEAAAAA
       LAAAAABHAGAAAAP/CIChy+0Po5wBgQaKLrc/jHIKFBAoutz+MMq5UASKLrc/
       jHIuFIGiy+0Po5wLRaCo4ujyEI4uD+Ho8hCOLg/h6PKgqEasoNHlJRzdJWY2
       EOHoLjGzgUQlYgWNqojg6NLuIMLRFREcXdodRDi6IoKjKiIoESKCMjMjWFKC
       o0urSDi6UoIlOLq0ioSjKyVYMjODohKxgkalxnBKcHRpCUdXatCmBEeXlnB0
       pQZtSmZwREQCQ0RkcKSmBGtKRnB0aAhHR0awpqQGS0ZmcIaGBmdGRrCmpAZL
       ZkRQJEIERWZE0KTEBEdMaHCGZgZJTEbQpMQER0xocIZmBklMRtCkxARl/0ZE
       UCJEBGVGarCkpgRHZmaQhmYGR0ZqsKSmBEdmZpCGZgZHRmqwpKYEZ0REMEJE
       BEelxnBKcHRpCUdXatCmBEeXlnB0pQZtSmZwREQCQ0RkcGakBEtwdGkVCUdX
       SrAER5dWkXB0pQRLZmZQVCJW0KjKCI4uLeEoqSrKCI4uLeEoqSrKCI6qiKBE
       iAgKjq7sIs3MCI4O7aLg6NIOyswM4ejKLopKxAqimRlBk5kZpJkZQZOZGaSZ
       GUGTmRmkmRlBk5kZpJkZQZOZGSQRkcAQERmkmRnB0aFdFBxd2kGZmSEcXdlF
       mpkRHB0aQRGJEBSRGcJR0iEcXRnB0aUlHCVVRf8ZwdGlJRwlFUGRCBEUmRnC
       UaVdlJISHF1aRcLRlRIswdGlVaSZEUGRCBEUmZlBmhnC0ZUatCnB0aUlHF2p
       QZsSHF1awtEREZQIEUHBUaUhHB0ZwZqSGiwZmcEZGhqcGRnBmpIaLBmZwRka
       wlEVEZQIEUHB0aUlFJMRQykxGRQTmsGhmSEUkxFDKTEZFBOawSEcXRFBiRAR
       FBxVGsLRkRGsKanBkpEZnKGhwZmREawpqcGSkRmcoSEcVRFBiRARlJkZwlFS
       VZQam0LB0aUlHF2pQZsSHF1awtEREZQIEUGZGcJRpV2UkhIcXVpFwtGVEizB
       0aVVpJkRQZEIERSZocH/GZoZJBxdGcHRpSUcJVVFGcHRpSUcJRVBkQgRFBma
       wRmZGRzC0ZVdpJkZwdGhXZSRmcGhmRmUmRnCEREJDBERwtERExwd2kExmRkc
       mplBMZkZHJqZQTGZGRyamUExmRkcEhHBCBERHF3ZRZqZERwd2kXB0aUdlJkZ
       wtGVXRSViBU0qjKCo0tLOEqqijKCo0tLOEqqijKCoyoiKBEigjIzI1hSgqNL
       q0g4ulKCJTi6tIqEoyslWDIzg6ISsYJGpcZwSnB0aQlHV2rQpgRHl5ZwdKUG
       bUpmcEREAkNEZHCkpgRrSkZwdGgIR0dGsKakBktGZnCGhgZnRkawpqQGS2ZE
       /1AkQgRFZkTQpMQER0xocIZmBklMRtCkxARHTGhwhmYGSUxG0KTEBGVGRFAi
       RARlRmqwpKYER2ZmkHB0ZQRrSmqwZARHl3ZQRmoKpaZkcEREAkNEZHBGagyn
       BEeXdncgqbEpFBxdJlYkNTaFMjMiKBIhgiIzMyglJTi6tLsLSUkJji4r4ehK
       CZbMzKCoRKygUZURHF1awtFlGRQcXaZFwtGVERxVEUGJEBEUHF3ZRZqZERxd
       FkHB0WVhJBxd2UVRiVhBNDMjaDIzgzQzI2iCoztEKCZEOLojhjIzQzg6YoKj
       QyIoEiGCIkMzOCMzg0M4urK7A4ni6LKwIpqZERwdGv9BEYkQFJEZwlHSIRxd
       GcHRXRkUHN2VQcHRpSUcJRVBkQgRFJkZwlGlXZSSksEZmhmUkpLBGZoZlJIS
       HF1aRZoZERSJEEGRmRmkmSEcXalBm5IZlBmpQZuSGZQZqUGbEhxdWsLRERGU
       CBFBwVGlIRwdGcGakhosFNWaQqkpFNWaQqkpGZSZGcIhHFURQYkQERQcXVpC
       MRkxlBKTQTEZMZQSk0ExGTGUEpNBMaEZHMLRFRGUCBFBwdGlJRSTEUMpMRkU
       kxFDKTEZFJMRQykxGRQTmsEhHF0RQYkQERQcVRrC0ZERrCmpwUJRrSmUmkJR
       rSmUmpJBmZkhHMJRFRGUCBH/QZmZIRwlVUWpsSmUGZlBqbEplBmZQamxKRQc
       XVrC0RERlAgRQZkZwlGlXZSSksEZmhmUkpLBGZoZlJISHF1aRZoZERSJEEGR
       GRqcoZlBwtGVERzdlUHB0V0ZFBxdWsJRUhEUiRBBkaEZnJGZwSEcXdndgURx
       dFlYEc3MCI4OjaCIRAiKCM3gjJgMzgzN4IyY4OgOCYqJEI7uiKHMzBCOjpjg
       6JAIikSIoAiOruwizcwIji6LoODosjASjq7soqhErKBRlREcXVrC0WUZFBxd
       pkXC0ZURHFURQYkQEZSZGcGSEhxd2t2FpKQER5eVcHSlBEtmZlBUIlbQqNQY
       TgmO/y7t7kBSY1MoOLpMrEhqbAplZkRQJEIERWakcEpqCmVkZnAIR1dGsKak
       BktGcHRpB2WkplBqSgZHRCQwREQGR8SkUExGDIVmhnCUxARHTErQZMQEaWZo
       cIbEBEdMStBEZgRFJEJQRGYEa0pqsGRkBmdoaHBmZARrSmqwZGQGZ2hocGZk
       BGtKarBkRgRFIkRQZGYEa2xKcHRpCUdXatCmBEeXlnB0pQZtSmZwREQCQ0Rk
       cGakBEtwdGkVCUdXSrAER5dWkXB0pQRLZmZQVCJW0KjKCI4uLeEoqSrKCI4u
       LeEoqSrKCI6qiKBEiAgKjq7sIs3MCI4O7aLg6NIOyswM4f/oyi6KSsQKopkZ
       QZOZGaSZGUGTmRmkmRlBk5kZpJkZQZOZGaSZGUGTmRkkEZHAEBEZpJkZwdGh
       XRQcXdpBmZkhHF3ZRZqZERwdGkERiRAUkRnCUdIhHF0ZwdGlJRwlVUUZwdGl
       JRwlFUGRCBEUmRnCUaVdlJISHF1aRcLRlRIswdGlVaSZEUGRCBEUmZlBmhnC
       0ZUatCnB0aUlHF2pQZsSHF1awtEREZQIEUHBUaUhHB0ZwZqSGiwZmcEZGhqc
       GRnBmpIaLBmZwRkawlEVEZQIEUHB0aUlFJMRQykxGRQTmsGhmSEUkxFDKTEZ
       FBOawSEcXRFBiRARFBxVGsLRkRH/rCmpwZKRGZyhocGZkRGsKanBkpEZnKEh
       HFURQYkQEZSZGcJRUlWUGptCwdGlJRxdqUGbEhxdWsLRERGUCBFBmRnCUaVd
       lJISHF1aRcLRlRIswdGlVaSZEUGRCBEUmaHBGZoZJBxdGcHRpSUcJVVFGcHR
       pSUcJRVBkQgRFBmawRmZGRzC0ZVdpJkZwdGhXZSRmcGhmRmUmRnCEREJDBER
       wtERExwd2kExmRkcmplBMZkZHJqZQTGZGRyamUExmRkcEhHBCBERHF3ZRZqZ
       ERwd2kXB0aUdlJkZwtGVXRSViBU0qjKCo0tLOEqqijKCo0tLOEqqijKCoyoi
       KBEigjIz/yNYUoKjS6tIOLpSgiU4urSKhKMrJVgyM4OiErGCRqXGcEpwdGkJ
       R1dq0KYER5eWcHSlBm1KZnBERAJDRGRwpKYEa0pGcHRoCEdHRrCmpAZLRmZw
       hoYGZ0ZGsKakBktmRFAkQgRFZkTQpMQER0xocIZmBklMRtCkxARHTGhwhmYG
       SUxG0KTEBGVGRFAiRARlRmqwpKYER2ZmkIZmBkdGarCkpgRHZmaQhmYGR0Zq
       sKSmBGdERDBCRARHpcZwSnB0aQlHV2rQpgRHl5ZwdKUGbUpmcEREAkNEZHBm
       pARLcHRpFQlHV0qwBEeXVpFwdKUES2ZmUFQiVtCoigiOLu0OImocXRHB0aXd
       QYSjKyI4qiKCEiEiKDi6vISju8TMBiIc3SVmNpCoRKyi0eUhHF0ewtHlIRxd
       HsLR5UFRjUDR5faHUc6FIlB0uf1hlHOhCBRdbn8Y5VwoIFB0uf1hlFOgAAAM
       XW5/GOUMCCABADs=}

   set cardback(Flower1) {
       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
       ADs=}

   set cardback(Flower2) {
       R0lGODlhRwBgAPcAANnZ2QAAAHo8d3w0VG9AVJqcXZaImYOOWWtMPpZJeLVb
       jKdajUkKO1gZOJelSpysN5ezJKe5N626JKi3SqCvaYhWeYw8ZKd3mVg3WGcZ
       OHQ8bGg1V1o1aYJMfnQ0VGcmQncnQ1gXKnlIdXgbTHQ0ZJRUhLl3mmgaRmg5
       Zow8bHkaOIYqWJRegzQOKTkHGicXGodHZJ9chHw0ZIQ0bJxUjJp2qHcqVHg1
       SkYaOGg2Sk0IGDoFB5OPdqFThKdomLfLL4RMdJhHanlHaXw8ZEgKKKRstIw0
       ZJQsXFkYRqdninw0XJRUjJxcjIxMfIxEfHgrZ4w0brd4qYpYhoxMdIY3W2dG
       ZVkoVmkqVXhaZnSGRMmBsruHuYlmhVgoSFkJJZdXeqh4p4dHbIQ8ZIREdHgr
       XCQdC145LIpLhoxEdHw0bGgoTLeLyEcYKSgFCLitxHRdjSIWPFk4RIR9TQcZ
       GRQvKWladrfOUsLdO5iIqnxAXG5pTWBlL1FKMQgXCYQ0ZJhalZdJh4lUaodo
       mZlolxoKGGktOAQEBCkIGUYkRwQMBBImFTFFM3lWfZWkJ3yIL4Q8bG59Jncp
       TIlZl4w2gkMmWAwEDD85TYd2mqZ4iKiHqHFQV3w8bIBEgFoSZGwPZ3Q8ZBkF
       BwQMDEc9YrWHrpl4iW8eK1pPUitZXyIvS1YLNXQ0XAgIFXpqdFJRcjoaH5RU
       bG9zNamJuFx8nwwEBGgLKYd5hFQoOmUWKJU5aIuVNIZKl7mXu5lnioZHXElg
       RJRcjKWYqAQEDIlwbra0kbd7uamZuTUnNSQgJoYsZXE/XJ9hpKeJmYUpSph3
       mKZ4txEMDL2h0LiZqdOm1GZKeXQSPsW87BkYIWchXYc7dYcvPMW+05JmpxgV
       D0UyHVMoKaVTepY5W2o6d2YLN309UzsaEZ9ne4JESalqp24GGu7j75Q8SMqQ
       w0xOEcnkV7dpml9pFWxYKLdqpZU5dJuewriYhGtaZV4mcq++c+D1hZxKnJgs
       bJurlBANBHI0b3QsdJwsRCH5BAEAAAAALAAAAABHAGAAAAj/AAEAABhA4ECC
       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
       oUR9rAUAAAAAwAACBxIsaPAgwoQKFwYAACAgADs=}

   set cardback(Bubble) {
       R0lGODlhRwBgAPcAANnZ2QAAAIKVs3uNqXSFoHCAmWx8lWp5kWh2jqi2xJmt
       wYibuoGVsn2PrHqLp3eJpHWGoXOEnnGBnG9/mGJwhl1rgGFvhH2QrH6QrYCS
       r4SXtoeauYebuoaZuIWYtoSXtYGUsX+Sr3yOqneIo3KDnW59lmp6kmd2jWRz
       iWFvhllnfFhleVlme1tofVxqf25+l3iKpXGCm3GBm2t7k56qt5Knx4qdvYCT
       sHaHonSFn3GCnG+AmWZ1jF5sgXqMqH+RroSYtXuOqXmLpnODnmh3jmV0i19t
       hFhlemBthGl5kmh4kGVzinmKo5+0yJSqy5ClxoqevWh4j3iJpGx7lGNxh2Ny
       iJOoypGmx4+jxIufvnCAmm19loOWs15rgFtpfmd3jo6jw4OWtIWauI+kxY2i
       woicu4aZt3mMp3qMp19tglxpfpit0JClxYugwI2iwXKCnHaHoXuNqmNxiGZ1
       i2l5kKC325mv0pKnyIyhwYmdvHB/mY6hwHWGoqG53pmw04ecu3yNqn6Rq6zF
       7aO64Jyy1pasz46arNHs/rHL9KW945202Jet0JKoydzg5tnz/7XP+KjA55+2
       22p6kfP//8nl/7DK8piu0WV1jGBug42hwqKwxKrC6Zuy1XyNqWFwhp+20qS8
       4WFwhVpnfJ612ZarzVZidVdjeKfA5parzlJecVRfdFVidldkeFRhdFRfc1Nf
       cp+12lpne1VidVVhdkxXaE5Za09bblBcb1FdcFJdcE9abVNgc0VQYEdRYklU
       ZUpVZ0xYaU1YakJLWkBJWENNXEROXkhSYztEUjU9SVRgc67I8KvE61FecVBb
       bqa+5a3G7r3Y/bjT/JWrzMPf/P///6vD3+b7/11sgV9ug52011Zjd4mevU5a
       bFxofXOEnUlTZFdkd21+lpKnxGp5kml6kYWZuGt7lFxqfGBremRvfmRwgE1a
       a2x1gXN6h2t6jHiAjXuDkI2gtFNgdJWqxqq60GJvhWJwhXuOqoaQoZmquv//
       /////////////////////yH5BAEAAAAALAAAAABHAGAAAAj/AAEAABhA4ECC
       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
       gIAAOw==}

   set cardback(Blue) {
       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}

   set cardback(Purple) {
       R0lGODlhRwBgAPcAANnZ2QAAAIJDu4NEu4RFu4RHu4VIu4VIvIZKvIhMvYpP
       vopRvoxTvo5Vv45Wv49Yv5BZwJFawYtUvolQvIlPvIZLu4NIvYNGuoFDu39A
       u31Aun0+uXw9uXs8uXs6t3k4t3g2t3c2uHc0t3Yzt3c0uHYzuXc0unk1unk2
       uno3uns4unw6un0+u4A/u4BBu4NGvJFavpJbwI1VvopRvIdMu4JFvH9Cu34/
       uX9At3w7t3g1uX49u38/uoBAuYBCvIFEvIRHvIZJvIdMvYhNvpJbv5Jdvo1W
       vY1UvItSvIVKu39AuX09t3o5uXk3uH47un9AvIJDvYRFvYVJvpJcvY5XvIpR
       u4dOuoVKuYFEuoBCuYJDuXo3uXw8u349vIA/vYFCvolOv4xRvY5VvY1Wu4xT
       u4hNu4VJuYFEuX9CuX07vHw5u4pPvZBZvI9YvI5Wuo1Uu4tSu4NGuX4+vYBB
       vINIu3k4uXw5uYxTvHs7uno1uoZHuolOu49Yu4ZJu3s6uYdOvIVLvX0+vH09
       vHo4t4pPu4lQu3s6vIJFvn48uHw7uYBBvoA/t38+vn9CvIZGvIxUuotSv4pR
       uYJDv4RFv4RGwIVHv4ZIv4hLvodMv4ZLuIZHv4VIwIdJwIhKwIdLwIdMwIhN
       wItSwY5VuYNHvohLuYdLv4lOwIlNwopPwIFEvolPuYhMuYpQwYpQwotSwoxT
       wo1WwIRHuI1Uwo5VwZBXwI1Wvn9Avo5Vw41Wwo9YwZBZvoVJt4dMuY5Ww45W
       xI9YwpJbvJFavIJEuIVKv4dOv5BZwpJcwZRfwZRgwZZivZNevZFbwpNewpVg
       wpdjwJlmvoVKwJZhwZlmwZtpwJ1swJNewYlQwI9YxJViwolRwpJcwpRfwpdj
       woxTwJJbwo1VwIlQv3k4uotUwpZhwoxTuY9XuZBZupJbupJcu4xUuYtSuI5X
       wIdOuYxTt4lPt4FEt41WuZFcwnUzuHUztpFcwXc2t3s8uodOwHg1t///////
       /////////////////////yH5BAEAAAAALAAAAABHAGAAAAj/AAEAABhA4ECC
       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
       gQQLGjyIMKHChQEAAAgIADs=}

   set cardback(Red) {
       R0lGODlhRwBgAPcAANnZ2VBQUI43FYI1Foo3FoA2F2kuE4Y0FYEzFnAsEXw0
       FYM0FYU1FXk0FXQtEoExE30yFIA1FXkvEXouEYAzFIIyFZI8Gps+GZA6F4k3
       GIY5GJ4+GaBAGpY9GpQ3FZw8GJw/Gok2Fok3FX0wE3MuEn4xE3EuE2orEWgp
       D3EtEnsxFHkwE3cvEnkwEXEuEXcwE4w4FpE3Fpk4GJI5GJY7GIw1FIc2Fn4x
       FIo5GJE5GI81FXMuEXgvEngxFG0rEIY1Fn81FnMwE4AxE3ErEW4tEnIyFXow
       E34yE3wxFJI4Fpg4Fok0FaM9GZ5AG6lBG5g7GJI7Go83FoUzFG8uE20tEnYu
       EYw1Fp48GZU7GIk4Foc3FZE4F6E7GIQ1FoUyE3MvFG0sEWcqEGwrEmosEXYt
       EZc5F6VBHKRDHahDHKJCHJQ8GXwyE20uEXUxFJs6F444F445GJk/G402Fn4y
       FGwqD2EnD34vE380FZM6F6NAG6Y/Gok1FoAvEnMsEXQuE2YpD3YvFHoyFIIx
       E3gxFZM7GJ0+GaI8F6E9GZo7GI81Fm0pEWopD2kqEXQtEWssEmQpEGcsEnAr
       D4c3F509GqZBGpo+GnYrEGQoD18nD24rEXUuEZk+GZY8F340FGorEmEpEIQw
       EoA0Fps9Gp4/GqE+GaM+GZY8GZU3FmksEn0uEqtDG486GLNDHIo3FYY0E2Ur
       Eoo1FXsvE5I2FHctEmUqEKo/GZc6F4I0E2QtFJo8GZg8Gm8pEJU5F61DHa5B
       Gp07F4M3FXsyE3AwFFwmD30wEZM6FZ4+HKI/GqtFHXszFoo1Fp89Go02FXot
       EZQ5GJQ6F69FHZk2FbVFHa5EHIkzE4A2FZEzFIwzFJg8GYU2FYw6GG8sEXs1
       FZA7GJA4FYouErtHH6E+Gn43F405FYw0E20uFIM2FoY4Fps/G4U2Fm8rEoIy
       FmMrEXItEm0uE487Gow4E3gyFHgyE4oyFXorEHgtEmcrE3czFo07Go0yE3kt
       EZg5GI85FYo2E5Y7G3ovFCH5BAEAAAAALAAAAABHAGAAAAj/AAEAABhA4ECC
       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}

   set cardback(Tcl) {
       R0lGODlhRwBgANUAANnZ2QAAAP///8yZZsxmZsxmM8wzAMyZAMxmAP/MAP+Z
       AP//AP+ZZv/MzMz//5mZzGaZzMzMzAAzmTMzmWZmzGYzZv//zDNmzDMzZpkz
       AJnMzGYzM5kzM//Mmf+ZmTNmmcwzM8yZmZmZmZlmZplmmZkzZszM/2ZmmZlm
       M8yZzP//////////////////////////////////////////////////////
       /////////////////////////////////yH5BAEAAAAALAAAAABHAGAAAAb/
       QAAAGBAOiUXjEZlULgMAACAAFAiHxKLxiEwql4IAIMBkMpnMZCDAZDKZzGQg
       wGQymcxkIMBkMpnMZCDAZDKZzGQgwGQymcxkABgACoRDYtF4RCaVy2EgwGQy
       mcxkIMBkJgcDQqFQYDKNgQBzOBgQCoVCAWgQDolF4gAoEA6JRaMxEDgeB0CD
       cDg8IIaHBIJIHBYGhEKhUCAaCECBcEgcBgLFInEANAiHQkViiFgkDkQikUgc
       DoAC4ZA4DASKRSIDaBAOhQvEcKEgEolEItHAAAqEQ+IwECgWi0CDcChcDBUJ
       IpFIJBKFQIFwSCQGAsViEWgQDoWJ4QJBJBoKRCKR/wgUCIdEYiBQLBaBBuFQ
       qBAeFERioSEQEIhEohAoEA6JxECgWCwCDcKhECFMIIhDgsDxgESIRKIQKBAO
       icRAoFgsAg3CoRAhTBCHBMFDIpFMCEQi0QAUCIdEYiBQLBaBBuGQeFAQhQUB
       BSgRCitAg3BIHAIFwiGRGAgUi0WgQTgkKhBEoeUClAiFGKBBOCQSgQLhkEgM
       BIrFItAgHBITRGEDApQIhxmgQTgcIoYFoEA4JBIDgWKxCDQIh8QE0VDQACXC
       4QZoEAoVCYRQkRAWgALhkEgMBIrFItAgHA4RCaKhAZQIhxigQThELA7DhZAj
       kUCAAuGQKAgEisUi0CAcDv8RCmIBApQIhxmgQThELBDDhHAjkQAFwiFRGAgU
       i0WgQTgcIg7EDlAiHG4MBoLHYDAgFgaDAYEwGDZCoEA4JAoDgWKxCDQIh0ME
       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
       ZAAQYDKZTOYxAAQIgQHhkFg0HpFJ5TIAAAQBADs=}

   return; # stop the last card's data being returned

 };# loadCardbacks

   loadCardbacks
   set data(cardback) [lindex [shuffleList [array names cardback]] 0]
   image create photo ::img::back \
                -data $cardback($data(cardback))
   array unset cardback

 #--------

   image create photo ::img::marker -format gif -data {
       R0lGODlhRgBfAOdJAPv7+/T09O3t7ebm5tnZ2dXV1czMzMnExMXFxby8vLuwsLOzs6ysrKSkpJ
       ycnJaWloqKioWFhfsAAPUAAOwAAOUAANwAANQAAMsAAMQAAKRDQ6goKLwAALUAAKQZGawAAKMA
       AJ0wMJsAAJQAAI0KCo0BAYQAAH19fXV0dHJvb29tbW5kZGRkZGhfX2RZWWRVVWJISFlZWV5QUF
       FRUV5MTFlCQk5OTkJCQnsAAHQAAG0AAGcKCmMCAlg9PVY9PVUxMVMsLFQiIlMcHFUTE1sKCl0E
       BFYMDFcAAEsKCgBAAD4+PjA4MDcoKCQyJC8vLz8AADIMDBwjHBEmEQA4AAAxAA8kDwAjAAocCg
       AcAAYNBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
       ABLLrCH5BAEBAEkALAAAAABGAF8AAAj+AJMksXKlyQ0bMxIqXMiwocOHECPOsHGjSRUsApNkUd
       EgQYECBEKKHEmypMmTKFMS+JiAQQQnVKyoKCAgQAAAOHPq3Mmzp8+fQHHaDCCAgIMrVRoICMq0
       qVOnAQwoaZLg5tOrWK8WoGjAatavYHkSSEggrNmzY2cUOMv2a9qybeM6LUDWq9y7Pd/i3ZuXLN
       +/OfUC/kt3BgG7g+UKTox3MWPFfh/fLXxYMmTDli/DzczWcd4ToEOLPmEg64LRqDf7pIyY540n
       JkbInl1CB5PWQAlAwTG7t4knN5h67lkASQcLFJInr3DBxImrL0ZYqKCcQoUKH5CsDTq8ZwQTFi
       b+SBg/fkKGIqWbMtBxQTx5CRMsmIjQtDvPAD8+UHBfngKIH7jtJIAQHVDw3ngUfABgU6w1hQAP
       GPBXnnz0BYVCCRVIOMEEGPBwgFP29XRheAeaR4RqPD0YoYYWlJDCUyHyJEAQBZbonw8BAgCEfg
       dKQEEHQeQoVmROLcCehPBZgMMDPkEAnoYTXKDDAlrVdZULI2T43oYcnCiWERkYuGUFIriAVYw9
       CTAEB2K+RyYNPNEAQgU9UsDBEAOcSeRTDuDQXokX5NCATg3k8OeWgQ6qJ2ZZ1TBnjxPcmScAA7
       LZYwUg1PBVg2cSEWaJZL6A0wpZIklBBl5mheZPTpJI3ob+GOCgAAI5rLilfBCAtepP+bX5agYe
       bPDpgQn+ENauPhlQhK2vWocckubxkN6mVoI1Yo/wIZlkCSiYhaxPAdDoK7bk/Rikt3t+lYAOEZ
       K7JQY6JIBWul+5IIKW7k5QwQhmnsVpWGpa6q6dQyw1L6NnFXoopIm29W1QMPCIbYIwxPVwbiTQ
       CWkFJKAY1r9mJTDCuOTtK6/D9H4Vbo3YTgCkkDCmnNW15MbHLcoIh6Xihvl2OO3H1YbVq7v9gQ
       BEZzI/9Z2rREtA4cEeX0UAERzw3LSPqEYdc86NPlrihtpiqinQhsH8U58L92fBBfi+egEODhyb
       dFADrGl1uRyEoEH+Bxq/R/Ckqs4N1Av3fg0vAgTsMKybIojqluA+GZk2fBW4iNPS0EpJZVYgNz
       VggaZ2IIRVAew47gQ/CmGw1JDzpIJ0DE+p084aVv7iolr/tPOl/PKUAoaQdogA7leVLrHfkspI
       4OkJAmG2Tp0DdUIJTJf3dtw9MWCoti0+t3XuPBVQRAZhZwoUDYWXeN529bWOUw8gnG4i+3mByT
       wIPnzv1AM4VJ/kfEzhn//is6S5BO0nAzBC1eqkoOcNrUQcMALgctM69PXtVR36UFOUxaySiQBO
       woGc9iZns249hWaIygEDQsg1GQ2BZX4T3fNyEoDl1Ul0q1vNAXnCAhNg4DrsQLxOBmSHlQXwIA
       NBBCIGTMAC7swtAVoogglMUAIqUhEHRZgBWGJwhClW8YsmKIIWTuaTGC3gAWhMoxofkMOrDGCN
       cNxcGd3HmaBEr47EwyO6WqhH1vGxjwYsGyAf98dBOrGQhvzJxRJ5x0Qqko6OBMAiDTnJQTYykk
       NCJCZ1UklAjsUG4NtkTuhigwLMMJJjcQICTulIAtigCgtooyh3EoAC3AALESgL6QBwk13qxJdx
       QQwweSmABUSBCktwgAFAkhKQMJMkzlyJNKNJzWlaMyTRNMlHFhADKySBCldQgkTGSc5ySoQiUf
       BmQAAAOw==}
 set ALLCARDS [list]
 foreach x [image names] {
   if { [string match {::img::[a2-9tjqk][sdch]} $x] } {
        lappend ALLCARDS [string range $x end-1 end]
      }
 }
 set ALLCARDS [lsort $ALLCARDS]
 main
 update idletasks

if 0 {

[ Category Games | Category Application | Tcl/Tk Games ]

}