Bitcoin Forum
December 11, 2016, 08:17:39 AM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 »
  Print  
Author Topic: Pywallet 2.2: manage your wallet [Update required]  (Read 137446 times)
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 12, 2011, 03:27:06 PM
 #41

http://dl.dropbox.com/u/9866930/pywallet_dependencies_x64v1.7z

this will get you started if you do not have everything setup already

just open the files in the order listed in README.txt

ill sign the SHA-512 in a sec  Cheesy

Code:
Message:   SHA-512: 5e74415fdabeba1936490bf5a462bbc4ab06502adf4c692e9a21af652a4821af99785b94d7779c444cab92f51966b1ebacdfa7bc5305a9b241beda466d5fc389
Signature: 304502203a422c58979a3cfae39c674f52c46eda7060d5088bf4772643ee9bbffb273265022100d8946e2248e7d94320b509539d20efee10e48ecd762faf0ae8d270729d301a6a
Pubkey:    0423321cff08cb3dbed8bcf20c5e552155bc10ed9495bd9407543245f2fc4ca91d359dae5a14458142cd5a7d4f181c2363a0447ac6b22948d7b4c73117b431ae04

from now on i guess ill use this key, or i might make another one with proper capitalization...

Code:
1CtooN6jNELYKXUmBFVRva8qwHfLNqRBao
I'll look at your file and make a link in the readme
I can't see your youtube video now because of a ridiculous bandwidth here... But thanks for making it


I added some little things: you can now sign/verify files and binary strings. Use this with "Hex:6294aa82be73" and "File:/home/jackjack/test.zip" (yes, ctoon6 gave me this idea with his dependencies file Wink )
In info you can now see the hash160 of a key
And when you dump a wallet you can chose the version. Before that, all addresses (e.g. namecoin and testnet) were changed in their bitcoin aliases which was not really practical

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1481444259
Hero Member
*
Offline Offline

Posts: 1481444259

View Profile Personal Message (Offline)

Ignore
1481444259
Reply with quote  #2

1481444259
Report to moderator
1481444259
Hero Member
*
Offline Offline

Posts: 1481444259

View Profile Personal Message (Offline)

Ignore
1481444259
Reply with quote  #2

1481444259
Report to moderator
kjj
Legendary
*
Offline Offline

Activity: 1302



View Profile
August 12, 2011, 03:37:06 PM
 #42

Are you reading the wallet database in such a way that concurrent access would be possible if the client also supported it?  For maximum usefulness, it would be nice to be able to use the running wallet instead of having to shut down your client or take a backup.

I have some other ideas for patching the client too.  Like being able to set a flag on an address that tells the node not to return it in response to a getnewaddress request so that you can have some keys used only for signing.

p2pcoin: a USB/CD/PXE p2pool miner - 1N8ZXx2cuMzqBYSK72X4DAy1UdDbZQNPLf - todo
I routinely ignore posters with paid advertising in their sigs.  You should too.
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 12, 2011, 03:49:31 PM
 #43

Are you reading the wallet database in such a way that concurrent access would be possible if the client also supported it?
Yes I think so

For maximum usefulness, it would be nice to be able to use the running wallet instead of having to shut down your client or take a backup.
The client opens and locks the wallet until it is exited, so until the devs change that behaviour it's not possible

I have some other ideas for patching the client too. Like being able to set a flag on an address that tells the node not to return it in response to a getnewaddress request so that you can have some keys used only for signing.
If you create a new address in the client and set its label to "Signing address", it will never use it as a pool key because it's not and with the label you will know it's your signing address
It should be sufficient I think

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 13, 2011, 12:50:28 AM
 #44

New release:
 web interface now use --datadir and --wallet flags to autofill forms
 no more "A if cond else B", so it should run with python 2.4 and maybe less, can someone test?

I also modify the OP to add how to use each function, everything is written there


Code:
File:   pywallet.py
Sig:    3046022100a50f5c70fbdb001e1fc6e8d7154f7fcdd5247803d82dffa06bfffddba9d388ef022100f6c8ebfdc34022fd8ed0242e5766881756c69aa32bc582ff4d966300763f4002
Pubkey: 04307867a30e7b8673b92f9c62c664dbd821a3be44e8d41fc65261296f4d6e71fa430a0d7f54e3aca296357900fe096c2bc7333d60e57ffe73bc2f49b581c17750

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
samr7
Full Member
***
Offline Offline

Activity: 140

Firstbits: 1samr7


