I'm happy to announce my Smalltalk bindings for "Minecraft: Pi Edition":
Find out more at http://croquetweak.blogspot.com/2013/02/smalltalk-bindings-for-minecraft-pi....
- Bert -
Hi Bert,
Thanks for the Minecraft bindings. My son, Alex plays Minecraft a lot. Since I'm trying to get him to learn a little Smalltalk, we would like to add the Minecraft codes (for things like wool) to your bindings.
If this was VA Smalltalk, I would create a pool dictionary via a pragma but I'm not sure how to do this in Squeak. Any guidance would be welcome.
Typically pool dictionary entries start with a capital letter, is that okay by you?
Lou
I'm happy to announce my Smalltalk bindings for "Minecraft: Pi Edition": Find out more at http://croquetweak.blogspot.com/2013/02/smalltalk-bindings-for-minecraft-pi....
- Bert -
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Pool vars sound okay, except that you couldn't use these then from a workspace.
Another idea would be to just use symbols or strings, and look them up in a dictionary in the API methods (blockId isNumber ifFalse: [...]).
Or, add them as methods to the Minecraft object so you could say "mc glowStone".
Do what feels right to you, all these would even be compatible :)
- Bert -
On 04.03.2013, at 20:55, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert,
Thanks for the Minecraft bindings. My son, Alex plays Minecraft a lot. Since I'm trying to get him to learn a little Smalltalk, we would like to add the Minecraft codes (for things like wool) to your bindings.
If this was VA Smalltalk, I would create a pool dictionary via a pragma but I'm not sure how to do this in Squeak. Any guidance would be welcome.
Typically pool dictionary entries start with a capital letter, is that okay by you?
Lou
I'm happy to announce my Smalltalk bindings for "Minecraft: Pi Edition": Find out more at http://croquetweak.blogspot.com/2013/02/smalltalk-bindings-for-minecraft-pi....
- Bert -
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Hi Bert,
Pool vars sound okay,
I decided to start with the pool dictionary. Attached you will find a zip of two files. One is a fileout of the pool dictionary.
Alex (my son) found a list of about 485 Minecraft textures and colors. We put them all in the pool dictionary, MinecraftConstants.
except that you couldn't use these them from a workspace.
I thought this was a problem too but I'm pleased to say that if you look at the replies to my post "How to use pool dictionaries in a workspace?" you will see a way around it.
Or, add them as methods to the Minecraft object so you could say "mc glowStone".
I like this too. But I need a little help. Below is a snippet of code (unfinished) that I will use to create the instance methods to Minecraft from the MinecraftConstants pool dictionary. For now the code fills #testStream with all the methods so we can see what they will look like.
What I need is (what I expect is one) line of code that will compile the contents of #stream as a method of Minecraft. Can you help with that?
Will adding 485 methods to Minecraft for these values be a good idea? I have no reason to think not but it is a large number of methods.
Lou
| testStream |
testStream := WriteStream on: ''. MinecraftConstants bindingsDo: [:b | | key methodName stream | key := b key. methodName := key asString copy. methodName at: 1 put: ((methodName at: 1) asLowercase). stream := WriteStream on: ''. stream nextPutAll: methodName; cr; cr; tab; nextPut: $^; nextPutAll: key; nextPut: $.; cr. testStream nextPutAll: stream contents; cr. ]. testStream inspect. ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
P.S. I didn't mean to dump the code we wrote on you. I just wanted you to see it and get a little help before asking you for the best way to share it.
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
compileGetters " MinecraftConstants compileGetters "
MinecraftConstants bindingsDo: [:b | MinecraftConstants class compile: b key asString withFirstCharacterDownshifted,'
^',b key classified: 'magic accessors' notifying: nil. ].
although I wasn't sure exactly where you wanted the methods.
On 3/5/13 3:38 PM, Louis LaBrunda wrote:
What I need is (what I expect is one) line of code that will compile the contents of #stream as a method of Minecraft. Can you help with that?
Thanks Bob,
That did the trick. Bert had suggested the getters be added on the instance side of Minecraft, so that's what I did (at least on my image, if Bert likes it, we will go with it). As you suggested, I added the code to generate the getters on the class side of MinecraftConstants.
Is there a way to add MinecraftConstants to the Minecraft poolDictionaries list if it isn't there already?
Lou
compileGetters " MinecraftConstants compileGetters "
MinecraftConstants bindingsDo: [:b | MinecraftConstants class compile:
b key asString withFirstCharacterDownshifted,'
^',b key classified: 'magic accessors' notifying: nil. ].
although I wasn't sure exactly where you wanted the methods.
On 3/5/13 3:38 PM, Louis LaBrunda wrote:
What I need is (what I expect is one) line of code that will compile the contents of #stream as a method of Minecraft. Can you help with that?
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Actually, having both the constants and the getters seems kind-of redundant, no? I'd just use the constants and see how far we get. That dictionary could be used e.g. for printing block names ...
Also, why did you split up the initialization? Filling in the pool from a literal array would seem much more natural to me ...
And why are these so many? Are you sure that's for the Pocket edition (which the Pi edition is based on)? I see a lot fewer I think: http://www.minecraftwiki.net/wiki/Data_values_(Pocket_Edition)
- Bert -
On 2013-03-05, at 23:22, Louis LaBrunda Lou@Keystone-Software.com wrote:
Thanks Bob,
That did the trick. Bert had suggested the getters be added on the instance side of Minecraft, so that's what I did (at least on my image, if Bert likes it, we will go with it). As you suggested, I added the code to generate the getters on the class side of MinecraftConstants.
Is there a way to add MinecraftConstants to the Minecraft poolDictionaries list if it isn't there already?
Lou
compileGetters " MinecraftConstants compileGetters "
MinecraftConstants bindingsDo: [:b | MinecraftConstants class compile: b key asString withFirstCharacterDownshifted,'
^',b key classified: 'magic accessors' notifying: nil. ].
although I wasn't sure exactly where you wanted the methods.
On 3/5/13 3:38 PM, Louis LaBrunda wrote:
What I need is (what I expect is one) line of code that will compile the contents of #stream as a method of Minecraft. Can you help with that?
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Actually, having both the constants and the getters seems kind-of redundant, no? I'd just use the constants and see how far we get. That dictionary could be used e.g. for printing block names ...
I guess it is redundant. I was just trying to supply whatever people might want to use.
Also, why did you split up the initialization?
When I tried to set all at once the compiler complained on saving the method.
Filling in the pool from a literal array would seem much more natural to me ...
I just followed what ChronologyConstants did. VA Smalltalk and Squeak are very different in how they make pool dictionaries. Can you give me an example.
And why are these so many? Are you sure that's for the Pocket edition (which the Pi edition is based on)? I see a lot fewer I think: http://www.minecraftwiki.net/wiki/Data_values_(Pocket_Edition)
I'm not sure where Alex found it. I expect it is not for the Pocket edition. We have a RasPi but are playing with the Minecraft Bukkit server that Casey pointed us to and a windows version of Squeak. We will probably play with it on the Pi later. Would there be some value in splitting it into two pools so the Pi edition could have a smaller pool?
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
initFromArray " MinecraftConstants initFromArray " | input | input _ #( ActivatorRail 157 Air 0 Anvil 145 Apple 260 Arrow 262 AwkwardPotion (373 16) "etc..." ). input pairsDo: [ :k :v | MinecraftConstants classPool at: k put: v. ].
On 3/5/13 6:49 PM, Louis LaBrunda wrote:
Filling in the pool from a literal array would seem much more natural to me ...
I just followed what ChronologyConstants did. VA Smalltalk and Squeak are very different in how they make pool dictionaries. Can you give me an example.
Well, there's a poolDictionaries: argument in the class definition. Put it there.
On 3/5/13 5:22 PM, Louis LaBrunda wrote:
Is there a way to add MinecraftConstants to the Minecraft poolDictionaries list if it isn't there already?
On Tue, 05 Mar 2013 18:02:40 -0500, Bob Arning arning315@comcast.net wrote:
Well, there's a poolDictionaries: argument in the class definition. Put it there.
I meant from within the same code that was generating the getters or am I not understanding what you are saying?
On 3/5/13 5:22 PM, Louis LaBrunda wrote:
Is there a way to add MinecraftConstants to the Minecraft poolDictionaries list if it isn't there already?
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Well, you could...
addPoolToMinecraftTest " MinecraftConstants addPoolToMinecraftTest " | newPoolNames |
(MinecraftTest sharedPools includes: MinecraftConstants) ifTrue: [^self]. newPoolNames _ String streamContents: [ :strm | MinecraftTest sharedPools,{MinecraftConstants} do: [ :e | strm nextPutAll: e asString,' ']. ]. MinecraftTest sharing: newPoolNames. MinecraftTest withAllSubclassesDo: [ :e | e compileAll].
but I'm not clear why you'd want to. Isn't easier to just edit the class definition in a browser and save it?
Cheers, Bob
P.S. it's Brunhilda
On 3/5/13 6:26 PM, Louis LaBrunda wrote:
On Tue, 05 Mar 2013 18:02:40 -0500, Bob Arning arning315@comcast.net wrote:
Well, there's a poolDictionaries: argument in the class definition. Put it there.
I meant from within the same code that was generating the getters or am I not understanding what you are saying?
On 3/5/13 5:22 PM, Louis LaBrunda wrote:
Is there a way to add MinecraftConstants to the Minecraft poolDictionaries list if it isn't there already?
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Hey Bob,
Well, you could... addPoolToMinecraftTest " MinecraftConstants addPoolToMinecraftTest " | newPoolNames |
(MinecraftTest sharedPools includes: MinecraftConstants) ifTrue:
[^self]. newPoolNames _ String streamContents: [ :strm | MinecraftTest sharedPools,{MinecraftConstants} do: [ :e | strm nextPutAll: e asString,' ']. ]. MinecraftTest sharing: newPoolNames. MinecraftTest withAllSubclassesDo: [ :e | e compileAll].
but I'm not clear why you'd want to. Isn't easier to just edit the class definition in a browser and save it?
Yes it is. But at the time I thought (my mistake) Bert wanted/suggested that I create instance side messages to his Minecraft class. That would require it having the pool dictionary defined before the methods could be added and I kind of wanted it to be all automatic. As it turns out Bert is happy with just the pool dictionary and people can add/use it wherever they like.
Anyway, I'm happy to learn about things that are different between VA Smalltalk and Squeak.
P.S. it's Brunhilda
That was good for a laugh, thanks. But as I think about it, it's not too flattering.
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
The pool approach is probably good, but I'm always a little leery of things stored in different ways and places. Since the system browser, optimized for looking at classes and methods, is the primary tool for most of us, I tend to prefer ways to work within that context. Defining pool variables and then defining methods to return those variables does seem a bit much, but what about dispensing with the pool variables and auto-generating methods like:
brownWool
^#(35 12)
These methods could be grouped in categories to facilitate browsing for interesting textures/objects/whatchamacallums. For most of us browsing for senders is a bit more natural than browsing for references to pool variables. FWIW.
Cheers, Bob
On 3/6/13 9:43 AM, Louis LaBrunda wrote:
Yes it is. But at the time I thought (my mistake) Bert wanted/suggested that I create instance side messages to his Minecraft class. That would require it having the pool dictionary defined before the methods could be added and I kind of wanted it to be all automatic. As it turns out Bert is happy with just the pool dictionary and people can add/use it wherever they like.
2013/3/6 Bob Arning arning315@comcast.net:
The pool approach is probably good, but I'm always a little leery of things stored in different ways and places. Since the system browser, optimized for looking at classes and methods, is the primary tool for most of us, I tend to prefer ways to work within that context. Defining pool variables and then defining methods to return those variables does seem a bit much, but what about dispensing with the pool variables and auto-generating methods like:
brownWool
^#(35 12)
These methods could be grouped in categories to facilitate browsing for interesting textures/objects/whatchamacallums. For most of us browsing for senders is a bit more natural than browsing for references to pool variables. FWIW.
But in a trunk image nowadays, cmd+shift+N should catch the references to ivars/class var/pool var as easily as cmd+n would catch senders, right?
Nicolas
Cheers, Bob
On 3/6/13 9:43 AM, Louis LaBrunda wrote:
Yes it is. But at the time I thought (my mistake) Bert wanted/suggested that I create instance side messages to his Minecraft class. That would require it having the pool dictionary defined before the methods could be added and I kind of wanted it to be all automatic. As it turns out Bert is happy with just the pool dictionary and people can add/use it wherever they like.
On 2013-03-06, at 16:34, Nicolas Cellier nicolas.cellier.aka.nice@gmail.com wrote:
2013/3/6 Bob Arning arning315@comcast.net:
The pool approach is probably good, but I'm always a little leery of things stored in different ways and places. Since the system browser, optimized for looking at classes and methods, is the primary tool for most of us, I tend to prefer ways to work within that context. Defining pool variables and then defining methods to return those variables does seem a bit much, but what about dispensing with the pool variables and auto-generating methods like:
brownWool
^#(35 12)
These methods could be grouped in categories to facilitate browsing for interesting textures/objects/whatchamacallums. For most of us browsing for senders is a bit more natural than browsing for references to pool variables. FWIW.
But in a trunk image nowadays, cmd+shift+N should catch the references to ivars/class var/pool var as easily as cmd+n would catch senders, right?
Nicolas
Even a simple cmd-n does find them, e.g. BlueButtonBit.
- Bert -
Cheers, Bob
On 3/6/13 9:43 AM, Louis LaBrunda wrote:
Yes it is. But at the time I thought (my mistake) Bert wanted/suggested that I create instance side messages to his Minecraft class. That would require it having the pool dictionary defined before the methods could be added and I kind of wanted it to be all automatic. As it turns out Bert is happy with just the pool dictionary and people can add/use it wherever they like.
Hey Bob,
I will have to think about this for awhile. I like how values in a pool dictionary look in code. But I take your point about being able to browse methods and group them in categories (I would have to get Alex to work on the categories and what goes in them). Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
I will think about it and I'm still open to suggestions.
Lou
The pool approach is probably good, but I'm always a little leery of things stored in different ways and places. Since the system browser, optimized for looking at classes and methods, is the primary tool for most of us, I tend to prefer ways to work within that context. Defining pool variables and then defining methods to return those variables does seem a bit much, but what about dispensing with the pool variables and auto-generating methods like:
brownWool
^#(35 12)
These methods could be grouped in categories to facilitate browsing for interesting textures/objects/whatchamacallums. For most of us browsing for senders is a bit more natural than browsing for references to pool variables. FWIW.
Cheers, Bob
On 3/6/13 9:43 AM, Louis LaBrunda wrote:
Yes it is. But at the time I thought (my mistake) Bert wanted/suggested that I create instance side messages to his Minecraft class. That would require it having the pool dictionary defined before the methods could be added and I kind of wanted it to be all automatic. As it turns out Bert is happy with just the pool dictionary and people can add/use it wherever they like.
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
If he needs a hint, you can suggest
http://www.minecraftwiki.net/wiki/Blocks http://www.minecraftwiki.net/wiki/Items
Cheers, Bob
On 3/6/13 12:19 PM, Louis LaBrunda wrote:
(I would have to get Alex to work on the categories and what goes in them)
On 2013-03-06, at 18:19, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hey Bob,
I will have to think about this for awhile. I like how values in a pool dictionary look in code. But I take your point about being able to browse methods and group them in categories (I would have to get Alex to work on the categories and what goes in them).
You can as easily split up the pool initializers.
Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I don't think it's necessary though.
- Bert -
I will think about it and I'm still open to suggestions.
Lou
The pool approach is probably good, but I'm always a little leery of things stored in different ways and places. Since the system browser, optimized for looking at classes and methods, is the primary tool for most of us, I tend to prefer ways to work within that context. Defining pool variables and then defining methods to return those variables does seem a bit much, but what about dispensing with the pool variables and auto-generating methods like:
brownWool
^#(35 12)
These methods could be grouped in categories to facilitate browsing for interesting textures/objects/whatchamacallums. For most of us browsing for senders is a bit more natural than browsing for references to pool variables. FWIW.
Cheers, Bob
On 3/6/13 9:43 AM, Louis LaBrunda wrote:
Yes it is. But at the time I thought (my mistake) Bert wanted/suggested that I create instance side messages to his Minecraft class. That would require it having the pool dictionary defined before the methods could be added and I kind of wanted it to be all automatic. As it turns out Bert is happy with just the pool dictionary and people can add/use it wherever they like.
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Remember to look at SharedPool and its subclasses. Andreas & I created this about, hmm, 8 years ago? as a way to make pools easier to handle. We did the simple pools that you see there but never got to do the more complex things like the TextConstants pool. About time somebody completed that work, I'd say.
As an illustration of it at work, look at ChronologyConstants, on the class side you will see #initialize. It lists all the class variables. If you click on the 'vars' button and select 'SqueakEpoch' you will get a browser with all the methods that use that value.
Ancient listmail on the original design at - http://comments.gmane.org/gmane.comp.lang.smalltalk.squeak.general/15501 - oh my, that was ten years ago.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: APX: Apply Power and eXplode
Hi Bert and Minecraft Lovers,
Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
The "Minecraft Constants" project contains the MinecraftConstants pool dictionary class. The class comment explains how to use it. I added a class method that will create instance and class side methods, depending on how you call it, also explained in the class comment. These methods are categories based upon how they are used in Minecraft (at least according to Alex). Once created the MinecraftConstants pool dictionary is no longer needed.
The "Minecraft Constants Demo" project contains MinecraftPoolDemo class to show how to use the pool dictionary or the instance/class methods that can be generated. I used the #rainbow: method as a model.
Have fun!
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-07, at 23:54, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert and Minecraft Lovers,
Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
Why didn't you just publish into my existing repo?! It's open exactly for that purpose:
http://ss3.gemstone.com/ss/minecraft.html
(also, I couldn't find your repos, ss3 times out when I search for them)
- Bert -
The "Minecraft Constants" project contains the MinecraftConstants pool dictionary class. The class comment explains how to use it. I added a class method that will create instance and class side methods, depending on how you call it, also explained in the class comment. These methods are categories based upon how they are used in Minecraft (at least according to Alex). Once created the MinecraftConstants pool dictionary is no longer needed.
The "Minecraft Constants Demo" project contains MinecraftPoolDemo class to show how to use the pool dictionary or the instance/class methods that can be generated. I used the #rainbow: method as a model.
Have fun!
Lou
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-07, at 23:54, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert and Minecraft Lovers,
Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
Why didn't you just publish into my existing repo?! It's open exactly for that purpose:
(also, I couldn't find your repos, ss3 times out when I search for them)
I think the answer to both questions is that I'm not really sure what I'm doing with SS3. I wasn't sure what I'm allowed to do and apparently even what I think I'm allowed to do I didn't manage to get right.
I will try to figure what went wrong tomorrow. I will try to upload to your repo.
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Hi Bert,
I think something is wrong with SS3 (could just be me). I am able to download the two files/projects I uploaded and they look fine. When I try to upload them to your project, I get an error saying the files are not in MCZ format but they are the same files I uploaded to my project yesterday.
If I can get them uploaded to your project, I will remove them from mine. I think it is best to keep the Minecraft stuff together.
Lou
On 2013-03-07, at 23:54, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert and Minecraft Lovers,
Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
Why didn't you just publish into my existing repo?! It's open exactly for that purpose:
http://ss3.gemstone.com/ss/minecraft.html
(also, I couldn't find your repos, ss3 times out when I search for them)
- Bert -
The "Minecraft Constants" project contains the MinecraftConstants pool dictionary class. The class comment explains how to use it. I added a class method that will create instance and class side methods, depending on how you call it, also explained in the class comment. These methods are categories based upon how they are used in Minecraft (at least according to Alex). Once created the MinecraftConstants pool dictionary is no longer needed.
The "Minecraft Constants Demo" project contains MinecraftPoolDemo class to show how to use the pool dictionary or the instance/class methods that can be generated. I used the #rainbow: method as a model.
Have fun!
Lou
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-08, at 17:04, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert,
I think something is wrong with SS3 (could just be me). I am able to download the two files/projects I uploaded and they look fine. When I try to upload them to your project, I get an error saying the files are not in MCZ format but they are the same files I uploaded to my project yesterday.
If I can get them uploaded to your project, I will remove them from mine. I think it is best to keep the Minecraft stuff together.
Lou
How are you trying to "upload"?
Since you have them in your package cache now, just use the "copy" button in MC to copy the version to the repo.
- Bert -
On 2013-03-07, at 23:54, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert and Minecraft Lovers,
Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
Why didn't you just publish into my existing repo?! It's open exactly for that purpose:
http://ss3.gemstone.com/ss/minecraft.html
(also, I couldn't find your repos, ss3 times out when I search for them)
- Bert -
The "Minecraft Constants" project contains the MinecraftConstants pool dictionary class. The class comment explains how to use it. I added a class method that will create instance and class side methods, depending on how you call it, also explained in the class comment. These methods are categories based upon how they are used in Minecraft (at least according to Alex). Once created the MinecraftConstants pool dictionary is no longer needed.
The "Minecraft Constants Demo" project contains MinecraftPoolDemo class to show how to use the pool dictionary or the instance/class methods that can be generated. I used the #rainbow: method as a model.
Have fun!
Lou
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
I'm not sure how everything got to be the way it is but it looks like my stuff is now in you project and I have deleted my projects.
Lou
On 2013-03-08, at 17:04, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert,
I think something is wrong with SS3 (could just be me). I am able to download the two files/projects I uploaded and they look fine. When I try to upload them to your project, I get an error saying the files are not in MCZ format but they are the same files I uploaded to my project yesterday.
If I can get them uploaded to your project, I will remove them from mine. I think it is best to keep the Minecraft stuff together.
Lou
How are you trying to "upload"?
Since you have them in your package cache now, just use the "copy" button in MC to copy the version to the repo.
- Bert -
On 2013-03-07, at 23:54, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert and Minecraft Lovers,
Bert seems to like pool but also thought instance methods would be good. Someone also said they would prefer class side methods. I could go with the pool dictionary I have (I fixed the initialize as you suggested, thanks) and add class methods to create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
Why didn't you just publish into my existing repo?! It's open exactly for that purpose:
http://ss3.gemstone.com/ss/minecraft.html
(also, I couldn't find your repos, ss3 times out when I search for them)
- Bert -
The "Minecraft Constants" project contains the MinecraftConstants pool dictionary class. The class comment explains how to use it. I added a class method that will create instance and class side methods, depending on how you call it, also explained in the class comment. These methods are categories based upon how they are used in Minecraft (at least according to Alex). Once created the MinecraftConstants pool dictionary is no longer needed.
The "Minecraft Constants Demo" project contains MinecraftPoolDemo class to show how to use the pool dictionary or the instance/class methods that can be generated. I used the #rainbow: method as a model.
Have fun!
Lou
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Yes, it's uploaded. Any reason you created new packages, instead of putting the constants into Base and the example into Demo? I don't see the need for having to load 4 packages ...
- Bert -
On 08.03.2013, at 20:50, Louis LaBrunda Lou@Keystone-Software.com wrote:
I'm not sure how everything got to be the way it is but it looks like my stuff is now in you project and I have deleted my projects.
Lou
On 2013-03-08, at 17:04, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert,
I think something is wrong with SS3 (could just be me). I am able to download the two files/projects I uploaded and they look fine. When I try to upload them to your project, I get an error saying the files are not in MCZ format but they are the same files I uploaded to my project yesterday.
If I can get them uploaded to your project, I will remove them from mine. I think it is best to keep the Minecraft stuff together.
Lou
How are you trying to "upload"?
Since you have them in your package cache now, just use the "copy" button in MC to copy the version to the repo.
- Bert -
On 2013-03-07, at 23:54, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert and Minecraft Lovers,
> Bert seems to like pool but also > thought instance methods would be good. Someone also said they would > prefer class side methods. I could go with the pool dictionary I have (I > fixed the initialize as you suggested, thanks) and add class methods to > create the instance/class methods and let people run them if they like.
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
Why didn't you just publish into my existing repo?! It's open exactly for that purpose:
http://ss3.gemstone.com/ss/minecraft.html
(also, I couldn't find your repos, ss3 times out when I search for them)
- Bert -
The "Minecraft Constants" project contains the MinecraftConstants pool dictionary class. The class comment explains how to use it. I added a class method that will create instance and class side methods, depending on how you call it, also explained in the class comment. These methods are categories based upon how they are used in Minecraft (at least according to Alex). Once created the MinecraftConstants pool dictionary is no longer needed.
The "Minecraft Constants Demo" project contains MinecraftPoolDemo class to show how to use the pool dictionary or the instance/class methods that can be generated. I used the #rainbow: method as a model.
Have fun!
Lou
Yes, it's uploaded. Any reason you created new packages, instead of putting the constants into Base and the example into Demo? I don't see the need for having to load 4 packages ...
No particular reason. I'm still getting use to the proper protocols of donating code.
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-11, at 14:33, Louis LaBrunda Lou@Keystone-Software.com wrote:
Yes, it's uploaded. Any reason you created new packages, instead of putting the constants into Base and the example into Demo? I don't see the need for having to load 4 packages ...
No particular reason. I'm still getting use to the proper protocols of donating code.
Ah. It's not about donating code, but about developing collaboratively. You take something, improve it, and give it back :)
So in this particular case, you would just move your MinecraftConstants class into the "Minecraft-Pi-Base" category and save a new version of the "Minecraft-Pi-Base" package (likely "Minecraft-Pi-Base-LL.3") into our minecraft repository.
And you would not add an extra demo class, but just modify my rainbow example method to use the new constants. Then save a new version of "Minecraft-Pi-Demo".
Btw, if you put your login details into Monticello, squeaksource3 will list you as author. Looks nicer than "anonymous" :)
If you log in to ss3 then you can delete the other packages so only the Base and Demo packages remain.
On the weekend my son and his friend successfully joined the Minecraft world running on the Pi with their iPods. So while they were playing I could place blocks, transport the players to other places etc. from my Squeak image. It's also how I noticed the #playerIds method didn't work correctly, because that was the first time the number of players was larger than 1 (fix committed).
Did you do anything else cool with Minecraft?
- Bert -
On Mon, 11 Mar 2013 23:15:08 +0100, Bert Freudenberg bert@freudenbergs.de wrote:
On 2013-03-11, at 14:33, Louis LaBrunda Lou@Keystone-Software.com wrote:
Yes, it's uploaded. Any reason you created new packages, instead of putting the constants into Base and the example into Demo? I don't see the need for having to load 4 packages ...
No particular reason. I'm still getting use to the proper protocols of donating code.
Ah. It's not about donating code, but about developing collaboratively. You take something, improve it, and give it back :)
Okay, when I get some time I will do as you suggest below.
So in this particular case, you would just move your MinecraftConstants class into the "Minecraft-Pi-Base" category and save a new version of the "Minecraft-Pi-Base" package (likely "Minecraft-Pi-Base-LL.3") into our minecraft repository.
And you would not add an extra demo class, but just modify my rainbow example method to use the new constants. Then save a new version of "Minecraft-Pi-Demo".
Btw, if you put your login details into Monticello, squeaksource3 will list you as author. Looks nicer than "anonymous" :)
If you log in to ss3 then you can delete the other packages so only the Base and Demo packages remain.
On the weekend my son and his friend successfully joined the Minecraft world running on the Pi with their iPods. So while they were playing I could place blocks, transport the players to other places etc. from my Squeak image. It's also how I noticed the #playerIds method didn't work correctly, because that was the first time the number of players was larger than 1 (fix committed).
Did you do anything else cool with Minecraft?
Not yet. My son Alex is the one who plays a lot. We are talking about building a room (with stairs) from Squeak that could be stacked up to make a building but haven't tried yet.
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-11, at 23:27, Louis LaBrunda Lou@Keystone-Software.com wrote:
On Mon, 11 Mar 2013 23:15:08 +0100, Bert Freudenberg bert@freudenbergs.de wrote:
Did you do anything else cool with Minecraft?
Not yet. My son Alex is the one who plays a lot. We are talking about building a room (with stairs) from Squeak that could be stacked up to make a building but haven't tried yet.
Uh, now there's an idea: A "copy machine". You build the first level of a building using your regular Minecraft tools. Then you jump on top of the first floor, and invoke a Squeak script that copies the last x layers up to where you're currently standing. You could build Skyscrapers in minutes :)
- Bert -
Now if we could just automate the creation of minecraft texture packs... ;-)
- Darius
On Mon, Mar 11, 2013 at 3:48 PM, Bert Freudenberg bert@freudenbergs.dewrote:
On 2013-03-11, at 23:27, Louis LaBrunda Lou@Keystone-Software.com wrote:
On Mon, 11 Mar 2013 23:15:08 +0100, Bert Freudenberg <
bert@freudenbergs.de>
wrote:
Did you do anything else cool with Minecraft?
Not yet. My son Alex is the one who plays a lot. We are talking about building a room (with stairs) from Squeak that could be stacked up to
make
a building but haven't tried yet.
Uh, now there's an idea: A "copy machine". You build the first level of a building using your regular Minecraft tools. Then you jump on top of the first floor, and invoke a Squeak script that copies the last x layers up to where you're currently standing. You could build Skyscrapers in minutes :)
- Bert -
Hi Bert,
I have done as you suggested (correctly I hope). Things seem to look as you said they would (names and such). I deleted/removed my "*Pool*" packages but they still seem to exist on SS3 but I don't see any way to remove them. If you can remove them it is fine with me or let me know how to.
As for your "copy machine" idea, I like it, much better than making a building floor from Squeak. I will try to get Alex to do it with me.
Lou
On 2013-03-11, at 14:33, Louis LaBrunda Lou@Keystone-Software.com wrote:
Yes, it's uploaded. Any reason you created new packages, instead of putting the constants into Base and the example into Demo? I don't see the need for having to load 4 packages ...
No particular reason. I'm still getting use to the proper protocols of donating code.
Ah. It's not about donating code, but about developing collaboratively. You take something, improve it, and give it back :)
So in this particular case, you would just move your MinecraftConstants class into the "Minecraft-Pi-Base" category and save a new version of the "Minecraft-Pi-Base" package (likely "Minecraft-Pi-Base-LL.3") into our minecraft repository.
And you would not add an extra demo class, but just modify my rainbow example method to use the new constants. Then save a new version of "Minecraft-Pi-Demo".
Btw, if you put your login details into Monticello, squeaksource3 will list you as author. Looks nicer than "anonymous" :)
If you log in to ss3 then you can delete the other packages so only the Base and Demo packages remain.
On the weekend my son and his friend successfully joined the Minecraft world running on the Pi with their iPods. So while they were playing I could place blocks, transport the players to other places etc. from my Squeak image. It's also how I noticed the #playerIds method didn't work correctly, because that was the first time the number of players was larger than 1 (fix committed).
Did you do anything else cool with Minecraft?
- Bert -
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-12, at 17:07, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert,
I have done as you suggested (correctly I hope). Things seem to look as you said they would (names and such). I deleted/removed my "*Pool*" packages but they still seem to exist on SS3 but I don't see any way to remove them. If you can remove them it is fine with me or let me know how to.
In the SS3 web interface, choose a version, then click "delete version" in the left-hand items.
- Bert -
As for your "copy machine" idea, I like it, much better than making a building floor from Squeak. I will try to get Alex to do it with me.
Lou
On 2013-03-11, at 14:33, Louis LaBrunda Lou@Keystone-Software.com wrote:
Yes, it's uploaded. Any reason you created new packages, instead of putting the constants into Base and the example into Demo? I don't see the need for having to load 4 packages ...
No particular reason. I'm still getting use to the proper protocols of donating code.
Ah. It's not about donating code, but about developing collaboratively. You take something, improve it, and give it back :)
So in this particular case, you would just move your MinecraftConstants class into the "Minecraft-Pi-Base" category and save a new version of the "Minecraft-Pi-Base" package (likely "Minecraft-Pi-Base-LL.3") into our minecraft repository.
And you would not add an extra demo class, but just modify my rainbow example method to use the new constants. Then save a new version of "Minecraft-Pi-Demo".
Btw, if you put your login details into Monticello, squeaksource3 will list you as author. Looks nicer than "anonymous" :)
If you log in to ss3 then you can delete the other packages so only the Base and Demo packages remain.
On the weekend my son and his friend successfully joined the Minecraft world running on the Pi with their iPods. So while they were playing I could place blocks, transport the players to other places etc. from my Squeak image. It's also how I noticed the #playerIds method didn't work correctly, because that was the first time the number of players was larger than 1 (fix committed).
Did you do anything else cool with Minecraft?
- Bert -
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
In the SS3 web interface, choose a version, then click "delete version" in the left-hand items.
I must be missing something, I don't see this on the SS3 web site nor anywhere in Squeak?
Lou ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-13, at 16:06, Louis LaBrunda Lou@Keystone-Software.com wrote:
In the SS3 web interface, choose a version, then click "delete version" in the left-hand items.
I must be missing something, I don't see this on the SS3 web site
- Bert -
This is what I see. ----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
On 2013-03-13, at 16:29, Louis LaBrunda Lou@Keystone-Software.com wrote:
This is what I see.
Ah. Looks like you have to be admin to be able to delete versions.
I just tried.
Nope, doesn't delete. Guess that's an SS3 bug then ... we'll just ignore these versions for now.
- Bert -
On 2013-03-13, at 17:06, Bert Freudenberg bert@freudenbergs.de wrote:
On 2013-03-13, at 16:29, Louis LaBrunda Lou@Keystone-Software.com wrote:
This is what I see.
Ah. Looks like you have to be admin to be able to delete versions.
I just tried.
Nope, doesn't delete. Guess that's an SS3 bug then ... we'll just ignore these versions for now.
- Bert -
Actually ... it did delete them, but apparently the version list in the web display is cached. Okay, we're good.
- Bert -
begin 644 MCPool.gif M1TE&.#EA/P*)`H<`,?___[TN([DL(HH@&G=&(,G([VKJL2RL91$0-7"PM#0 MT,?!P-/3TY1+1X<K)N?5U)M23LNYN(8J);%Z=[B'A9M85:!I9J-E8L[.SIM> M6[VEH[B@GXT].<:HILS,S*^*B(@R+MZ7D=J5D)='0[:%@L2LJI)(1??Q<*I MJ+:7EIE/3*YW=<*VM:QU<JI_?<*OK\G#P[&,BK^;F8LU,,ZUM(TW,_;V]L_/ MS[.SLY^?GXR,C):6EN/CXYE64MG9V<;&QF9F9F]O;[R\O,>TL]75U<>NK:IL M:=K:VNSL[/?EY-ZBGJ5T<GEY>?/8UMJ)@\5(/N'AX8*"@JFIJ>_+R,UB6KV2 MD,EA69(Z-;:1C]?7U]%O:.:QK<N_OZ5H9=9=?OR\M?1T:]^>^/=W=[8V+^4 MDK&&A.O*R)=34*=V=-7)R+.(AI]54L*=F[^MK+.5D^*DGXXM)Z^$@LFWMM+` MO$[,-"XMLE53-/,S-7/S^N^NK^GIMS<W+J`?@```$)"0@`````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M`````````````````````"P`````/P*)`@<(_@`!"!Q(L*#!@P@3*ES(L*'# MAQ`C2IQ(L:+%BQ@S:MS(L:/'CPD#B!PI8`"!DR@)%#!P`$$"!0L8-$B9TL$# MD#ASZMS)LZ?/GT"#"AU*5.#(HR5I$H`000(!"1,H(*A@0>E)FT6S:MW*M:O7 MKV##ZCR*U"1-IRDO8,A@]>I-L7#CRIU+MZ[=NF3+MCVIENU>`ECO"AY,N+#A MPX7SZK6*@$'5IQK8%MC`H>9;Q)@S:][,N7-$Q8MI=O!P4L(!`P56?D"+,K#G MU[!CRY[=%71HE!,<@SB=VL"'MJYI"Q].O+CQAB&2*U^N7,0(I21*,$"]<L$' M$`O']_.O;MWX2>>_M.$@*)W"A4K&&`_6<#R]_?PX\NW&][J2A8H4?PFH+9R M:^WS!2C@@`3F5!]-+:#@`DHO5-674L$5*.&$%%:8T($I00`#!P7$P$(!#U:P MH'L6EFCBB0%BB)(,#'CPP@P/%D##8R2B:..-.-*FXDDU(,#?6C_Z!R&`.19I MY)&"[<@7D`_N%2&24$8ID`TWX)"##ECN@,,-/$BYDY(3]/`C6QQD("1-3WJI M)FT^M+G1#SL`(>><=`(1Q`Y"K/F1DF-*H,$"0Q"QWY!Z%CK;G!GQH,.<0>2` MPZ,[!%$G$(9V!*:812S0GA%'^$5HI9KQ(`0.6.KPJ`\V1(GH13\PFF=!_C;@ M4"<2H&J4A!)FG77$$BBI%>:M=85*Q.3TJG##TBN6E&K<@;1)4+,RNE#L!4U MX<03(B5U%A0C_O4?M8+](*F<43B*@Q0ZC"MGJD8J.Q$/=+Z:D!!S(@LN1%-0 MD9>V*57A6%L9=.O6O73ET"P.[!;$@Q2-)BNG15',R41#BP*!`$-):&O8D]8 M<05T6"B5`0M9:(HFD1AW12\04="JD`TNM_LP13[0>3%#-0.Q0\H+)4&6%ELT M,1"?*8W,11?Z604LST0AT6S"H+H;49QS3ML0L3HPK9`7`3RQQ1<'$3TR$0IP MH`(&()2VWL!:;V4P$/8&*S5$Z@)A-4/T!M$V_D));+&0DBN`$08$8L!PP'ZF MH5;CWD+9(.?$X,[MD--TWKT0O)0R/I&2:"$PA@=I)][>R9H+E7,.]TK>4,YS MRHMSZ10130`7OXF>'>P_K7PSM:KC7&<4N.O$9Q>@BR[!VJ0'OY.L%J<^LT28 M5ZX\3DJ248;Q!YBL-,K3;[2R%#FU"358XE>$A`_/.M0[0Y-&,7Y'/+29OEA( MQ#Q0_._C["9%YZ,*THX2D$`$4&.:!:`@"P);7/<XDC/(,3`'Q#*6$*"&)?`I MK((009<.YI>0&T"P3CJ8($.0((0=1%!B4K`?0M8G$$5A:7Y4HY/[.H($*43L M=SA0X4'ZYX-SZ<"!_@>)7YL>]</)_6!1EKO!"2VX$`^>D%PY=(@/<E`W)J30 M(TJ"0`%,\R$"Y,8_95+@`C4R+LM=Q`<5*Y:=Y"4G)@XD9UE[2,7,:!`?/'%2 M07"=PMZFQC8NA(4&%?<!!(M&7*P(FCLXYQRH$.!]#&.!4ECL5YV`QM*3R!\ MG),;#?*#.]8I"(,,HB0GM;N-F"%7*#$-!LYP$@@0@4P+0$/RQKB1M\T0(U*8 M4PBMA@0/+M*1S2L('"$R1X7D4DXYN('+>'#$7Q[DAE;DDD!ZR<>=)61]@913 M*`7B23N5DB+'E%,4`4#")X+R(#FX(0@/(H1TJ1%:=;MD)NF4/R4JDDZ-_A0( M\W1V`Q_<((;(S%]%G,"OIYPF#;PB@!HTQ8$%>"HE:Z`E1VPPKAP(]"%O8P(= MITDUU(FSCG*"),6DE1!;YM,'X]HD(:.PT1:F])K/,P@2!(D0UDV*"=MTB`W4 MZ2R#V&">J-NA.D.J$"0`-*8$65FQIE7(.AWRF$'`P;.H-$^[(>1M03`C2ND4 M5(U@BU]L:$,!_.6"%"S`!`UU`_)0$E&);N0&<XK"(3%*KHMB4IP?%291Y4A2 M=NXU(13M*T'LZE(YY5-U.]6F0IH*PI8"=JAS%<A1NZI78RW$<752"`^.:K?H MW116%;ME09`@R4:J<Z,VA9M&WD`2.)0&)48H_D(<0-!0.<SA"`DD0%O=JA%Q MS0EA$H$KRPA[U]^"%`@B94@Q#8(YT29DF!-AGDJ!F3E8W3"G!:DJ""-[$$E^ M$U;QQ.XZ%S)*A@S5;HN*P@]ZJ*Y!)G:XQO2C0?CXW8%D,@C$94@2Z#"2)Q"M MH7ZIPP*4LEO>)NJ$0;BB3B/(75B=+O0=<AR(RFG!A/D;8Y]V>-6B%0`O+>^ M!V'LI"R*-SKA=R%-/;%!QJN0\BXDG'**$V5)RX0;4-BP#+E!3H5KIXOR6+$6 M^8(=CC(%`"@)`7?PE`;<0&`#3Q3&R,WP0%9&689$")_':E5%8;,AYR.(C=L MI-3>6^7+==/$-@9L_MW*?)!XLIG%"7&Q0O89UX;LD\TZ5==T!X+9.5F3(D(^ M2@B&)IX,H>0#BL."IPKLY(P@@8K&DG($\YF0<6$9N<04K'UQ_!!)Z6TB&#Z( MU"J&YY?168T@!@"4T_SB2;T/S@B1<T).#00+DY-.MIXUKO]()R!&I`G8&HD7 M"D(T1+<'*G@8$:,;G1$;".&).Q!H<R5"M4LGE[R:%HBD@)=I(%!ZSG+2(W4O MW&7^:9>K"(EG?E,+!''#NKN97<BI2TWN9EFD;I>;U$2^$`*R."%LA4;)"N10 M@`IL8`,FR,U)ELULC22R67/5G4289^UNFQ%S>];UEB-"<5$_[VWTEN(H_NND MTA_;Z2&3NO:[#2)KA)R:U0FA7)8C\N,@E.KF/U3CIR&RA6"+A`YYN%#`2X,` M(J"!!$?0PX!UVW"<V--.AZ2:E`_2<I>N\799A;,[1SNAO3O4:3*:T%6!?*W MGGGC`H'RU1%RQYT/9.4W9B$`3CUUI083U/=4)$X?8BW^'L4+8%-(%K/`2AEX M8#T,;[I&WAL$%5;LVRX7^QMGCFVTSYU<.,]\YB.8:AZ$O8_U152T\ON0GZK1 MUZ-<.[SK-#ZX$Z3E5*_3U+U;D6Y&X>9@QT&;_)>Q/%PK+UY(@D.45(4C:,`# MBU8\3M[[9VUWF.MWGSRF^6IYSN:]3O7M9,I+_L5YCP/AQ]SFB(C1?D?5&X36 M9G3]0&!_?MFSSV85P7Y&J$!_T-CA#<*'B))JL(>')E[YB3(G\R-WL1=]`A%A M6F9&%9-[#-B`#<A!=N1G0L![`U%U8]<L0(`NY<81)B=?U*5+#X%^%PB"E2=W M=+<0,B=Y$.%9!KAOMB$26H!_$G$"J/1:$`6`./$V;D2`[=>""*A<V58QO:5) ME&:!!(%N@:5:'6%W699R(3@IZ6=9)?A!7&""I%:(?=<==)%#$%+W@4=N`W M$%%05O%_.'@1PB52/%B%*@@`/UAY"LAI%I$S625O;0@`SN2&$,<0I#<0YU5= M>/A)3S@K(TAY+!=O_N!V25HH0S3S.QC1<_07B50P9!Q39`X1`&1($V9XAA6! M66[W>!/7AF^(=99W3%/'$!$T=4;X=DBU,DS@8TS`A26&B`#PAX-()RLFA:1H M@NYWA:[V+K($DWP!I1X%/_6$-E2@S?(B1[A+E(7BCYHB'&6;<PC;A'!+%EX M>2T8B(`H63&VB'UX:[3(6:>HC756B-.WBU1($%:H$)."7>]')_"X$1I#%L/& M$"2AC`O'C,T84ZO8$-7F<6X'A);W91;QC`SQC]SH4S<$8IACC>ZHBP#`A.TF M8227BR2HCMU8@%6#BNJG$.<5?CJQ!7XG$L>H$+?!5OPX45DV;1%A:=X'_A$= M>8$#*1$1Y!`**3G9]'T<YFOQN('B2">RB!#G=4AUXI.'B(MVJ(@E-2E;YQ!5 M58X8T00E&0"6&!(IR70KJ1'"564,!A%7MGI/B1`\1D=O,X_QZ!`!B9'0TBR- M%$%H.5AULG4CEU]'Z7US0ECLQX9,299X1'H)PVZOV!-;<!14L!#[4H.;N)5T MQ9-)!90$N8W'E'$%<5K'A90HMXX$(7.AMX['Y%P"43&#V1`_YI/LEFH#87(Y M=5YHN9?LV(L+X4F@Z5,YT'RR25@VH`/AB!`;(Q)"@Y5D45"+R9@,@3D^F83E M:'?UA3DJEHC9%IIW:)&6=Q`QU)D;21`W5&;[_D29]09D!7%4S7E5$DD01S6: MZ*1O2SF3*%8L=8@0/!`QC3<0(M8RSR4IJ.D07C@2)WD0H,$OPWF&?6@#$326 MPM53^89<T5DQW-DJC?*<Y$13$W%,(5=(UODRXZ)'A127*;AV29B'.V1B^<18 ML^D#?^B8&J>>4V@L6<#?!2'Q9(#''0#H;6;".%SAPF<B;F/Q!E)C%2<$51J M4-5@ON4HT<DZ,@/`+<5C]\EGFSDG8RD0WW.'+,0Z\Y-:_A>.6>X36- M>X@0'<HH4M!/57)#.A"242H0Y\6=?'9VR(4E=;)-8?I)6#)4LTD16C`2=("2 MMI$4_PF`K+,#4<JB_AYZGLBD0P^W,PJ9=GXV/S:@?:JU,H[E6T"`4]+V;*'$ M/'E41Q6#+%2JF5+Z-$>XA8U$HG%%6#NI2;3)*!9&:Z@&`".7D?*)1^7(`V[Z M29&5JGEWIQ31;R/!IWTZ`'^J?(KR.UI"1.JRJ7BC+N4"*4ND3]%97,U2IXQB M+SF3I@#PGL9B+CBP`^X$F0#`1TQ@+M]Z3H%X=01(-2(9JSNP7FW23G0B!?EE M`^6I>VTB!2>D`Y"GIO>T0=#)GDS4K6?'!#H@!6B9F]>GKYI5HJ34$;XJ$@HA MB1(;B5;`!SO*7!_41TP`7),#:<6R`W>SJ*EY9CUZ@-$JGPR+0HT$J9]$_F+< ME(ZC>IT,Z8&/>JNZ))4'&*N15GKGIE&O)T-CJD+7)XT%P;(W%9?Z%$_&DFL1 M;!/<+$@T4L^I`-:@-,ZU-5XJV.<@/C([($X7G>:BI<"RMMLJ_3E*1A>ZP^ ML*]9JP-;RUS[(TQQBX*[-SZ>]ZT@)`1FBQ`DM`/J1+!"<+5?JX$LDP-T9$(Y M`,7M7N,V[B[=[4+\ZWE@JUD>26ZI&`>D:<B<:-0FQE>6R(VP+@TVA6CVQT^ MMY^=>QB?F[HGT@1'(8:LJ[HG&[LFPC4_1[N(L;JX.R'[)6R[:QBZ^[L$HKDB MD7_"*QC!>[SS;`!,&C*B[RS^[SS49@C80?2_@N]VWB]`6*[/_>;VDL7R?N] MQC$%Q1@`=."]XBL7X9N^=V&$-$$W-N][`N^T3N_@N$S0..^"3&,Y;NY@6>_ M<=$_>PO`=,%:_44%(?`&4[#`"YP<5.!S1T$';T#`%`PN_?N%>4$'(?"_%=S! MAK(%%XS!`1"&'.S!)EPH2?`&6@#!BD$',:B_)QS#H++`;[`<>3`%)2S#.KS# M/-S#/OS#0!S$0CS$1%S$1GS$2)S$2KS$3-S$3OS$4!S%4CS%5%S%5GS%6)S% M6KS%7-S%7OS%8!S&8CS&9%S&9GS&:)S&:KS&;-S&;OS&<!S'<CS'=%S'=GS' M>)S'>KS'?-S'?OS'_H`<R((\R(1<R(9\R(B<R(J\R(S<R([\R)`<R9(\R91< MR8'<!YB<R7V0$)J<R071R072R9ML$*,<$:)\RJ7,%:`,$:O\$*W\$9KLQ:?, MR:+\R;$L(*B<RIXL$;D\RZI\RZX,S`[QRAU!S%F,R@>!S`1AS._1RP,AS,'< MR\PL%--,R[L<S9B,$]5<Q<ILR[6\S-`,'\X,`-MLS=(<SM2,S@I1SJ2LSACQ MS5S<S>`,SQ7"S.R<S.A,ST1QS_.<S:SLSA;AR_$LT/T,T+B<SP:-$-.LS^E\ MS<.<T-[LSQPASUH<R]!LT0Y-SL(,S`R-SQ"MT=5\RPC=T2"=RR5-T`L1_M(` M3=(*O<W_,P?#=,9?1'C/-#9?-&>C-,.C=$47=`N7=/]?-*Z+,WM[,Q$_=`S M+=,2[=,L+=0=_=("`=4GO1%';=.;K--7G=&O?,XC;=(>#=11[=5A?<X1C<Q5 MS1`J/=-<G<I,C=)3_<])O<XQC=8\O=05O<M:[<]8/=1K7=1G/=9DW=9+O=9\ M;=)_+==Q_=9*'=B"C=)2_=ASG=(2+=5-+-)VC==YO=/TO-E;W=D;3<PU#=KV MW-5LC=1VO=B%K=F>_=FK7=J2G=@M#=NF7-:RC-F3;=MLW=JEW=I^G=J]G=JN M'=9?[=JC+=NQ?=I"3=O#7=#'[=MPC=R(#=T9_D'93&S9MZW7F3W8I+W8S0W8 MP:W6E%W<R$W=A)W=W\W:T,W;SQW<YLS>[QS9E7W-\GW=N8W>Q,W1ZKS*D&W< M93W>V\W+Y:W<W:W8R^W=IAS9U&W:[DW%^%W*\WW9]EW@3GW4^RW=C7W?24W> MA-W;T3W*/_W@%B[A"J[-%W=(%[22BW@!,[=WLW5!K[>'2[6S,WA_=W@A_WB M`_[A]`W<-K[@-`[+);[$-H[B@*WBXNW@Y>WA")[?RGSD(M[B/7[@L*W?*QWE MJ&WEV.SC%9'@2LS:(!W4,X[C8?[2%7[>X)WA_]W8+)[E'2[F/Z[;6#[B(,'E M2>SEJEW?=X[A.[F_A[]XV'^YVL.Z!.^YS#>WFXNX'`.XEHNZ%0=Y%VNVE^> MXG_NY"VNX'KNW"H>Z)I^Z`T1WDR>YP/.Z6U>Z$#.WU%LW]H-X:#NY\6=Z<F] MZ2O^ZJX>ZYT.WPL=X2)>YE(>X@'MZ'5NWA%MY&DNZY5>[,;.Z9Q-Z;-.UZ;. MU#Y=X_.Z*/.YW(^[5N\U$^Z<,^Z/J\X8R>Y$.Y;P.Z\SNXC4NX[0>XXS- M[=W,SG2.Q-@.YH&N[%?^U.LNZ@'NY_6^Z.E>[F"][\9<YN8N[J&=T.]^Q.%\ MYGB>ZOZ-YNA^X>&^[T6N[_5.[0#^.<>UP*_[DF.Y,9]$:<*<=[\CN_LYN M/=S2K>,,O]LF#]4'W]2_;>VUGN$+];N[NN6G/,XTNQ(KO-7;.JW[?/<G-6U M+O3'3/39#LH,#\Y$+NI&;[\WO?!1G],>K^BXW>Q/K[Q!/];"K=$PS?61/M]= M[_593%;3_:V_/5H3_;:/?%E7$"[=]JW_9K3^AO#_5-?M]S/]1CO_9-?_?I M"^%@C]U[K^1*SO1H/^Z`O[N"7^P8C=IJW_4GO_A:K_=N_^5+'_F)7^)-_LS' MX0<)`?H`(/I`X0>D?Q"FG_JF;Q&G/Q"M[_H0?J4C]:=_OFRO_I#0?JR/_H& ML?L-<?L(X?N]+_RSG\RU;QRX7Q#)'Q2Z'_RH_D\1P/_\O\_[Q>_*G.SY,KW, MG@'ZK<_]`M'\J:_\R__]R<_]NA_^HZ_ZZ$\0T4_^K[_^U*_\SL\0HK_[YE__ MXX_^ZC_^C<S>#H[]``&@#P""!0T>1)A0X4*T:]`,@(D2)!"=*O)BQX,6* M%BUR!.E1)$*.&TV.[)BR)$J*#UENS*AQY,J5+FW>Q)E3YTZ>/7W^!!I4*,.! M"HL*)'@TZ5"F/R?*?'I29,FH)%N>E&GU8-:I6U^F]&JS)MB08+4V19M6[5JV M;=VN[1-7[E&Z2PTJ?9NW:L>]9:E^'>M'\$R%@@T/EMJU9<W`-QLGWIMP;%[* ME2U?QIS9;L*Z`N?&_M7,5B-4R!\/1TZ,L2K7JY+#_C7[-3;#QRA1MPZ=6_=N MWA!/(\XYV27>NP6+$N_-=#36TK-GEV4^U;!LEJBC'I8M_&Q8V]F3?P<?OBW- MG=H=(M]\_"!Z\8Y-DNYN]C;9UZGMX[8.N+![U\UKMP<P0`$?8DPG\QIBKS.D M-AL0)^CX:DZEJR(#J:_]:(N0->_$NC`^"9UK,$01P2L0)N!,2^W`XHPR[B[0 M6ARQH0<MA.Q$%*N;KB\;0321I!,9^\TT[%Z";4;?G@HR1B67S(R\#*.CCDDI MIZ2R2BNOY.FW!R$\2T4LOP0S3#''5,M+(B5#K$0SR62S33??''-'ATI4_DTQ MK^2$,T\]]^1S1"V3Y&ZQ^GR,LD]##T4T4;T<[*_(_GA4-%)))Z4T+2?)RHK" M2C?EM%-/'0-42$Q96W/%F]C[-%555_5T(%1A7)!566>E55%7'U*P5EUWY57, M6TU%:JY@7S2.V&%C[35999>U+%>EU$M*06E?9;9::Z_MR=D5M45V06JQ!3=< M<1'BUBYN\8)V7'777?<S8I]-;]OU&&2W7GLM#55(FH;T,=\L=4(75F\%3M?< M>P]&6*A+Y</OT:9*[?9<@NDM.&&++W9)S48=+K2G4I%+]\5RI<6X9),7TACE MC&7<<;JM!ON8LV)_E0O99XV%]V2=+Z93N`-]_GY2*CQW)KKH)K>K$TV@.[2S M:4B-ACKJ,OWM46FE^7544-RDYKKKA[?F.%#JM-0W3;&]1COM?\$^>^O)_FM8 M;;GGYB]"K<]^>U`H.Z:[;[D7AJVZL"<D7&B(_4:\:#I5:YG?MH_L-_(UW:WY M6S9K7L_8]'!VUU1A742/.,R-TKQSSD:/]EMT-4_<:\N!>CVTD>>--73:9\^< M]FYAS9FHB>DEM_?86R]Y^&P%#-AF>8']/?GDE^I]]X@%EGEYZHO+57KBC7[> M59%+!__[=T?W_KAW/8O^>.89K%ATW6_7O>+UI]<^08KOK_W][:/NGBZ2XX51 M],Q7K`!F#W;Z\XSU_H#W//BM+W0@N]WGSH,_<K'O>OOC7OR`U3[@Y4^!.6/@ M`3=8.@HNL'KT<R#K\)>^$X80@#/#H.LTV+P&(A!]%@R@#=5WP?]1SX4O-"&+ M*C@_[?$.@0*\8`QWUKT-IDZ"3P2=P6A(1)[\<&`E1&$3'>@[_=EN(>D+8?:, M)S6R62HH^SK-VGC#Q"DB"(A7Q*$5JZC#D'7QB';481"3:#_FK<YT<J3;PH9R M.*3%YG"$3`L;XVC#.GY0@47<B?-JR$#W;=&26*2?%2N91"-2,9"#<\H9"_DT M4&9&D<I[(0@)5C`0&E"$M>O,*;-8/QZZ:(^_HV4+)]C)_?W'9?1Y3])&_M4O MJL!LE!6RT2\#Y[@Z(=,GIQ1@^/QG/M"P4EZH&^,764>^X&V2?:9+G1"CJ$W1 MX6QF$KSA+<>)P=K`ISO`H1$P"?.18P:-2_/$)SSOXRLE]M,Y^8'0:K26M;T9 MLDMZ*QS#%!JXR_E3B8_)6D0$&AV&WJBBC/OER^8SGZ01E&]5RJ9#HP;1^BP' MF`#MJ.`>5[6-8D2C3D-2&D4ZTS"15%`F]8M*/6I0E=W--_B$Z4=I.M0E]:RD MP3RI3A'*4Z;=,Z$[12E1I<HD07)EF7?+U$]G(LA`Z;-I%,I45J<ZUJ)2+:,* M36K53"11R'%5HVQ5:Y%RU%;(`:QZ$/06.)DT_CS*G9!TG[')&,=73E3]4:^\ M.VP'G3B^/(;SG-A486`'Z%@"#A%!D>T:(AG906AY4TDAE1YF_7K9G`C/<U_< M9>Y&RTF\VA*UBC6M77'HP=5:%K3UVM(S[[K;T$H)M.Z+G>5^=2I<:C*U+?*B M997KPR+^4(RRI:T4:]M'KS'S)WC%+FP5"Z#R=;.U.5QG"LT)R72B;Y/./:YT MJ=A='F).?IS$Y3?]2$W`!NR)U0PO(&F:W2&^E[S<+=?N*AE;ZEZOL+QT[2P7 M*T[PYO%\"ZXEBU"G15Y*;+8CZZ%^9\K?!B8W1I(L\&FW.TO/%MB/(::P@57\ MV@9'E[4&#"-G)YDY_@*K%XXCWB]O.\S@$;EPPI2$;X*VR6(;(_B_)+[D:+WX M73PR]Y'=!&*&:VCCVR:.P\OS<(_C)[+WR?*(7';P'U^KX2SZF(OJ9#**D5P_ M,/=0NLX3LR?+2K4F69=`0KDR>+,L(A`[>;'N/3,FI^E?/MIWPGXV+SIM!F@B MOG?06(QQ;ZWW7!<3NK%%'25F+CHG/.L8R]-M4)]G*TX^JKFY,WXDDUG89!YS M4-)*3O*-G>QF.(I:UE4F42DIL[@[=SK%'BQQC]T\7B('^)O+G2$LB\MB_38; M=Z_6Y?QP=[,H(]A_UH8O53<&3Z_&AYEGW>=+7^K,*BHZT=LZ+*Z;55XG_J*2 MR.P.;>603>,^;E.T\"9OL_&-35!3=H_VOAE^*TWL<`8<RC7M$G0TA=1\ZAJH M,1$:627NJ3)Z2#%P;:G;9+34J$[<XXJZU)8$.E&QN35N4/UXRD&^L11YQ*2, M6RNXM8-RC`Y-Y3=O4\J4^G*?-A5I`-4LSH5.)9TO5$)%?P[+"]KQH3==3"'G MCLCMF;?66!4F$7=ZUN,4*C26_$C%G+EU96Y,M>*DU/92M]:%KL)[STJX:H=[ M:4&6=EL-)^YWM[M]PVM>T,V7W@;/=E/X[=[SD4_1E`2X@-/Y8VGVG<8G!CS> MPS5<Z%78D1>NK(OS,JW,3Q;83<9P\#IO^18__OO!1Y:\KAKIZC1G<LJH'XJH M5?GI%=O:F[-O<81S[^K46VOU*^SWXE]/=[M?GLJI[._PE8O[(N<;S+OO_;7J M$DMPHM/Z;8X@8"O35W??&OG*5S`2$SW8@`.>]8F-OE@<%_3!<10ST\\]CX_O M>MDQF/DWICSTPZ]%U7G:^[!//PQ)J$%RN'!#"_B;O\VB/_VC#-E+-0O*,]Z+ M+PF,,-O#I`#<.*U@OWKJM;<0/]IB/E;BO#?:/&PK(&QKK=#K,A&++FM:-,0R M,@SD-)4Y*V6JNK8!JS11IA\1)J$:M<AKMW-R/(,#0N([#X)3)<ARI44C+,6; MP,830B$DPKV3P0XD_I2&DR>TPBJ?"BN5^BPJ>;M7"@\CC#Z9Z[F1(Y(_`2JL M@Y+<XBXY"[7B*RTX7+?`JT('Z3:GXA*,XT`-^9"]\4,`:[LX)*UR&\3+,+<[ M%*6T8@Z>TX]1$2M`-$!%I$3=6#A'<<2D^Z<US(\-K,1/]!BET\/K8+C[X*AX M"BI/!,55#(ZH>ZJXP<&'\Q!2(256M$7E6+^J2Z98U,"OBRL>7*G+TKY5BI8X MZ2E55#_:H+.5R30S41&PHJ=;')##"3;-^Q(YL3G1V">3L\)M3,9N_$-I%!!J MK*TEO!)L1,:Z@1L?!)MUW(]G/"AQ#)!L##0LZRLRM$2&L9`:;)S1B`D=_O27 MQ1D[-W3'7D09LHLIF9)',%FR&+Q&?=PJ-E2X:/0V;XQ'>?+#@O0YP\'"A0R3 MAB3!A_P05`0ZAR&H=:1%HVO&NO&Z/TQ'CUPC(:(U,*$1DE2J9C2;[.`ZCGO$ M3-M(E0Q'F+P2D+1&+'DYFZRYC&.I-31`FN.U27R<DX3*CU/(K_%)#F$+HC1' M*SE*6=S$[9!*F.,1IQ1+C02EL*Q%B=LTH'A*\$A!AS1*AD/*G;*X>S)+LEQ) MK/RYCFRZMF3+8.R-VX/+<[S!<(S$D=1%IBP4JU-,L_1)B'/)K/L9'K1!C<,/ MRDS(%,%,B.$^T@/`$#$2PZRKT00[/KP1MAG-_K(#$IFJN*JBJ\AT.O/HPJ!J MR7QBS(FDR)<4RDJ<.9YT0]'DPD?Q*-W<347LS3-43."4Q(O\JN)T3G!L2;1T MQ9C+R;5BP^9\SNS\R99#*[AZQZ@\1N[\3>W,3J1#*>]TC8IR/U1T*N(DSP!D MJ-FDC^.<SBQ<..5\S_S$J,AYCY:90?[$D3SLP?$DIT0,"G7#QUB#)+X:1OU\ MDZ49RGD3PQU2"[WS)+YR4$.!4"MIO>LZ4+>`EU6CPQ'-4)HL#/<T)?L[/>5A M+R;TKK^+PL\LMNX;/(*SPQ(EGN2*I29ZL&%CP>>343?Z/A#<RG/#47\B2BFB MF45:P/E+4!#4/T`2_M$CM3*9W+'.HCT#`U)9$SP`HC0RNU$J39LD'1@$G+W^ MP5+/.;0#LM#QHT`A%=/OJ$I<G%.6U`PR50\SS5(G5<#8FYXE!%,<B]/+6,M0 M`LR>RHVWO";D8E(+5+`@=:,V==16&]3>\$N?N%0!3-3E,C8+@]+1*\;N\S70 M`]4S>])*990YV4SN-$5?),VHXT?T!+?A0+\?2S;\:[PI#$)(E3\!,R=^^RM4 MY0W9Y$C:;-597$Z,O+KD%%;XS,"ER\(SN<GZQ,NI;-:[HT_:U)"*$S>D6TKD MO-8[S-919,JP(SF*2*:<E*LZ#=<R?%9C1<^F7*IH3$FZ;%=Q%45R=3E=_K/7 MP]370KU7R8O/8IU/?M4JQ`1$^0S$@.V].LTHB?)/A\,.<ENHN>H1BF66!LU* MLSM$AE4.30T/%*T[$M6MP`I3CUW$[=0TU,S8X/M0.114E%68$R61696^(US2 M52*LYU(UF770`PM5`A._*7U4GWW.0W/`)JTU.(U9HQ5*;KH\'\,^IN55IY5& MUD.W860T[TFO4RU#.SNC970+3Q196<':^%LA_T*T]P384#S4,FF="&32*,VV M0)7'3%4CEEV+LE47(`O:4G46%V0V!YW,D*A,5NVJ514WETM7657<N%I<4:D6 MC;VA:7+1(;P?(?/:U"/6B#36#7%)QE2)2.PV_LB$3=R,5G;9W&L=UTZT3(.$ M5J#\5X122GN]E]5MUM:=5I,K27#-*=_M.4YD1VS!76'57:#DW;(!NB3Y7:Q@ MWN`=784$6ZM%F^.]*K\\Q7FM2.AEQ`%$5.J=&_/TPGCMR6K%3O.M75X$WT\J MS-$MC:>\JMQ\18DDW?E%70)=7ZYQV,?=1K/BW].T3[(#X!D1T%CEV_PUF0W] M2P2^5P4V5`8.U\!(QP.&X`JVX`O&X`S6X`WFX`Y>X`(T$!!^5P_^6C1!"[PE M87%$1S/2VQ1688B$W`D9&O7$3,F5C_]UX8F+5^]T)SN!F_N]S:=:V!PFJIK< M72^L3]DUJN`D8H\S_F+D1>(!'$[AI-TF=F*Y'-_H!5NK>EY7#<K[M.*QZLKN M#$H,64NJJ]<6#N-^&N/K1=P[B<[PG-:T7.->:M^4O,[VN\[FA<WAK>/$"4T` M3L/.!=`;+F!@].,_5N1%9N1&=N1'AN1(EN1)IN1*MF3"_5Z%$=L1OF0=!I(3 MODJ0[61/-F&K?-M0'F6:VN%A&E\\$<A89=5O$^`>3.7,@F&$;4,]1E;L5%;Y M3>1:/I@G#LN+@CKH]=?>M59@YIEY0F:FX]:Z\E:+XDEE)B,L)N-_%#N6.=?^ M[%:=VF1JQI@V=L4ACI)^94]D!F=;WE=X_>*K[-<\1F<Z3F=["60;DR0_BW= M[?5EEV+6>0[G]J5E0W)E;7;<>K58%,%8?]9/"E9HO,/?AG[.Z87HB:;HBK;H MB;HC*85JJ-3B1Z/F=7H75EA4TYFD@YIBQGICT5E%C[I9?X+BEVF@39)''Y8 M6C[H`;7I0R[-EHZ4518KZ;3(T)TZTB5JB=SEU.7I/1%FO7'F"S'?]IQCJ-9$ MV4WJ1%GJ+=3"#7GJ2YQF/H;G7ZYJ$UUG?:T(;#;#1NEBYV5-WTUK/=PJZ;79 ML'Y0:W;CCK&IO?Q*;66:]/U/N=83<28<>R[?KJYBJN9JYIQJO\Z3>G[CC,1K M]SUJ(#;JR;Y?-59LD;2XLT[-KYO5FAY(@+[I_IJN$5)I7(:^;%DQ[=-62]5> MR-1F[=>&[=B6[=FF[=JV[=O&[=S6[=WF[=[V[=&[N`6[N$F[N(V[N-&[N16 M[N5F[N9V[N>&[NB6[NFF[NJV[NO&[NS6[NWF[N[V[N&[_`6[_$F[_)&X([% ME==!;S?UVO4V[_>CNXY=;\IQ;XY][P"I[P-E4-6JT.*];X`I+,AR+?*;NP*] MM@2K)JZMK`0/GP2"L/].5,TUO`&G+Z1](.T#G=R*#M3.[K3`@WI0MW+,[A M,PS<02O<"4T<?%9<!;?\/P&<3Q[(`JG<;XC'6%,\0E?<<]S<!)WO!@/\1MO M\1HW4O[VKN^AMPU7_G(D'_+.HUP@W[P9;_(2__$$2W(F)_(EYW$L[W$NA_(& M%/'%L]PN/W$E1_%0S?+!0O,NIR8TA_$OSY8.UUH/S_$C)SP,I^\=-RP4Q_,G MA_.L_/##JQS/>_(\;S<&;]!<W7(B?+0W__-'A_1(E_1)I_1*M_1+QVW7QG2* M(]1-[Y34UG1/GT=E[#J,-=RX%O4^X6B%J]^"2O65XYAX/NQ7EY0?CNI9IW58 MQVOT!>M<Q^PX!EY7]W55;RI9U^=A/Y15E^')YN=01_9AY;I^9.6+%>1G1VUK M5Y>'QG9E\>AM]_9O!_=P%_=`4L-\%>5Q_VL['4MY5FET7UF]E-=0=_9Q_I=- MA+1A."[DG`Y-B,U,=[<,^JQ.99_?/O:+'O;W76M-ID94@HSU8W>_@]];469/ M*=;EY?1JB!];B4_.A.=`B^=>C(?;3)[X+.[X\_UXD`=ED=_X)#Y6CQ=VE&?I M#@GXBF]U@L=UF-_;<D?HMU9??8_<9O(V>L3YH2?ZHC?ZHT?ZI%?ZI6?ZIG?Z MIX?ZJ)?ZJ:?ZJK?ZJ\?ZK-?ZK>?ZKO?ZKP?[L!?[L2?[LC?[LT?[M%?[M6?[ MMG?[MX?[N(^]!J=5/S_".7)[QE/O#Y>L2/)OH[\O^0;"MG!TK`]\!3_Q#$\@ M\K-R"Q>?Q__[@Q>X8U%\/8>PZANT\D/T\C'0_JY/\,4G])T-?!@2<S=O<S(W M_;+__,]_<='W\35G<CH_G1A5?:YE?="??2&'_<F2?='3\-H?\6MC.R%K?-XO M<-^O<K%W<0+/_>87<^.'?BIO?>`O?=)'_NL?/R=7PCOG_#7U^M/C'"EW_EW5 M\IT=)[MG^*_>[D_0._7;_5G_X/K[\B/__JW__O'?PQ$8T)]&X['RGD'"``" M!Q(L:/`@PH0*%S)LZ/`AQ(@2)U*L:/$BQHP:-W*DZ,?/P8=(8(46++@R8$I M(ZX<Z?(ES)@R9]*L:?,FSIP$11KDJ?-D2P!!@S8DJO,HTJ1*ES)MZC0IR)51 M3:H4ZM/D5:Q`K:K_EC2*UBI(:E2]8I2Y->J9G>B[9KU*=RX<N?2K6MWZDZA M9+GNW5J5[-64:??F1?F7K]Z^@Q'[Y2O8+N3(DB=3KNQP>#&B<4F-GP8&>W M8`MWWNQ9\V+0EE>S;NWZ-4[,JDNG-MT3X5K-H3NC)FR;MN_:L(<3+V[.._D MR@&'%5[::N;=SV<_?B[[+V?H1I%S[^[]^\VM?GM/]TV8LV[SOZNC_UQ[*/CX M\N?3OR@>N_O@ZJOCWS]V^6_4%98=:?49>"""]/&W'FGD!2C8=9XUF)]B?4V( MU7D):K@AA\0M&"%M;ZUEG5F89=4<?Q^V!2"$>&G7(8PQRCCC<=O1>".._CGJ M^%.!._KX(Y!!:C2:D$4:>22222JY))--.ODDE%%*.26555IY)999@A<60S8N MM)V7$FHU%)%GC:B0<UJJN292!/[G$9HL%>@FG5VJQR:>><H$7T)A]ADG2;NE M!Z!T`^IY**(P>3EB5">*N")[;+54XIUIWFGF>*(ENBFG$H&)76,.\A2IA8>- MBENAY8D9'7"=NOHJ;B*^&2"MJ;':'ZZKR@IH?Y;"^NNOC,[ZGGZM$FM=I2'Y MY"=TJC$+++2).L=><\62BJ*UJ/ZIJJ3.:AHMN+!.:^BL#\XF)JVIIHONK3V& M^RZ6?/)Y;JT9UHNL>8/JFVUYS\+[KY($9FHJ_H6.=55JJX@E7&QHJ+&Z(,`1 M3\FEF04W6S%0D':+,:;*GBF:5)2N]['$)9M\,LHIJ[PRRRV[_#+,,<L\,\TU MVWPSSCGKO#///?O\,]!!"STTT44;?33222N]----._TTU%%+/37555M]-=99 M:[TUUUU[_37888L]-MEEFWTVVFFKO3;;;;O]-MQQRSTWW77;?3?>>>N]-]]] M^_TWX($+/CCAA1M^..*)*[XXXXT[SF8?D4L>^4R4"]3'XX9//GGEF`-@>>:# M@Z[3Z*$#7CI!FP$^NB<KXXYY;&[_GGIJIL.-^J7;^XYZY[3/KOJLDNN^_#$ MSWX[V[O[WKONKQ/_]/SOSM,N_?356X_\VLH;!#SLR_M>?>N>V_[=@G_WU! MNSO/O/3A-V]\;_G;K[9\Q?///OONV_]_,;3GSWZJ!>^[]W/<OOKG?C>=[W_ MU2^`!M@^FQW/0,6,'[:8R#:^L<Y!&XO?A,<W^O0)T$,DK"$)CPA"E.HPA6R ML(4N?"$,8RC#&=*PAC:(0YSJ,,=\K"'/OPA$(,HQ"$2L8A&/"(2DZC$)3*Q MB4Y(A2C*,4I4K&*5KPB%K.HQ2URL8M>_"(8PRC&,9*QC&8(QK3J,8ULK&- B;GPC'.,HQSG2L8YVO",>\ZC'/?*QCW[(R`#*<BM!00`.V8\ ` end
Am 08.03.2013 um 00:26 schrieb Bert Freudenberg bert@freudenbergs.de:
On 2013-03-07, at 23:54, Louis LaBrunda Lou@Keystone-Software.com wrote:
Hi Bert and Minecraft Lovers,
That would be an idea. If you generate them into a "*generated" category they won't even make the package dirty.
I created two SS3 "Minecraft Constants" and "Minecraft Constants Demo". I added you (Bert) as an administrator, I hope I haven't overstepped in doing so. I think you can remove yourself if you like.
Why didn't you just publish into my existing repo?! It's open exactly for that purpose:
http://ss3.gemstone.com/ss/minecraft.html
(also, I couldn't find your repos, ss3 times out when I search for them)
This, sadly, does not mean it does not exist :/ For reference, the urls: http://ss3.gemstone.com/ss/MinecraftConstants.html/Overview http://ss3.gemstone.com/ss/MinecraftPoolDemo.html/Overview
best -tobias
+1 If it is hard to discover with the current tools one either have to adjust to the tools or build better tools. Class Color have many class side methods that make them easy to look through with a class browser.
Karl
On Wed, Mar 6, 2013 at 4:06 PM, Bob Arning arning315@comcast.net wrote:
The pool approach is probably good, but I'm always a little leery of things stored in different ways and places. Since the system browser, optimized for looking at classes and methods, is the primary tool for most of us, I tend to prefer ways to work within that context. Defining pool variables and then defining methods to return those variables does seem a bit much, but what about dispensing with the pool variables and auto-generating methods like:
brownWool
^#(35 12)
These methods could be grouped in categories to facilitate browsing for interesting textures/objects/whatchamacallums. For most of us browsing for senders is a bit more natural than browsing for references to pool variables. FWIW.
Cheers, Bob
On 3/6/13 9:43 AM, Louis LaBrunda wrote:
Yes it is. But at the time I thought (my mistake) Bert wanted/suggested that I create instance side messages to his Minecraft class. That would require it having the pool dictionary defined before the methods could be added and I kind of wanted it to be all automatic. As it turns out Bert is happy with just the pool dictionary and people can add/use it wherever they like.
begin 644 Minecraft.zip M4$L#!!0``@`(`"MX94+BX&B:1!8``*!*```5````36EN96-R869T0V]N<W1A M;G1S+G-TO5M=<]O(CGV>!_'9NY#-@\S5R3UF:I]2.PX\5T[\5JN<>UL[0,M MT1;+DJA+2?;U_/H%#M#=:)+>J=K:O56)"!QTD_T!H-'=/OSIMXD[?R^)I M^&N>U`])EB5GY:+<W)=-D@W2-/G/=7$H]X?DN%L2\3'Y2YI.QX/_2NIM,DJN MBF:QXG)Y4AR2_.,@_9A.DMWF_;N3^:IHRN5U7:^3_?%^L2[V>ZI\56W+15,\ M'$[K[?Y0;`_[DY\J4(ORMZ*IBOMU^;W8E%3V_?N3GU"MC7]:'*KGXE`W-T6U M3CY53?)I^\S4;K<NDT]-4[\DGUZ>7HJ&/G^HJ*&?BR=NRH$J$7V8[XJ7[9?' MQ^1S62Q87"[Y_^=UO7ABHL&SHJY=EL5SN1=Z7NS6U?91F+NZ7@9JOB[N8^ZL M/E*+`U9NK]?%]LD"\T-1-?3N=;%XNN-A(NJ/\KI^6=+0@[[A;S`1&LQ-K!_. MJF)3;Y>._;(IFV+MV:]UH":[I_0-^5R?ZBWU*KUL90OUC1KGP'1SU59,%0_ MX:?8+O_]6*T%611[+G,XK$OZW':QHIG#6-!0TW\JU)3%DG]?"*:>;6-&A[:I MW*^,F*/<:('78:%9W%X=]ZNF)A6-./<R@J07Q\53>4A.B\7AN-?'UZ8LMV>O M);%/\B.U3@M2CX,^3IMZIV2]+>:'"@6.ZR4/FB-<O6>:A8JFQL_%Z:JHMAM2 M01J@PSZPIRLREQU;3<"^E>L--]'QE^7C(XT-:C6+FL8=M>B7VD"J$;Y1[<MU M23-1-(<_M"F*S6E<93X]PIP,\NFZ>,6/UF%*!/@8_?QHJ&)]3^.N+PDT)J?% MZQ195";*('?%FM^]*,BNMB!8Z:E7]6;CE8"8'1DU/6LR2NVP<N?5?J7D==T\ M+58/\16_.&7,"H-F8SM+KV-YGM7-M]8"PVMGQ0@U'\M1#?H"0TZH]:5:_84 MGOJ/<KVN7[C46?&ZKAY7AWFYW=<-><=B.5\UQWNB#N7"N2$UR4__*!TI:J&, M40I%OI8;1ZIV.*[V9;R:*,]SIN0U=;L('YNOZN?2MV+^4C=+8AI^Z7Y'#2>7 M<M84CS7Z?T9Z3^.1,.U\AS[Y"U\VN/K5;%+U-#+)9R"Y]B_E%OQM@INRNWA MEGTT`3QU!U(R3YTWY+B9Q80Q43:B[B"ORZ)9"[DQJO_E%:Z&G>%YT6S6[%+. MR^*P8J"DY4)^O_*0GJ,J-4U,E*HFYU4C/VQACT+>E/M*EAI9%_+!H!>?=O`Y M3=U^E:6C7GRLY6G4GVYJ."/'DI%0<TFM:1K9G9_3$G*0WX('I*1).R=%HV&H M#X$2O3T_-MN".RK/^:9<P^M^717[L(B!NZ5!3+[R:BF_XJN%OBZV3%&3RX:J M7Y7K>CM?5PL&ZQ>Q?D^='6E>>(99D_DI:LR4T6%F56M!U@)=;!]K0;SF,O/] M^/BH)5F_^.G4EVG579!07*M@0JO;_MJ@@TV!\DWQRO;)3U@Q?+Y0Q^U.UM%O MI#K4#HT#(N[BPO$RBS''4EH/35W+!:FK:SF6BH7)`T$/.?#D@L;\8OLT)_=% MS^=J7]U7Z^KP&M2QBTY;:%#%+LJ*R"L^SQT_/Q?DH$%@$IDRD\CL64TNS1&B M=<SIW(*LI:3,+5-^;IGA">6GFU"F=4)!8D(O#N5&O,#?J.L_+MF---OD;>G M\K[^!SVWC^M28RUA7+`E'**M0&)]BEE=G@+H`BZ+Z(IU62Q9-2Z+7;6_+/XX MKBM+RR`8@'MX63P7^-%8@\GO]7R'J.=2O9(^9:R5,<.MB`ZM<GXL+\MG?@4O M-!R>L6)[!CH-SNF\9U2T?KWFAE0;K;C1.NR,Q&XI5'\D%UFP7$D4(7I3T`)9 M;)0\WH=PDQ<!N`L9%/$<)861B7$B('\C%4^NJO63#I!7^:OZ'J^CSEW5M01P MX?WU?B^+`E.O[5`"H%WEK^IG-L&*BR17Q^V2/)N:IPL.R:6^,%,M:.5[HOU+ MH/-`HS_[P)]2'!R85=7L`DNK3V"NT"[/<9"PJ@(PYX7/<`W-BF?OBNI@.3*, MJ]<%11O'3?*]A.H@1#.T+'0&8$NR/$RAQ:LM6%047Q"))2.&55QXK%="WO'T M!5+F77B.OY+OK(._D0<BX_?^JP-.8S!XKP[(SNM[?=!`_4?Q;]:,?Q1/ZA^( M<LZ!2'@&?6(L#*WCH(@W_Q_W^VI948#Z@\:^#NOHCZ;8/L)^A()Y7%/`CC7W MNF!_?ET]^O+7M#DJ&AN97U?;)Z[/3ZDMFBH/Q*;7=;5W0S,8CB(^HP&P_,7% M@';C@L@0#?(\XM-\$/%4(QTK4A_WNN/5>,QS_"CWV/Q<<[Q1+KVU*H^(]OJX MV3U56_>\IB!<25$%96#YU>&%FOT'11Z;X=&:,Q0('6"%)#9P:=OBI?/9?G` M3[=!(!*[`WKZK0%M:/T.T=#R10+0"K?KQ;ZCX6.#'NC'M@>L'QX\BK#(,9?% M9A<QICJ;DJ$YKF+U<=`-;41H,6@Z`!K]PWPQ%H0/W-9\Y!)QMMI=A0:0@Z=X M_E!97>NBK'%=5/3.XD'[NBCK8!<53;RI]R5^J'6L'#<4E9;;<_+QJV1.JS!- M/N]BD["5]114)>)46P(F"C-?E84\RIVWS7GUN,6/Z`)3O*(X;DUK[0-ID]W_ M!M2\Q4/M(F&G/7^BK;<S;\OHQQ0)+UW3ZOR9EQ%0!J]IE=SO90YX5&-D.`B( MCOQ@TD+8`\W%'^LS(ANZQ?:'N(NL?7Z^-:!M_OF5H'',H>>--`3$T^D1[- M<>%"-6&<-Q8.#CF0,HT1Z^;1@['6\1-[M^/U3(TZ%`63_S[7,IH.TJ[A@,< M_+ZJY]5YXU^.B<.T2;LBUK4K@-H&$X`(?3SX=W-T#,+%O(T-"7'IKQ&X`=( M8^)YT.VV7H-'N$PD[=5+[Y5I"LKMXV$5EMD8F7:0BPLHD&)AT8V1:!=ANJQ M4AT?*0K`[RGO'3VEX_Q2/1R"8J(],33M0MHB!YHFQ=!XT"DEC;K]?LO__:#< MDA++?M!3X6C&0^>\S[CE-43C1'&?MTVQ6_+6AXF="Y%OFVKWPO[3$=_XW.,W M7N<?C5WPBK=/[HH#O>@.SAR_NN466J)@T'Z?<$?:&UMXC+"%.R18>(SD*'-/ M_SE*I>1II$I/+_VB[!A2.[(5^HOEG]0LIK?5=0=WT7B5GJ:%DB9_;MZ_1#* MD;&J.3`9-I%BQ6QS0F&?*22;C)J]VHQRD=&H&Q"K48;-)I!J-PK`<+#@WU%X M<$]Q,TU.4_%Z@],K.<]#@=_KS7TE'B20TFSA*<JS)U$".O;]R4[>LM9M>`Y M*YK*WU50LQ_KYI4X?\OQRW7UR^=B7[Y_=_*N>_61+.H-GUN1H]GLJ-KE99+_ M=?A77*>DDX^CX?MDUU1U\S$9O#NAZDM43WS]=R<G)S__\DORO_CW,]7M:Q"? M%_T/-S)4Z]U;U1+:UJ[JY?Z<&_R^V">O9`''+6350U4NWR?[OHY./Z8IO;C: M5H>J6%=_E"<__>R_$3J;A`(_GYS\M"_7#P;Z=%N?_=I!O]S6EUWTZK:^Z:+S MV_KW7T_>)?]/71Q$7>3F_FDWDT_)@0+:X^,J.?N5^QQ??'W\UR0=3:@C?`-& MS(!)7(2Q9#AB%D=HQ&9C2'$U!C9C-KHC(_@O_Y)/J+7C#R2T5V8DRF<YP+!= MDO+3/!F/4%ZNTOC3^13$O5&(V'$OO!M`1KEN0?VK@WO3:=)]L$)7(`!R=@( M$&M(^4D+=C$%I*..4)=VM'9D1?`Q\LJL_2GC=+2$>[&_PI-!&='$*.XO]'@L M)A,'WDC#_',(3WCFLH[HAL_DHXF`7:G]^A('G!<`1(X3`.&JT#&LH#Y*T$H MDPCTO,EW19K!-X7<8OF*5LFEBKL[U"JIZS[[72XU'"CG[Q09G8X5Q>4B-PP= MZUXRHO`0,M7>5!B)YN"PPK+[&PB;+B(Q-#/6JC7QS25"I6PL)L0(J)+PV$R M_&!AJP7#W`J#7@U@!=$M)NRHC?J&S+PH'G]1,0DH^`T9MU`O.XE']UN7GGXB M4!=7H)BMH7+AFQD0'*ZC=:GG$2#`DP3,WY*B[!2X7I=BD@8&,0,L!3L7J%[3 M1S,T,[Y/Y1<.1A8W9ZD0YE:HQZH09%;@3U@A&HI([ES1@&Q,+D^^SS$@&Y@4 MBF]B?6-GN13N7LR*4QB-W.O:U[3RN6%+'':2D,^FB7R`+W!A<!/E_$>FF4-< MM3QG6SK5/E&/E./#")X!D8:]+NMY#$7*+@WHO?]U*M\IXA5_/(DE.,F%?YI! MH+?#7D7U3>ZNF$MF@IS:8SZBN+V&&X%VA%=(.GCCV,$R-H_L!C_O0(MN3P M2BU$OO'2,^UB2MV;9S=K*@_7T%)U-A'WT+F4%FUQKJ5]11UL8P"QWEC[41L[ M-/(5L*-PF0W'9Y%PJ1U<=2IUHCMNK`9L]F%'A=$"8BZ]X7X9#)??#,'91K?@ M7#O-`]HRY30-(KX7AQ(/`V:,.QT8N);OS<R;(W-/LR!06QB-`^3V'VBSZ8?N M.@!/#(P]!E!Y22--`NUNV5D,Q-^V0Z/1$+UVQ^A._VFQ)@?!?QYK?O&QYB5B M36UY/N1I,&%&/IT&P/F7;`9,TP:P.+!MQOD#['3@LWL3"40ALTR\8R>M`.O( M&!*?/0"G,'#8IL]9CZ8?G%S2#.`@IH+IN3A>/;.07%6B8_KZN0^2,E95DYN` M(6',)RFP#^1J+ED!1C(%P)<Y[,!'CONJ%D`;?4"=-`:8,/<;^0RLOZDRFM>` M[X\4ZTMP'']-)TA+'LKXR$4S&1!?BL%PNP4\NGDK9)C^\IT/!REKJ1)DX!. MI`;'_1/0#*A/G(`N8B"000'KGCK6IU+P6(]F@%U.!;1Q8*&PI"`P=5D6/&]I MX'VV!>/<F#CK(J@87'%(PL",\7LE&X-;Y#D](D*1H0.1G@$=P%?Z\C0PR2)U M"1NL1C.+X(8"H\3#XC(XH'QC!8POGBC4=L0CQ8U9YG!>41X&QM2]U3KGH<.< M9W:`9`_`K[MZL:=VJ.:*8(A2Q9R;<2^S?GOJ6FR<]M05#!Y[RHY'C@N9%4;+ MIRI[C19&>`Y_Q>Y6V(F@+M'$!^F(8D+:"3[)TQ/GGQ@3&V#9;R>DF`+YV!30 M+!-K>;.NW+Z`+"Y#%^(L%NL-)AUQW()L9@KTM&#:E;=;`)O_9I:]H>?]02ZL MG77V0C0=T8/+DD%0E@+H2Y>Q`XKQZ,^?,<4F@W:Q?L<VF_:7:[NU,>(^EW0# M_S-5`-DW,.S4(6%G,U.HO:F9*(X#4X3V`X-XUS5QK[3[GK'#G/5E"ACK&RD4 M;XM<DYVEN5+6TD:N:<;21NZ3P=(0_X>$'[@N[FR4^<-;3^Z!RP!B;S8$;S*! MW$D0;"M."]*C(".)SH):>.LPJ".UIT'C2!8?![4J]IT'H8@F&/'",0(;$HV\ M>QE^B"7A?"R+!3HEB#N0A@2-4L8>"TP4_<-"&P8#(%(G@#8+31%(L5,L.I M1)RZ!'@:X%B5T#0D,W'_4=LF-86-!PPGSG%R[C3WHHY;GD2BJ-941)(+A<ZC M6YH4%3X^*!P5!NQD4V88AT=_=.B=#Z4_O,H_<I'Z3>(TDU25^@?1L_F>+DN M9BIP"5]89*<>LYE?X112*TE8#]]F,L*@B[G#Y"8)(7;F,1_`("@.R6*HRN9A MLL:@H8*%Q2''%M/DD7$4C/=W\LG";AV+04@OXS5FJLAKS^$$&6^DZU')^G, M;?!5:C+0T"L&HTPTOSJ,8>-18AKB@DQ0GZ$&HQ^/(S07=!2AFK4FDJF5G,KI M;"9.NI7))H*9%9Q+H)K)O4"<W29X&N&:YR:BJ/USW4)E<NK4RGT3P=`*D`4G M^"3&&U<>&N`RXV#(W$J;(@<PBT&_O4H1T+63YA!FC&)!=.H%E>E/I7.G7ITB M8>%`<!HEV.&#XQ;J%]C0Q$;CG.G$0VX7E,/[FG0\?&D48<'H)AB0OJP\&_7! M2_:FZ9DH2:R^-V\O"I(&O<4Z6S\80LCM0^1`2$CJXWY-!3%+_%@0M[1CT]+* M"V1?$$K9I1PC;#,#L7L?QV"8WU1:Y'(#>?)X[%LY@L'!8!A#RF#POL,@B+<( MC/MT0OBU%,C.+<W/9M@&#Z&8>[F&_H#YTSDDGWHFS)S:-2.L:#>@>6>=:>6 MB!':2830QB`(6656M^3=K91&JU:#=@')-;.;CFDH$M+.HFU'IP2G4D3ZEK5+ M2#I:M#71IK@C(!P1V+YFGM=<2>Q`!8V3)C%D>1#XHU'65Y=%R08^#ORU'#@/ M$2Y%:9585-*`AL42H^\3+?TT(W`Q:9=>X=##EKZDN(\UV9C.^TT^1'C+\5EI M'E8G5QOQ)(XB8ZD0L0G<V/!/,'\S`RF].)PP"`)KD3(Q5C)OY023O+$Y6& MO3+.[,1TSGK%/^0>>V1?[(]7\M2@R`2%]\A;J+XCLPU0YS_)8\SEB++(%O>Y MHHB\QCT2GS3*"IR_64#V6_;5D@7%'QRW47W=9&0$=^[P4<%8S^#Q^E-.K7/( M^XNU7,1HTE^LZRA&[8)ON(LWRK6=QG#67Z[K.E)I8KW7W:TRFN,:5@(I%3)> M80"3_^L=Q4AW%,./HW&TH^"$EC_?4<S]CN)W["@T+1?K$UO'7(^T$6U%=YE0 M[3A?USD3=+TO>=?YDU:!X%(0ZVM*+]1^)KS)[0W+HKR%4WW1W%PY[QK&#@FY MOXSB$[TYP!+J3[1YW83@L"L:M$JXZL@^Z,T3=N_&VA0E#6.YF;10<T@]-**> M\V=IK,\JAE=-'=13?B3EV]G&]B@MZQ89ME;RL2T2LA6CZ'#8+9.W0T,LYNV< M97=3+NW82MH'=JH^?1FN.%,D7(VSR_:9S0R@4GR=,O)0S^C()VWF,_9LF!Y) M@>8Y@5;:5&AW5B63$>5%ZUF5D41G52V=5;5D=JSJF$DB^J6A7[SJJD2)1A M'6Q+Y@X)U_!;0V$U]K?;><?+-ZZV5:A:G\FDV/3LW&2!-!=KSG&7R6/'!)V MXSA[:J5R.\CRMV7U^U<3[N$R=CQ3=&45E:ZB</\H:IO8W1]//1HE,;*KQ@X MD;U7SCVHS1.+1(:/0PEP_US)EB4)0[#%T$[7=S:MLQZ)W_VO:H6T32M^WU M1&X+O;$]["G3V1M.NF4DX3N*UJ5)R$O'LI`[]E1OSW*LPZU,=78`*-G-6+1 MB>AZ-X7=AB73GC*=0<G&4:DWKDS["G6&9=!3J#LN*9H54N%%IK%'3UX\HFLK M.M?3>-2"[[/)\OY3N8B^WT(CQT+'-SAL*#ZL1.CLD^S99L<*[,SQ:BIO<EGW M&F90;YIVD"*-G?R+VS2F4S)WGYL&1^KR3HPRHFPDHH/76,O8W-/6A.U,<. MM$?J["2ZF?S6PM"8;FJ_M;"A+?+&ZIEURW16S[&4D8D=@'[S[P(PX-.WRL@? M"*`,1@M_*0!_-W:LVP4C)C-_.H!2[*?COR$(P9*T,OQ)@5]TEC06CY$:O_< M("Q/(Y'YOSY`PW/%HILRK%SASQ'@/E,/^6NV+!3SGG[@H<C5&[CCZS,O,\X> MMR#F;QC<8I5]B/#60F6EX79M*J`$0!AT_^<./#40FS][P`:%)]3_8/;N$$) MS1]#^&G)8D%K6HRT]8<2(8J:A#(]4OXP-D%]?X(0]B;O3OX;4$L#!!0``@`( M`*IX94*?Z)EQ@`(``'@&```0````36EN96-R869T1&5M;RYS=-542V_;,`P^ M^^#_P+@'MROBV'%2=`)ZZ!H4&]`7EF+#$&2`+"N)5MGR)!E)^OCOHQRC+W0= MNEN1'&CR(_F1^J3P6*L"QK]K3J&40IJ!OT^C#CC1<8U].,D@8FDEAL+=96C M06`K2?;WXBFH$H9P2C5;.%P*U$)*XB%)!E`58<<_SWYQ9L'4&9/4&$P%25G MFL[LB!?*]T1I+"T9_T:UH)GD9[3@"`M#WVLRGOL_*V,Q5BDE1X)9H4H$-)'[ MPD>JJ6F-JX%LYTJO'>[%Z+KFB.]SA,VP%11-*.+2TJS,AP$;W^L-=,%L<D MW@NATD)I`G'''W,.#44P(N<=W_>#;A?^XQ]@[C,>KNPKN&$S@L94'"[4+DY M=@Q#RA@W1I3S$,S?!OJ(I1:X4=_[Z18+8G8F)(%)*!6CTD7":0?<;/_NEZ/? M//0Z.8&TU[9*!F2XCZTT%66FEGT"FN:BQA&#IV5;`($T#GSO%@H&E3)PZWMH MD0.X1^-1E6C:2T7`<#D#QS5RNC`.Y_(D77-]*21'=PP6@>E>#-G:%8]BZ+4< M(,?(A%0+`;?X6$:KEU#[^:BUI7DWU%I$7R2=6N=B/G"/OXL6NL'EU(M-_:Y MIN6]7_EN3/N8"GLXDN9]6HZ<B45!J(:)IY*T=[NZ6T"V('/H#CE/.YYOQ( MF<BAUJ^BQJ)L4-<.M0%%7I"+C8I@YJ[Y9BV!@VWCEC(\Z*M#2YHU[+-*H)U M!-=W.W``AT*C("YUC?=]XA*\5Q*@JM'9S#2=3J/FP)A4!K??".C-^GFJU01? ME`<!O0O];&TG,>#3F>(+.8`$+'.NY-`#`$5.GBK#&[2(01+%'T0;21Q]Y(F M_@!02P$"%``4``(`"``K>&5"XN!HFD06``"@2@``%0`````````!`"`````` M````36EN96-R869T0V]N<W1A;G1S+G-T4$L!`A0`%``"``@`JGAE0I_HF7&` M`@``>`8``!```````````0`@````=Q8``$UI;F5C<F%F=$1E;6\N<W102P4& 2``````(``@"!````)1D````` ` end
squeak-dev@lists.squeakfoundation.org