Bitcoin Forum
July 04, 2024, 06:24:37 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: BTC, BCH, and Coinbase Transactions  (Read 1354 times)
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 15, 2017, 01:59:03 PM
 #21

Danny - Thanks again!  Here are more questions for you.  I will need to digest your answers for 5(a-d) a little.  So more questions coming up afterward.

1. How to replicate an input and what piece of data makes input identical?  Example, if I send Bob 1 BTC to his Coinbase wallet from my Kraken wallet twice, is that enough to produce the same input?

2. Could you elaborate "As they process each and every transaction in the blockchain, they add any new outputs to their UTXO and they remove any inputs from the UTXO"? Why add outputs and remove outputs and not remove the transactions as a whole?

3. Why UTXO is keeping only the outputs?  When you said "Outputs" you mean the part of the code in a transaction, correct?

4. Where are the invalid transactions being kept?

- To be or not to be, that is the question. -
DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4681



View Profile
August 15, 2017, 03:10:29 PM
 #22

1. How to replicate an input and what piece of data makes input identical?  Example, if I send Bob 1 BTC to his Coinbase wallet from my Kraken wallet twice, is that enough to produce the same input?

Remember from earlier in our discussion that an input is a reference to an output from a previous transactions.  An input is "identical" if it references the same output from the same previous transaction.

Coinbase and Kraken do not provide "wallets".  They provide "accounts".  The difference is that with a "wallet", you have control over your private keys and you are responsible for your bitcoins. You use wallet software to create, sign, and broadcast transactions, as well as to monitor the blockchain and identify which outputs you have control over.

With an "account", you send your bitcoins to the account provider.  The account provider maintains control over the private keys and has full control over the bitcoins.  Then they provide you with information about how many bitcoins they are managing for you.  When you want to send bitcoins somewhere, you ask them to send the bitcoins on your behalf. They send some of THEIR bitcoins where you ask them to. They provide you with one (or more) of THEIR bitcoin addresses that you can share with others to have bitcoins credited to your account with them. Whenever THEY receive bitcoins on that address, they update in their records how many bitcoins they are managing for you.

As such, Coinbase and Kraken have full control over the inputs and the outputs.  They decide wether to re-use an input or not.  You don't have any control over that if you have an account with them.

2. Could you elaborate "As they process each and every transaction in the blockchain, they add any new outputs to their UTXO and they remove any inputs from the UTXO"? Why add outputs and remove outputs and not remove the transactions as a whole?

Because once you've validated the transaction, only the outputs matter.  That is the information that is needed for validating future transactions.


3. Why UTXO is keeping only the outputs?

Because once you've validated the transaction, only the outputs matter for the intended purpose of validating future transactions.

When you said "Outputs" you mean the part of the code in a transaction, correct?

Correct.  The list of values and requirements that those values are encumbered with in order to be spent.

4. Where are the invalid transactions being kept?

They are not valid.  They  are not kept.

By the way, have you seen this video yet. It doesn't really do a good job of describing how Bitcoin transactions work at the technical level, but it does a GREAT job of explaining how the concepts of a blockchain and cryptocurrency work in general:
https://www.youtube.com/watch?v=bBC-nXj3Ng4
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 15, 2017, 09:34:00 PM
 #23

By the way, have you seen this video yet. It doesn't really do a good job of describing how Bitcoin transactions work at the technical level, but it does a GREAT job of explaining how the concepts of a blockchain and cryptocurrency work in general:
https://www.youtube.com/watch?v=bBC-nXj3Ng4

This will be my must watch video tonight.  Even though I am not doing anything with it, but learning blockchain technology has been my hobby.  I will follow up later.   Smiley

- To be or not to be, that is the question. -
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 19, 2017, 03:42:15 PM
 #24

Danny - I am back again!

After watching the video you shared plus some other videos I previously watched on blockchain, I have a much better understanding.

Example, when you said "By changing the first transaction, only the final step of building the tree needs to be repeated, so it is much faster than changing any transaction later in the block.", without understand the merkle tree, it is hard to understand why.  The reason why is because the merkle tree process starts from the bottom up when it pairs the transactions together.