View Profile
August 16, 2011, 12:06:11 AM
 #45

New release:
 web interface now use --datadir and --wallet flags to autofill forms
 no more "A if cond else B", so it should run with python 2.4 and maybe less, can someone test?

Very cool, the web interface auto-fill works beautifully.

I tried running it with Python 2.4.  It kinda works.  The biggest issue I ran into, the json module does not appear to exist in Python 2.4.  According to the docs on python.org, json would appear to have been introduced in 2.6.
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 18, 2011, 03:36:50 AM
 #46

New command-line option: Recover your deleted keys
Code:
sudo ./pywallet.py --recover --recov_size 30.1Gio --recov_device /dev/sda3 --recov_outputdir /home/jackjack/recovered_wallets
This will read the 30.1 first Gio of /dev/sda3 to find some deleted private keys (sudo can be needed to read devices)

recov_size accepts ko, kio, Mo, Mio, Go, Gio, To and Tio units (edit: I just think about that, some of you may usually use kB/MB/..., I'll fix that, later Wink ). No space allowed between the number and the unit
recov_device is obviously the device to read
recov_outputdir is the directory where pywallet will write the recovered wallet (named "recovered_wallet_TIMESTAMP.dat")

It's only a command-line option because if one deletes his wallet and tries to recover it, running a browser is not exactly is good idea...

It takes about 25 minutes to read 100 Go

Code:
File:   pywallet.py v1.1-27
Sig:    304402202553256cbeb2020f9f3b4a970bd34f2fa0588311525acf95c4eb56725c1c08730220374dd3658f8da7d2ec2f25a8216a561766f0f471304a7988bd300e8333bc9c50
Pubkey: 04307867a30e7b8673b92f9c62c664dbd821a3be44e8d41fc65261296f4d6e71fa430a0d7f54e3aca296357900fe096c2bc7333d60e57ffe73bc2f49b581c17750



I tried running it with Python 2.4.  It kinda works.  The biggest issue I ran into, the json module does not appear to exist in Python 2.4.  According to the docs on python.org, json would appear to have been introduced in 2.6.
I'll see if I can use something else instead of json, thanks for the feedback

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
ctoon6
Sr. Member
****
Offline Offline

Activity: 350



View Profile
August 18, 2011, 08:56:05 PM
 #47

ill be sure to run dban from now on when i reformat...

ffuentes
Member
**
Offline Offline

Activity: 70


Only a curious passer-by / FirstBits: 13zsc1


View Profile WWW
August 18, 2011, 10:40:00 PM
 #48

Code:
  File "pywallet.py", line 95
    _p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2FL
                                                                           ^
SyntaxError: invalid syntax

Listen Radio Libre (Electronica) Donate. (click for details).

Chilean peso VS BTC ahora: http://irage.ca/2btc.php?a=1&c=CLP&r=1

My bitcoin address
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 18, 2011, 10:56:47 PM
 #49

ill be sure to run dban from now on when i reformat...
Great tool I didn't know it


Code:
  File "pywallet.py", line 95
    _p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2FL
                                                                           ^
SyntaxError: invalid syntax
You seem to have Python 3 which is not supported yet

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 19, 2011, 12:28:50 AM
 #50

There's something weird, I tried the recovery command on / (which is separated from /home, so it should never have seen any key)
And 1960 different keys were found...

Then I calculated the probability to find a false positive: 1 false positive every 10^12 To...
So I used the recovered wallet, -rescan, and the client is currently showing the total balance of all my wallets

I think you should try... I hope the problem is me, and not the Bitcoin client/the bsd library copying the wallet in /tmp or whatever...

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
joulesbeef
Sr. Member
****
Offline Offline

Activity: 476


moOo


View Profile
August 20, 2011, 04:48:11 PM
 #51

1. I'm an idiot and I wanted to make something more friendly for my idiot friends. Huh
First let me state I dont know the first thing about what i am doing.  Grin
but somehow i managed to noob my way into creating a windows.exe of pywallet.py and I did so without accidently starting a nuclear war... yeah amazing I know.

IF you hate your computer or miss the computer guy, You could test this out for me

it simply runs with the web interface enabled.. no options to change ports, if you dont understand why, read my first line again... You run pywallet.exe and open up your browser and go to localhost:8989.. no need to install python.. twisted.. zope.. i DID not add ecdsa.. so no signing.
why? refer back to line 1

jackjack,.. really the only think I want to do... I guess i could blindly hack at it some more(see line 1).. is just a simplistic web interface for importing keys... for the bitbills, paper wallets and coins out there.

think we can have a hobbled pywallet-version moron for me and my masses of minions?



(warning not responsible if running this exe causes nuclear war)

.. the only thing i changed was something that said something about options being mandatory.. I didnt like that.. so i deleted it. Huh
and it appeared to work.

and then later  this line

Code:
if 'twisted' not in missing_dep and options.web is not None:

I got rid of the not... and gtfo that worked... well not quite first it bitched about some shit called twisted.. so I told it to grab the shit called twisted and STFU about it and that seemed to work as well. I think it was scared of me as it seems to have went ahead and installed zope as well.

anyways I have been bugging jackjack for about 6 hours now to make this and he hasnt yet, so I decided to try.. good luck to your and your computer if you attempt to use this. Tongue


(if it doesnt work, asks for dependencies.. or starts a war goto line 1 in this comment)

mooo for rent
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 20, 2011, 05:05:38 PM
 #52

anyways I have been bugging jackjack for about 6 hours now to make this and he hasnt yet
Did you consider we are not in the same timezone? Tongue

Could you tell me how you managed to make an exe from a python script+1exe? (I supposed it doesn't work in windows, well, I'll find a windows machine)

Also, about the code changes, hum, I don't know what you did, but seeing what you posted I don't think it's a good idea Grin

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
joulesbeef
Sr. Member
****
Offline Offline

Activity: 476


moOo


View Profile
August 20, 2011, 05:29:59 PM
 #53

anyways I have been bugging jackjack for about 6 hours now to make this and he hasnt yet
Did you consider we are not in the same timezone? Tongue

Could you tell me how you managed to make an exe from a python script+1exe? (I supposed it doesn't work in windows, well, I'll find a windows machine)

Also, about the code changes, hum, I don't know what you did, but seeing what you posted I don't think it's a good idea Grin


I was teasing about the harrasment.. i didnt expect you to have this done in 6 hours.. or even care really.(you might but i dont know)

it works on my 3 windows machines.. xp, win7 and win64


It probably isnt a good idea, but it works.. all it does is run your pywallet with the web interface option ..without having to download python or any of that crap.. just extract and go. Hey it is pretty simple to step one download python, step 2 get the twisted, step 3 get zope, step 4 install twisted and zope, step 5 download pywallet, set 6 open a command prompt, step 7 run pywallet --web step 8 open browser and go to localhost:8989 but my minors hate steps even easy ones(you realize atlas or w/e his name is now, paid someone to add a key for him cause he didnt want to do these steps?HuhHuhHuh)

I used py2exe

my method is step one.. download dist.zip and extract, step 2 run pywallet.exe, step 3 open browser go to localhost:8989 .

5 less steps and the most complex steps removed.

I tired adding the signing thing but it seemed to want the command line for some shit.. so i left it out.


(the only thing my minons need, is a windows program that has a big button that says import keys)

mooo for rent
ctoon6
Sr. Member
****
Offline Offline

Activity: 350



View Profile
August 20, 2011, 06:16:39 PM
 #54

you might want to have a script that runs that closes out any and all bitcoin.exe instances, so you avoid any possible wallet corruption.

joulesbeef
Sr. Member
****
Offline Offline

Activity: 476


moOo


View Profile
August 20, 2011, 06:35:14 PM
 #55

you might want to have a script that runs that closes out any and all bitcoin.exe instances, so you avoid any possible wallet corruption.

didnt know that could happen.. well the web interface instructs you to close bitcoin in really big letters.

I suppose though.. you;d have to close namecoin, ixcoin, i0coin and ifuturecoin as well.

mooo for rent
ctoon6
Sr. Member
****
Offline Offline

Activity: 350



View Profile
August 20, 2011, 06:37:47 PM
 #56

you might want to have a script that runs that closes out any and all bitcoin.exe instances, so you avoid any possible wallet corruption.

didnt know that could happen.. well the web interface instructs you to close bitcoin in really big letters.

I suppose though.. you;d have to close namecoin, ixcoin, i0coin and ifuturecoin as well.


i have accidentally left bitcoin open before, and my wallet was fine, but if you package it into an exe, people will use it and the chance of lost wallets will be much higher for many reasons.

joulesbeef
Sr. Member
****
Offline Offline

Activity: 476


moOo


View Profile
August 20, 2011, 07:17:08 PM
 #57

like i said I'm not a programmer.. i'm an idiot.. but i guess i could make a batch file for people to run... used to run the exe..that kills any instance of btcoin, ixcoin, i0coin or namecoin it finds running.


something like

Code:
taskkill /IM bitcoin.exe
taskkill /IM bitcoind.exe
taskkill /IM ixcoin.exe
taskkill /IM ixcoind.exe
taskkill /IM i0coin.exe
taskkill /IM i0coind.exe
start pywallet.exe

should work no?

edit that works.

I added a bat file.. with the code above and it closes all of them.. well just like the code above except I added namecoin as well

the runme.exe is just the batch file converted into an exe with a nifty wallet icon.. note the money isnt real


use either to start it and dont say I didnt warn you


edit... grr.. stupid beef... have to taskkill everything twice.. cause if the window is open, killing it just sends to the clock.
 i fix it.... er i thought i did.. now looks like i need a delay... ping will work i think..

edit edit  WHAT THE HELL DO YOU MEAN YOU WONT WORK ON MY OLD ASS XP LAPTOP... grrr this fake programming shit is hard.

added some task running checks to the bat, what ever that means and it keeps looping and killing until the task finally dies.. and then starts the wallet. as seen below.. fixed the link above.. this shit should work even on a slow ass laptop with xp

Code:
:moo
taskkill /IM bitcoin.exe
taskkill /IM bitcoind.exe
taskkill /IM ixcoin.exe
taskkill /IM ixcoind.exe
taskkill /IM i0coin.exe
taskkill /IM i0coind.exe
taskkill /IM namecoin.exe
taskkill /IM namecoind.exe
ping localhost -n 5

tasklist /FI "IMAGENAME eq i0coin.exe" 2>NUL | find /I /N "i0coin.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo
tasklist /FI "IMAGENAME eq i0coind.exe" 2>NUL | find /I /N "i0coind.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo

tasklist /FI "IMAGENAME eq ixcoin.exe" 2>NUL | find /I /N "ixcoin.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo
tasklist /FI "IMAGENAME eq ixcoind.exe" 2>NUL | find /I /N "ixcoind.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo

tasklist /FI "IMAGENAME eq bitcoin.exe" 2>NUL | find /I /N "bitcoin.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo
tasklist /FI "IMAGENAME eq bitcoind.exe" 2>NUL | find /I /N "bitcoind.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo

tasklist /FI "IMAGENAME eq namecoin.exe" 2>NUL | find /I /N "namecoin.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo
tasklist /FI "IMAGENAME eq namecoind.exe" 2>NUL | find /I /N "namecoind.exe">NUL
if "%ERRORLEVEL%"=="0" goto moo



start .\pywallet\pywallet.exe


mooo for rent
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 20, 2011, 10:59:56 PM
 #58

Pywallet Windows Installer


py2exe was too much pain to use, this is simpler for me, and honestly everybody can do that
The exe file is an autoextractible archive containing the installers of all the dependencies and a bat file launching them at the end of the extraction



As for the problem of running *coin while using pywallet, I don't think I can do that properly and I don't want to corrupt the files because I violently killed the processes

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
HostFat
Staff
Legendary
*
Offline Offline

Activity: 2296


I support freedom of choice


View Profile WWW
August 23, 2011, 08:02:37 AM
 #59

Good! Cheesy

There is just one missing thing.

If Windows is a x64 distribution, "update.bat" must have this line:
"C:\Program Files (x86)\GnuWin32\bin\wget.exe"
instead of this one:
"C:\Program Files\GnuWin32\bin\wget.exe"

Eternity Wall: Messages lasting forever - The Rock Trading (ref): A good exchange / gateway Ripple, with support for multisig, since 2007. 
https://bitcointa.lk: Bitcointalk backup if offline - Bitcoin Foundation Italia - Blog: http://theupwind.blogspot.it
jackjack
Hero Member
*****
Offline Offline

Activity: 882


May Bitcoin be touched by his Noodly Appendage


View Profile
August 23, 2011, 05:12:45 PM
 #60

Good! Cheesy

There is just one missing thing.

If Windows is a x64 distribution, "update.bat" must have this line:
"C:\Program Files (x86)\GnuWin32\bin\wget.exe"
instead of this one:
"C:\Program Files\GnuWin32\bin\wget.exe"

Nice catch
Btw, I use it too in install.bat I believe, to download pywallet.py
I don't know how to check if the machine is 32 or 64bits but I'll look into that


Anybody tried to scan his harddrive? https://bitcointalk.org/index.php?topic=34028.msg466673#msg466673

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!