Friday, December 24, 2010

Remembering...

http://www.youtube.com/watch?v=XxFvpHUIG2s

http://www.youtube.com/watch?v=EdyxPugh1Og

http://www.youtube.com/watch?v=cx7vUsydtok

http://www.youtube.com/watch?v=og1HAkjOuL0

http://www.youtube.com/watch?v=SmVAWKfJ4Go

http://www.youtube.com/watch?v=Keolc7BpTcI

http://www.youtube.com/watch?v=qwoNBaOh1_g

Friday, November 05, 2010

Xmarks staying alive

There is always hope...

http://blog.xmarks.com/?p=2007X

I actually quit looking for a replacement and switched to the hope for a white knight rescue.  Really good technology is hard to find, Xmarks has it.

Posted via email from thegreatwaldo's posterous

Thursday, September 30, 2010

Xmarks shutting down

This is more aggravating, since I've just finished installing and synchronizing my bookmarks across all of my machines.  *sigh*...

http://www.xmarks.com/msie/upgrade/1.3.0

I guess I'll be shopping for a new solution this weekend.

Posted via email from thegreatwaldo's posterous

Tuesday, September 07, 2010

Increasing Security

So, after procrastinating for a great while, I have finally installed Xmarks, LassPass, and CrashPlan.  This is not the most important set of to do items that I have, but they need to be done.

I live on four different computers (not counting virtual machines), and my bookmarks desperately needed cleaning up and synchronizing.  I may actually start using bookmarks again, after resisting them and using my memory and Google.  Xmarks has many good reviews and a fair deal of cross-platform-bowser support.  Whatever it takes to keep me organized is a good thing.

My website passwords were getting sloppy and packing around a logbook was not practical.  After hearing Steve Gibson's review of LastPass on the Security Now podcast, I was convinced that it was the password manager for me.  Xmarks can do it, but at this point someone would have to convince Steve Gibson to switch away from LassPass before I would.

CrashPlan has a home plan for unlimited data on all the household's PC's hosted in the cloud, and it is quite a deal.  I have a LOT of data.  Having offsite backups is mandatory in a backup plan.  Fire, Floods, and Tornadoes will easily wipe out the external hard drive in the desk or filing cabinet.  I've got six computers that will be sharing this account and it will take weeks to move a copy of all my data into the cloud.  I'd like to see a Drobo application for CrashPlan...

Now as I have typed this, I've noticed the media upload option for Posterous.  Images, audio, video, and docs...   Wow, I'm going to have to try this out.

Posted via email from thegreatwaldo's posterous

Friday, August 06, 2010

GenCon

I have spent more time playing games at this GenCon than any other.  My picture taking is waaaay behind.  I am getting some video though.  5 hours of gaming a day takes a big chunk out of the time to stroll the exhibition floor.  I played to Pathfinder Society events, they were quite good.  The groups Seth and I played with were a lot of fun.  I now have two first level Pathfinder Society characters, adopted from the pregenerated pile.  I've been poking around with my Pathfinder account, getting them set up.

Tonight I'm meeting a few classmates from high school, and there is the Star Wars dance party at the Ugly Monkey.  OR possibly finding the 4th Ed dungeon delve or Tower of Gygax game to play.  I've got a new GenCon pastime, its called finding Hazelwood.  I've already found Waldo and have video to prove it.

Posted via email from thegreatwaldo's posterous

Wednesday, August 04, 2010

GenCon, Day 1

This morning is time for the the pack-and-prep.  I feel that I'm going to be traveling lighter, but that remains to be seen.  D&D rulebooks will be down to the core books for 3 systems, since the iPad will have the accessory books.  The camera bag will be smaller, now that I have the Kodak Zi8.  Doodling supplies will be down to almost nothing.

I don't have any specific purchase items, other than Gaming Paper and Campaign Cartographer.  And I have no specific events tagged.  Most of that will be planned tonight.  Time to get moving, 4 hours until departure.

Sunday, August 01, 2010

Move your data out of Facebook.