More questions:

1. Could you explain why the hash is in "6b483045022100f57111d73ea20dc7d989bef2d8c4a2fc" and the example in the video is in "0000011000100100000001"?  This is computer science.   (I made the 01 string up.)

2. How does one byte of info like "ab" translate into the "01" string?

3. When you said, "Once all those different nonce values have been tried, then the miner (or pool) needs to change something else in the block header.  Typically this would either be the timestamp, or the first transaction in the block.", isn't the block header is just the nonce?  Do you mean that if all the different 4294967296 nonce values have been tried and still cannot solve the block, it will include the timestamp or the first transaction into the hash? Huh Huh  I know this part is probably very technical.

4. Technically or mathematically, how does 4 bytes create 232, 4294967296 of combinations?

5. To follow up with the following:
Q: 3. If I submitted the same transaction (says pay Bob with 1BTC) with fee after the no-fee transaction was submitted, and it got executed, would the no-fee transaction get executed later and led Bob to receive 2BTC (assuming I have 2BTC in the same wallet)?

A: That depends on how you build the transaction.  If you use at least one of the same inputs in both transactions, then only one of the transactions can confirm. Once one of them confirms, the other becomes invalid (since it has an input that has already been spent). If there are no inputs that exist in both transactions, then they can both confirm.

How to generate the same inputs in multiple transactions?  In a layman term, the input hash would come from "Alice send 1 BTC out" and output hash would come from "Bob should receive 1 BTC"?

6. Back to the "voting" issue.  I read that the miners will continue on the longest chain when there are a split.  The video you shared also demonstrate that when Alice try to double spend her money, two chains occurred and the miners would eventually accept the longest one.  When this happened, what the temporary split happened, does Alice receive BTC reward from solving blocks in her own chain?

Thanks again in advance. Cheesy




- To be or not to be, that is the question. -
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 19, 2017, 03:46:35 PM
 #25

I am facing a big problem on transaction with coinbase. Every received payment is still pending. what is the problem I don't know. It past 3 days but not confirmed. how can i get solve this?

Did you finally get the issue resolved?  They are very slow.

- To be or not to be, that is the question. -
DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4681



View Profile
August 19, 2017, 05:29:11 PM
 #26

1. Could you explain why the hash is in "6b483045022100f57111d73ea20dc7d989bef2d8c4a2fc" and the example in the video is in "0000011000100100000001"?  This is computer science.   (I made the 01 string up.)

This is not computer science.  This is mathematics.

Those are just two different ways of representing numbers.

The first "6b483045022100f57111d73ea20dc7d989bef2d8c4a2fc" is hexadecimal (or base16).  The second "0000011000100100000001" is binary (or base2).  The way you are probably most familiar with is decimal (or base10).

Comparing:
base10 -> base2 -> base16

Code:
 0 ->     0 ->  0
 1 ->     1 ->  1
 2 ->    10 ->  2
 3 ->    11 ->  3
 4 ->   100 ->  4
 5 ->   101 ->  5
 6 ->   110 ->  6
 7 ->   111 ->  7
 8 ->  1000 ->  8
 9 ->  1001 ->  9
10 ->  1010 ->  a
11 ->  1011 ->  b
12 ->  1100 ->  c
13 ->  1101 ->  d
14 ->  1110 ->  e
15 ->  1111 ->  f
16 -> 10000 -> 10
17 -> 10001 -> 11
and so on

Note that:
binary only has 2 digits to work with (0 and 1)
hexadecimal has 16 digits to work with (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, and f)
decimal has 10 digits to work with (0, 1, 2, 3, 4, 5, 6, 7, 8, and 9)

2. How does one byte of info like "ab" translate into the "01" string?

Perhaps you'll recall from maths back when you were about 12 years old or so that our decimal numbering system can be represented as follows:
5462 = (5 X 103) + (4 X 102) + (6 X 101) + (2 X 100)

Noticing in the conversions that I showed you up above, "a" represents a decimal value of "10" and "b" represents a decimal value of "11", we can represent the base16 number "ab" as:
ab = (10 X 161) + (11 X 160)