I have had a couple of cases where my Facebook data left me.  One case the FB brute squad deleted some pictures, and I could not get them to tell me which ones.  The second case is my old data seems to be dropping off the end of some time fence.  You really have no control of your data in Facebook, once it is in there.  There is no way to back it up or export it either.

Now I'm wiring up blogger to host the data that I want to keep.  Photobucket or some other picture site will be my repository for that media.  First is my recipe data.  Then the goofy stuff like Zombie lyrics.  I'll probably resort to posting in Friend Feed, or Posterous and let it post to Facebook.

Friday, July 23, 2010

iPad #1 D&D/Pathfinder/RPG accessory

Thanks to the iPad app, GoodReader, my iPad is now my most important gaming accessory.  No more lugging a backback full of books/adventures around.  As a book reader, the iPad does a superior job of presenting full color books.  With a little practice, I probably will be much more capable navigating PDF's than flipping paper pages.

Posted via email from thegreatwaldo's posterous

Thursday, July 15, 2010

Amahi installation, part 2

The second pass went flawlessly.  The Amahi interface is up and running.  But I am out of time for configuring the server, since I am due elsewhere.

Posted via email from thegreatwaldo's posterous

Amahi installation, part 1 redux

Too many package dependencies were failing.  Going back to the beginning, after reading the instructions.  SELinux was buggering up some things too.  I'm sure it will go much more smoothly this time.

Posted via email from thegreatwaldo's posterous

Amahi installation, part 1

Well, I started right out with a non-standard installation.  I loaded Fedora 12 in a virtual machine on my ESXi/PowerEdge-1900 Box, before reading all of the instructions.  It turns out that you are supposed to add the Amahi repo during the installation of FC12.  But my habit is to install FC12, then vmware-tools, then the other stuff.  Now I've added the Amahi repo and letting yum run to its heart's content.  *drum roll*

 

Posted via email from thegreatwaldo's posterous

Amahi Home Server

The torrent for Fedora 12 finished downloading last night.  So today the project is to install Amahi on the virtual machine.  After Waffle House, of course.  This is going to be fun.

https://www.amahi.org/

Posted via email from thegreatwaldo's posterous

Wednesday, July 14, 2010

New stuff in Windows Live™

I really need to spend some time playing with the goodies in Windows Live.  I know I'm a Google fan-boy, but Microsoft has caught my eye.  Of course I'll have to find out how it runs on OS X and Linux.

Posted via email from thegreatwaldo's posterous

Sunday, June 27, 2010

Crumpet Mastery.

A single recipe. More complex than the omelet recipe, really. With yeast and baking powder, it is more like baking. A dabble in physics and chemistry, where the form is as important as the taste. It took me many months to reach that with omelets, but crumpets already seem to be elusive. I have not seen the recipe, on the Internet or anywhere else. This next attempt will be version 3 and I have great hopes for it. With the acquisition of the cooking rings, the technique will be improving, but the real secret will be the process after the griddle and eliminating the hole-deforming flip to cook the second side. Finishing the crumpet in the oven is the key, I think.

Now to rest before the next pass at crumpet mastery.

Sunday, May 30, 2010

No, I DON'T have to like Obama. Every complaint I had with GW, Obama has made worse. Now even Democrats are throwing him under the bus, as predicted. I pray now, that the electorate stops congress before the train wreck. Think Greece is bringing down the world economy, just watch what the US can do...

Sunday, February 07, 2010

I did not watch the Super Bowl, not even the ads at half-time. Since broadcast TV has gone digital, I peek out every now and then, but I continue to be disappointed and disgusted. Find something other that sitcoms, doctor shows, cop shows, doctor/cop shows (e.g. CSI), lawyer shows, and of course pseudo reality TV. It's all CRAP!

There are a few rare gems out there, but they predictably get cancelled after a season or two. Hollywood will collapse under its own weight, star power will fail and they will become merely actors. All of our entertainment will come from overseas, much of it does already, because it's too expensive to make movies in the great socialist state of California.

I still need to get a NetFlix account.

Friday, January 29, 2010

To Jennifer Segrest:

poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke poke