Therefore, in our common decimal system "ab" = 171

You can represent that same number in binary by figuring out which of the binary digits will work in the following formula to result in a value of 171:
(? X 28) + (? X 27) + (? X 26) + (? X 25) + (? X 24) + (? X 23) + (? X 22) + (? X 21) + (? X 20)

The answer is:
10101011

Conversion from hexadecimal to binary has this nice mathematical property that every 4 binary digits represents one hexadecimal digit, so if you look in my example above:
a = 1010
and
b = 1011

And looking at the conversion of ab you see that it is just those two values concatenated together.

3. When you said, "Once all those different nonce values have been tried, then the miner (or pool) needs to change something else in the block header.  Typically this would either be the timestamp, or the first transaction in the block.", isn't the block header is just the nonce?

No.  The block consists of a list of transactions and an 80 byte header with the following information:

  • Version (4 bytes)
  • Hash of previous block in the chain (32 bytes)
  • Merkle root (32 bytes)
  • Timestamp (4 bytes)
  • Representation of the current difficuty target (4 bytes)
  • Nonce (4 bytes)

It is this set of 80 bytes that the miners are hashing to see if they can find a hash result that is low enough.

Do you mean that if all the different 4294967296 nonce values have been tried and still cannot solve the block, it will include the timestamp or the first transaction into the hash? Huh Huh  I know this part is probably very technical.

The timestamp is ALWAYS included in the input to the hash.  The Merkle Root is also ALWAYS included in the input to the hash.

Therefore, by changing the values of the first transaction (which would change the Merkle Root) or the timestamp, the input to the hash is changed for another 4294967296 possible nonce values.

4. Technically or mathematically, how does 4 bytes create 232, 4294967296 of combinations?

A byte consists of 8 bits.  Each bit represents binary position. So a 4 byte number can be anything between:
00000000 00000000 00000000 00000000
and
11111111 11111111 11111111 11111111

You can start with a nonce value of
00000000 00000000 00000000 00000000
and then try
00000000 00000000 00000000 00000001
and then try
00000000 00000000 00000000 00000010
and then try
00000000 00000000 00000000 00000011
and then try
00000000 00000000 00000000 00000100
and then try
00000000 00000000 00000000 00000101
and so on until after 4294967296 tries you end up at:
11111111 11111111 11111111 11111111

At that point, any other combination of 32 1's and 0's will simply be a repeat of a number you already tried.  To get a different 80 byte header, you'll need to change something else in the header. If something else in the header is different, then you can try all 4294967296 possible nonce values again and you'll get 4294967296 new hash results.

How to generate the same inputs in multiple transactions?

Make certain that they refer to the same previous unspent outputs.

In a layman term, the input hash would come from "Alice send 1 BTC out" and output hash would come from "Bob should receive 1 BTC"?

No.

In layman's terms...

Alice receives 2 BTC from Mike in a single transaction output.
Alice receives 0.75 BTC from Nancy in a single transaction output.
Alice receives 0.8 BTC from Oscar in a single transaction output.

(The total is 3.55 BTC, but alice actually has control over 3 separate currently unspent outputs).

Alice creates a transaction that spends the 0.75 BTC that she received from Nancy AND the 0.8 BTC that she received from Oscar (these are the inputs to the transaction).
The total value that these inputs have provided to the transaction is 1.55 BTC

Alice's transaction creates 2 outputs.
One of them is a 1 BTC output that requires a signature from the private key that is associated with Bob's bitcoin address.
The other is a 0.55 BTC output that requires a signature from a private key that Alice's wallet is storing internally.
Since the entire 1.55 BTC of value supplied by the inputs has been used up by the outputs, there is no remaining value for the miner to be able to assign to himself. There is no transaction fee.

Now, Alice decides to "submitted the same transaction (says pay Bob with 1BTC) with fee after the no-fee transaction was submitted"...

If Alice's new transaction...
Lists the 2 BTC output from Mike as an input
Lists 1 BTC output that requires a signature from the private key that is associated with Bob's bitcoin address as one output
Lists 0.99 BTC that requires a signature from a private key that Alice's wallet is storing internally as the other output.

Then this second transaction will have a 0.01 BTC transaction fee, and will pay Bob 1 BTC.  However, both transactions to Bob can confirm. If they both do, then he will receive 1 BTC from each transaction.

On the other hand if Alice's new transaction...
Lists the 0.75 BTC output from Nancy as an input
Lists the 2 BTC output from Mike as an input
Lists 1 BTC output that requires a signature from the private key that is associated with Bob's bitcoin address as one output
Lists 1.74 BTC that requires a signature from a private key that Alice's wallet is storing internally as the other output.

Then this second transaction will have a 0.01 BTC transaction fee, and will pay Bob 1 BTC.
In this case, since the original 0-fee transaction AND this new 0.01 BTC fee transaction BOTH try to spend the 0.75 BTC output from Nancy, only one of those two transactions can confirm.  Once one of them confirms, the other one becomes invalid and is discarded by all participants in the system.  An output can only be spent as an input once in the blockchain.  Once it is spent, any other transaction that tries to spend the same output is considered to be an invalid transaction by all participants in the system.  Any block that contains such an invalid transaction would be an invalid block and would be discarded by all participants in the system (regardless of how long the chain is that contains that block).

6. Back to the "voting" issue.  I read that the miners will continue on the longest chain when there are a split.  The video you shared also demonstrate that when Alice try to double spend her money, two chains occurred and the miners would eventually accept the longest one.  When this happened, what the temporary split happened, does Alice receive BTC reward from solving blocks in her own chain?

The only BTC that exist are the outputs in the transactions in the chain.

If Alice received BTC in a transaction in the "winning" chain, then she will get those BTC.  If Alice does not receive BTC in a transaction in the "winning" chain, then she doesn't have bitcoins.
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 20, 2017, 01:04:01 AM
 #27

Danny - Thanks again!  I do not know how you can always answer with very thorough and detailed contents so quickly!

In order to understand your answers on the base conversion better (not that your answer is not good enough Smiley), I had to review some sites and youtube videos (not easy to find good ones that suit me).  Now I understand this topic much better.  

Good to know that 1 byte = 8 bits and  8 bits is with 8 "0" and "1" in binary like 01010101.  

ab = (10 X 161) + (11 X 160)

Therefore, in our common decimal system "ab" = 171

You can represent that same number in binary by figuring out which of the binary digits will work in the following formula to result in a value of 171:
(? X 28) + (? X 27) + (? X 26) + (? X 25) + (? X 24) + (? X 23) + (? X 22) + (? X 21) + (? X 20)

The answer is:
10101011

Conversion from hexadecimal to binary has this nice mathematical property that every 4 binary digits represents one hexadecimal digit, so if you look in my example above:
a = 1010
and
b = 1011  

This is very interesting!

Alice creates a transaction that spends the 0.75 BTC that she received from Nancy AND the 0.8 BTC that she received from Oscar (these are the inputs to the transaction).
The total value that these inputs have provided to the transaction is 1.55 BTC

Alice's transaction creates 2 outputs.
One of them is a 1 BTC output that requires a signature from the private key that is associated with Bob's bitcoin address.
The other is a 0.55 BTC output that requires a signature from a private key that Alice's wallet is storing internally.

Your explanation on the transactions is very well put.  The inputs and outputs concept can be a little confusing, but your example nailed it.

As I do not manage my own private key and hard wallet and have to rely on company like Coinbase, the concept of creating a transaction and send BTC out is very foreign to me.

So Alice creates a transaction which subsequently creates two inputs (that were outputs with 0.75a BTC and 0.8b BTC, respectively, in a prior block).  The transaction creates two outputs via the program logic.  The program takes 0.75 BTC from inputa and 0.25 BTC from input b to send to Bob and takes the remaining 0.5 BTC from input b to send back to Alice.  Is this flow correct?  

You used "If" in "If Alice's new transaction...", is it because the transaction is program driven and Alice has no control (and does not care) on how it arrages the inputs and outputs internally once it is executed by her?  If that is the case, then it is not necessary that Alice can be sure that a tranaction can spend the 0.75 BTC output from Nancy because the transaction may spend the 0.8 BTC output from Oscar instead and 0,2 BTC output from Nancy.

Not sure if you can help on this, but if I were want to mind coins just to gain educational experience, what suggestions would you have for me?  I know I need to get hardware and software and the machine will probably need to run all day long.  Which of the coins is worth mining with the high per unit electricity cost in a big US city?  The info I need is probably the following:

Where to get a hardware?  
Where to get software?  
How to put everything together?
How to store coins earned?
Where and how to sell the coins?

It may not be profitable for me to mine, but I will like, at least, to minimize the cost.  





- To be or not to be, that is the question. -
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 20, 2017, 02:29:54 AM
 #28

On a second thought, no need to answer my mining questions because it will probably be very costly.  Also, it costs about $0.092 per kWh.  It is probably relatively high. 

- To be or not to be, that is the question. -
sksaddam
Full Member
***
Offline Offline

Activity: 691
Merit: 100


View Profile
August 20, 2017, 07:13:46 AM
 #29

Coinbase is an online wallet, not a exchanger site.If you deposit 1 btc trading site you get 1 bch.Example if you have 1 btc bittrex,livecoin, faucethub same get 1 bch.

► HackenAI ◄ ♦ HackenAI - Personal Cybersecurity Application ♦ ► HackenAI ◄
───●●───●●───●●───●●───●●─[   Bounty Detective   ]─●●───●●───●●───●●───●●───
Facebook|
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 20, 2017, 01:13:20 PM
 #30

Coinbase is an online wallet, not a exchanger site.If you deposit 1 btc trading site you get 1 bch.Example if you have 1 btc bittrex,livecoin, faucethub same get 1 bch.

Thank you for your info.  Originally, Coinbase said that they would not support BCH, but after seeing the price went up and people threatened to sue, they changed their mind and decided to allow people to withdraw BCH by Jan 1st 2018. They are currently working on it - perhaps, they will also include BCH in their platform.

For all these times, I thought that Coinbase is not an exchange, until I checked online after reading your post.  Here is what's on Wikipedia about Coinbase:

Coinbase has two core products: a Global Digital Asset Exchange (GDAX) for trading a variety of digital assets on its professional asset trading platform, and a user-facing retail exchange of Bitcoin, Ether, and Litecoin for fiat currency.  The second one might be what most people are referencing as "Coinbase".  It is a product which offers exchange services and online wallets from Coinbase.


- To be or not to be, that is the question. -
DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4681



View Profile
August 20, 2017, 02:05:44 PM
 #31

So Alice creates a transaction which subsequently creates two inputs (that were outputs with 0.75a BTC and 0.8b BTC, respectively, in a prior block).

Correct.

The transaction creates two outputs via the program logic.  The program takes 0.75 BTC from inputa and 0.25 BTC from input b to send to Bob and takes the remaining 0.5 BTC from input b to send back to Alice.  Is this flow correct?  

Not exactly.

As an analogy, think of it like this...

Alice receives a small lump of gold worth 2 BTC from Mike.
Alice receives a small lump of gold worth 0.75 BTC from Nancy.
Alice received a small lump of gold worth 0.8 BTC from Oscar.
Alice wants to pay Bob 1 BTC.
Alice takes the lump of gole from Nancy and the lump of gold from Oscar and melts them together in a crucible.
Alice pours out a lump of gold worth 1 BTC.
Alice pours out a lump of gold worth 0.55 BTC.
Alice gives Bob the new 1 BTC lump of gold.
Alice keeps the remaining 0.55 BTC lump of gold.

Notice in the above, there were 2 inputs into the crucible, providing the crucible with a total of 1.55 BTC of value.
Notice in the above that there are 2 outputs from the crucible (one worth 1 BTC, and the other worth 0.55 BTC)
Notice in the above that it is impossible to tell how much of Nancy's lump of gold and how much of Oscar's lump of gold Bob ended up with.

Transactions have a list of inputs (supplying value to the transaction) and a list of outputs (assigned value). There is no indication in a transaction of which output value came from which input value.

You used "If" in "If Alice's new transaction...", is it because the transaction is program driven and Alice has no control (and does not care) on how it arrages the inputs and outputs internally once it is executed by her?

Correct.

Most wallets do not give the user the ability to choose which unspent outputs will be used to fund the transaction.

 If that is the case, then it is not necessary that Alice can be sure that a tranaction can spend the 0.75 BTC output from Nancy because the transaction may spend the 0.8 BTC output from Oscar instead and 0,2 BTC output from Nancy.

Some wallets (such as Bitcoin Core) provide a feature commonly called "coin control".  This feature will list the unspent outputs that the wallet has control over and allow the user to pick the outputs they want to use to fund the wallet.  However, if Alice isn't using such a wallet, or isn't using the coin control feature of the wallet, then the wallet will make the decision about which outputs to use.

If Alice wants to send a new transaction that pays a transaction fee and wants to be certain that only 1 of the two transactions will confirm, then she MUST use at least 1 input in the new transaction that is identical to an input in the previous transaction.  As such, she must either build the raw transaction data herself or use a wallet that provides the "coin control" feature.

Not sure if you can help on this, but if I were want to mine coins just to gain educational experience, what suggestions would you have for me?

I've never done any mining.  The hardware and the electricity are too expensive. It has always been cheaper for me to just buy the bitcoins that I want to have.

I know I need to get hardware and software

Yes.  If you can afford it, your best option at the moment (until better hardware is created) is probably the "AntMiner S9" from Bitmain.com. It can accomplish approximately 14000000000000 hashes per second (14.0 TeraHashes per second), and uses only about 1.372 kiloWatts. So for every continuous 30 days that you operate it, you'll need to pay for a bit more than 1000 kiloWattHours of electricity.  At my local rate of about $0.13 per kiloWattHour, that would cost me a bit more than:
0.13 * 1000 = $130

and the machine will probably need to run all day long.

When its not running, its not mining.  Since you'll invest quite a bit of money to purchase the equipment, you'll want to generate as much Bitcoin as you can in as short an amount of time as possible before the difficulty increases too much.  Therefore, you'll want to keep it running continuously if possible.

NOTE: If you are just wanting to learn what it's like to install and configure mining equipment, then you can buy MUCH cheaper (older) bitcoin mining equipment.  You can probably also find equipment that will use much less electricity. You'll spend a lot less money on it, but it will generate a LOT less bitcoins as well.
 
Which of the coins is worth mining with the high per unit electricity cost in a big US city?

I don't know anything about any altcoins.  I'm not interested in them at all.  You'll have to ask someone else for information about altcoins.

The info I need is probably the following:

Where to get a hardware?
Where to get software?  
How to store coins earned?
Where and how to sell the coins?

That depends on what altcoin you want to mine.

How to put everything together?

That depends on what equipment you buy.

It may not be profitable for me to mine, but I will like, at least, to minimize the cost.  

There are two types of cost.

There is the upfront cost to purchase everything, and then there is the net cost after you subtract out what you've earned after a year or two.

If you are mining bitcoins, then the AntMiner S9 is likely to have the smallest net cost after operating it for a year or two, but if you stop after a few days (or weeks), then it is likely to have a rather high cost since you won't have generated enough bitcoins to cover the initial cost yet.

Other older equipment will have a much lower initial cost, but might not generate enough bitcoins to even cover the electricity costs of running it. In that case, the longer you run it, the higher your net cost.
Bitcoin Guy (OP)
Full Member
***
Offline Offline

Activity: 350
Merit: 101



View Profile
August 20, 2017, 08:09:50 PM
 #32

Danny - I really appreciate you put in the time to help me to understand all these. 

Blockchain is an incredible and interesting technology.  New implementations and ideas that derive from it continues to come out.  There are still much for me to learn.

So if you are not a miner, are you a blockchain developer?  Blockchain developers are in high demand nowadays.

Are you familiar with Lightning Network and cross-chain technology called COMIT (by the TenX team)?   If you are, do you think they will work?

- To be or not to be, that is the question. -
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!