Bitcoin Forum
April 22, 2021, 12:41:40 AM *
News: Latest Bitcoin Core release: 0.21.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 [167] 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 »
  Print  
Author Topic: [XPM] [ANN] Primecoin Release - First Scientific Computing Cryptocurrency  (Read 686978 times)
dsattler
Legendary
*
Offline Offline

Activity: 924
Merit: 1000


View Profile
November 14, 2013, 09:32:56 AM
 #3321

Hi Guys,

What is the difference between jhPrimeminer-T15-AVX.exe and jhPrimeminer-T15.exe in aerocloud's miner ?

thanks

AVX is a feature of modern CPUs, look here: http://en.wikipedia.org/wiki/Advanced_Vector_Extensions

According to AeroCloud, the factor of optimization is rather low (about 5%) and it needs more electrical power! So maybe, it's not worth the effort...

Bitcointalk member since 2013! Smiley
1619052100
Hero Member
*
Offline Offline

Posts: 1619052100

View Profile Personal Message (Offline)

Ignore
1619052100
Reply with quote  #2

1619052100
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1619052100
Hero Member
*
Offline Offline

Posts: 1619052100

View Profile Personal Message (Offline)

Ignore
1619052100
Reply with quote  #2

1619052100
Report to moderator
1619052100
Hero Member
*
Offline Offline

Posts: 1619052100

View Profile Personal Message (Offline)

Ignore
1619052100
Reply with quote  #2

1619052100
Report to moderator
1619052100
Hero Member
*
Offline Offline

Posts: 1619052100

View Profile Personal Message (Offline)

Ignore
1619052100
Reply with quote  #2

1619052100
Report to moderator
doof
Hero Member
*****
Offline Offline

Activity: 764
Merit: 501


View Profile WWW
November 14, 2013, 10:13:30 AM
 #3322

Is the proof of work paper still around somewhere?  I get 404s on the links
kactech
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
November 14, 2013, 10:27:11 AM
 #3323

Is the proof of work paper still around somewhere?  I get 404s on the links
http://primecoin.org/static/primecoin-paper.pdf
TrippyPippy
Member
**
Offline Offline

Activity: 110
Merit: 10


View Profile
November 14, 2013, 11:02:06 AM
 #3324

ok noobie question here.

When solo mining using the primecoin wallet console and command "setgenerate true", if you do find a block where will it be sent ? to what address ?

Thanks for your help in advance.
markm
Legendary
*
Offline Offline

Activity: 2674
Merit: 1041



View Profile WWW
November 14, 2013, 11:13:16 AM
 #3325

The next address in you list of upcoming addresses to use I used, I think.

(The wallet typically creates 100 addresses in advance when created.)

Basically each block it finds, probably including orphans, it mined to another new address you had not yet used.

Some people tell their walelt to generate thousands of addresses up front so they can put the same wallet on multiple machines so that until those pre-generated addresses have been used all the machines will "see" all the blocks mined by any of them. This lets them see from just one machine when some one of their many many machines they have rented or that are part of their botnet or whatever have found a block. (Though it obfuscates which machine it was exactly that found it; they'd have to check the debug.log logs of all the machines to discover which one it was that actually found the block.)

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
TrippyPippy
Member
**
Offline Offline

Activity: 110
Merit: 10


View Profile
November 14, 2013, 11:21:20 AM
 #3326

thanks
ninjafocus100
Newbie
*
Offline Offline

Activity: 31
Merit: 0


View Profile
November 14, 2013, 12:22:08 PM
 #3327

This can be a very good alternative to Bitcoin!
Brewins
Legendary
*
Offline Offline

Activity: 1120
Merit: 1000



View Profile
November 15, 2013, 01:02:23 AM
 #3328

anyone know if there are any more Pools starting up for this coin?
mikaelh
Sr. Member
****
Offline Offline

Activity: 301
Merit: 250


View Profile
November 16, 2013, 06:20:23 PM
 #3329

@mikaelh Thank you for clarifying, could you also discuss shortly other enhancements pointed by Supercomputing? Not necessarily definitely, just from the perspective of your experience.
There are several enhancements which account for the drastic increase in performance over the current CPU implementation:
1) Montgomery Reduction is used.
2) The size of the multiprecision arithmetic is fixed.
3) An optimized sieve is running on the GPU.
4) An optimized primorial search is running on the GPU (double SHA-256).
5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny).
Thanks

Ok, here's my take on these claims.

1) There's no question about the fact that GPUs are faster at modular multiplication. Supercomputing has already linked plenty of papers about that.

The missing piece of information about his implementation is how he goes from multiplication to exponentiation. The Fermat's test in Primecoin is all about doing modular exponentiation. There's a well-known algorithm for that which uses modular squaring and multiplication. I think you are forced to do some branching on the GPU which slightly slows it down.

2) Fixing the precision definitely gives a minor speedup and makes the implementation easier. The only caveat is that it may not be future-proof when we move to longer chains.

3) Yes, I think it's possible to implement a much more efficient sieve if you exploit the shared memory on the GPU.

4) I'm guessing that primorial search refers to finding header hashes divisible by a primorial. The CPU implementation searches for hashes that are divisible by 7# (= 2 * 3 * 5 * 7). On the CPU this takes only a tiny fraction of time. If you have a fast GPU implementation of it, you can search for hashes divisible by much larger primorials. This might get him a minor speedup.

Note that his faster primorial search will be obsolete once mining protocol v0.2 is enforced. Link: http://www.peercointalk.org/index.php?topic=453.0
satriani
Member
**
Offline Offline

Activity: 93
Merit: 10


View Profile
November 18, 2013, 02:02:59 PM
 #3330

if nobody invent fast GPU miner / ASIC XPM miner - this coin will be probably dead.
Stinky_Pete
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500


View Profile
November 18, 2013, 02:57:26 PM
 #3331

if nobody invent fast GPU miner / ASIC XPM miner - this coin will be probably dead.
Why? I think having a coin which is immune to disruptive mining methods, is a good thing. More certainty, better investment.

satriani
Member
**
Offline Offline

Activity: 93
Merit: 10


View Profile
November 18, 2013, 03:08:41 PM
 #3332

becouse of coins supply
Supercomputing
Sr. Member
****
Offline Offline

Activity: 278
Merit: 250


View Profile
November 18, 2013, 10:19:54 PM
Last edit: November 19, 2013, 03:10:17 AM by Supercomputing
 #3333

4) I'm guessing that primorial search refers to finding header hashes divisible by a primorial. The CPU implementation searches for hashes that are divisible by 7# (= 2 * 3 * 5 * 7). On the CPU this takes only a tiny fraction of time. If you have a fast GPU implementation of it, you can search for hashes divisible by much larger primorials. This might get him a minor speedup.

Note that his faster primorial search will be obsolete once mining protocol v0.2 is enforced. Link: http://www.peercointalk.org/index.php?topic=453.0

Yes, that was to be expected. Forcing the hash to be a prime number makes the proof-of-work reusability infeasible. Also, searching for a block header hash that is divisible by a large primorial no longer applies. However, this does not prevent someone who is mathematically gifted to go after double SHA-256 and look for a divisibility weakness against existing prime chain origins. That is what I would do if I were interested in the financial gains from mining.

For the (Nvidia GPU, sm_20 and above) modular exponentiation, I am using the square-and-multiply (binary exponentiation) method. You cannot eliminate branching but it can be drastically reduced. The penalty for branching in this case is a 2x reduction in performance, but you can fix the exponent to reduce the overall effects of warp divergence. You can see from the partial code below (Montgomery Reduction for multiplying two 320-bit numbers) that it is almost branch free. And a vast amount of work went into memory management instead.

So how do I fix the exponent, it is easy to do on a chain-by-chain basis, for example:
We have the following chain, 19, 37, 73
Take the largest exponent which is (73-1) = 72
2^72 modulo 19 = 1
2^72 modulo 37 = 1
2^72 modulo 73 = 1

I also have another trick that I run on the CPU from left-to-right on my virtual array to deal with the partial remainders, because the exponent is fixed for the entire array, is has to do with the modular square roots of prime numbers. It is much more complicated but is runs very fast on the CPU and almost always returns the correct result for prime numbers, but not for composite numbers.

Even with all of this work, the Nvidia GTX 580 is still only 6.86x faster than the AMD Phenom II X6 1100T because of the added overhead to reduce warp divergence. Plus I am also working in the Montgomery domain from end-to-end.

__device__ void
nvidia_gfn_multiply(nvidia_word_t *rop, const int rop_interleaved,
               const nvidia_word_t *op1, const int op1_interleaved,
               const nvidia_word_t *op2, const int op2_interleaved,
               nvidia_word_t nvidia_gfn_n)
{
   nvidia_gfn_t r;
   nvidia_word_t q;
   nvidia_word_t c0=0, c1;
   nvidia_word_t tasm=0;
      
   r[0]=0;
   r[1]=0;
   r[2]=0;
   r[3]=0;
   r[4]=0;
   r[5]=0;
   r[6]=0;
   r[7]=0;
   r[8]=0;
   r[9]=0;

   tasm=0;
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[0]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[0*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[0]) : "r"(op1[0*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[1]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[1*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[1]) : "r"(op1[1*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[2]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[2*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[2]) : "r"(op1[2*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[3]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[3*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[3]) : "r"(op1[3*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[4]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[4*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[4]) : "r"(op1[4*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[5]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[5*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[5]) : "r"(op1[5*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[6]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[6*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[6]) : "r"(op1[6*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[7]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[7*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[7]) : "r"(op1[7*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[8]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[8*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[8]) : "r"(op1[8*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(r[9]) : "r"(tasm));
   asm( "madc.hi.u32 %0, %1, %2, 0;" : "=r"(tasm) : "r"(op1[9*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "mad.lo.cc.u32 %0, %1, %2, %0;" : "+r"(r[9]) : "r"(op1[9*op1_interleaved]), "r"(op2[0*op2_interleaved]));
   asm( "addc.u32 %0, %0, 0;" : "+r"(tasm));
   asm( "add.cc.u32 %0, %0, %1;" : "+r"(c0) : "r"(tasm) );
   asm( "addc.u32 %0, 0, 0;" : "=r"(c1));

             ...

nvidia_word_t overflow;
   asm ( "sub.cc.u32 %0, %0, %1;" : "+r"(r[0]) : "r"(nvidia_gfn_n[0]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[1]) : "r"(nvidia_gfn_n[1]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[2]) : "r"(nvidia_gfn_n[2]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[3]) : "r"(nvidia_gfn_n[3]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[4]) : "r"(nvidia_gfn_n[4]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[5]) : "r"(nvidia_gfn_n[5]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[6]) : "r"(nvidia_gfn_n[6]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[7]) : "r"(nvidia_gfn_n[7]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[8]) : "r"(nvidia_gfn_n[8]) );
   asm ( "subc.cc.u32 %0, %0, %1;" : "+r"(r[9]) : "r"(nvidia_gfn_n[9]) );
   asm ( "subc.u32 %0, %1, 0;" : "=r"(overflow) : "r"(c0) );
   
   if (overflow!=0)
   {      
      asm ( "add.cc.u32 %0, %0, %1;" : "+r"(r[0]) : "r"(nvidia_gfn_n[0]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[1]) : "r"(nvidia_gfn_n[1]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[2]) : "r"(nvidia_gfn_n[2]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[3]) : "r"(nvidia_gfn_n[3]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[4]) : "r"(nvidia_gfn_n[4]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[5]) : "r"(nvidia_gfn_n[5]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[6]) : "r"(nvidia_gfn_n[6]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[7]) : "r"(nvidia_gfn_n[7]) );
      asm ( "addc.cc.u32 %0, %0, %1;" : "+r"(r[8]) : "r"(nvidia_gfn_n[8]) );
      asm ( "addc.u32 %0, %0, %1;" : "+r"(r[9]) : "r"(nvidia_gfn_n[9]));
   }
   rop[0*rop_interleaved]=r[0];
   rop[1*rop_interleaved]=r[1];
   rop[2*rop_interleaved]=r[2];
   rop[3*rop_interleaved]=r[3];
   rop[4*rop_interleaved]=r[4];
   rop[5*rop_interleaved]=r[5];
   rop[6*rop_interleaved]=r[6];
   rop[7*rop_interleaved]=r[7];
   rop[8*rop_interleaved]=r[8];
   rop[9*rop_interleaved]=r[9];
}

Electrical Engineering & Computer Science
http://www.eecs.mit.edu/
Trillium
Hero Member
*****
Offline Offline

Activity: 546
Merit: 500



View Profile
November 19, 2013, 04:27:28 AM
 #3334

if nobody invent fast GPU miner / ASIC XPM miner - this coin will be probably dead.

becouse of coins supply

This guy says the coin is going to die, lets just pack our bags now and go home guys. It's all over.

Here have my coins

65HaqogaC8w8RRoL5iYnTjHpajLFK5LPKE9cRjKbkaHgrKB3bWo

BTC:1AaaAAAAaAAE2L1PXM1x9VDNqvcrfa9He6
cryptrol
Hero Member
*****
Offline Offline

Activity: 637
Merit: 500


View Profile
November 19, 2013, 06:49:34 AM
 #3335

if nobody invent fast GPU miner / ASIC XPM miner - this coin will be probably dead.

becouse of coins supply

This guy says the coin is going to die, lets just pack our bags now and go home guys. It's all over.


It's the same guy spamming the btc-e trollbox all day with the "benefits" of XPM.

A message to bagholders : be patient, also rome was not built in a day, also XPM is so young.
haightst
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
November 19, 2013, 03:44:59 PM
 #3336

if nobody invent fast GPU miner / ASIC XPM miner - this coin will be probably dead.

becouse of coins supply

This guy says the coin is going to die, lets just pack our bags now and go home guys. It's all over.

Here have my coins

65HaqogaC8w8RRoL5iYnTjHpajLFK5LPKE9cRjKbkaHgrKB3bWo

can you send them to me?  Grin ~ i believe in /\XPM !!!
jaakkop
Member
**
Offline Offline

Activity: 63
Merit: 10


View Profile WWW
November 19, 2013, 04:38:32 PM
 #3337

Here have my coins

65HaqogaC8w8RRoL5iYnTjHpajLFK5LPKE9cRjKbkaHgrKB3bWo
Just curious... was this a valid private key? I imported it successfully but its balance is zero Smiley

I'd buy that for a dollar bitcoin!
satriani
Member
**
Offline Offline

Activity: 93
Merit: 10


View Profile
November 21, 2013, 11:48:18 AM
 #3338

2 very important questions and anserw by Sunny:

questions:
1. from wikipedia http://en.wikipedia.org/wiki/Primecoin "To meet this requirement, the size of the prime numbers in the system cannot be too large". What could happen when we cross 10 or 100 mln block and the prime numbers start to be large?
2. "If the coin is successful and prime number theorists can use the results to find an equation to predict prime #s, it would essentially break the coin's PoW." -> is it possible?

answers:
1) Prime size would stay same. The prime chains aren't going to be exhausted. There are countless prime numbers, basically as abundant as numbers themselves. Remember there is a prime every couple of hundred numbers at the scale primecoin miners work. So for a 256 bit number there are more than 2^248 primes, so that's not far from 2^256 which is the total numbers at 256 bit.
2) Prime number theory is an extreme hard discipline, with hundreds of years of history. So it's not very likely to happen overnight. I'd say even if you throw trillions dollars at such research it's not going to produce that type of results on demand. Also, even if you find a super efficient mining algorithm doesn't mean you 'break' the proof-of-work system, it just means you have an advantage over the public before you publish the findings. The difficulty can scale enormously in primecoin's design.
--------

its quite optimistic. those 2 questions were my major doubts about prime. now i think that this model of PoW could be more safe then SHA256, which could have some problem when quantum computer appear on the market.
skaffen
Full Member
***
Offline Offline

Activity: 124
Merit: 100


View Profile
November 21, 2013, 12:52:36 PM
 #3339

this model of PoW could be more safe then SHA256, which could have some problem when quantum computer appear on the market.

It seems that quantum computers would be good at finding prime numbers too, though:  http://www.newscientist.com/article/dn23289-quantum-computer-could-solve-prime-number-mystery.html

BTC: 1PwXSJnmnCMKTEw8JqtjdDVoRUhtMExiNP    XPM: ANREvGk6CJYM5YWuW3eNankjGKS1ZYmAzP
Trillium
Hero Member
*****
Offline Offline

Activity: 546
Merit: 500



View Profile
November 22, 2013, 12:21:24 AM
 #3340

Quote
quantum nonsense again

There are probably only a few hundred academics and engineers on the planet who have a complete grasp of the quantum computers / processors currently built. Let alone to comment on the implementation of them for finding primes, let alone primecoin specifically.

Just like any other newly developed high-cost scientific instrument, quantum computers (read D-Wave) will only ever run for academic, military, and government purposes and simulations until their cost falls by orders of magnitude.

There is never going to be a underground group who makes a quantum computer in their basement and starts cracking away at primecoin. Even if that was possible, I can think of a LONG list of things that would make them more wealth before primecoin ever would.

Keep in mind that with any cryptocoin, if there was suddenly an exponential rise in the difficulty from an unknown and unexpected source, then the miners, traders, and investors in that coin would lose confidence over night, it would crash and die in days, and finally be abandoned completely*. This discussion used to come up almost every day here a long time go - before ASIC were around to secure bitcoin - when people were claiming it was a genuine concern that 'some organization / government' would buy datacenters full of GPU just to end bitcoin: there is next to no logic behind it.

Note*: A notable exception / alternative scenario is where some kind of attack takes place but no one cashes out the coins. A good example specifically is the hundreds of thousands or millions of terracoins that were obtained with months of exploitation of the network that have not yet been cashed out. When/if that does happen the coin will most likely die.

BTC:1AaaAAAAaAAE2L1PXM1x9VDNqvcrfa9He6
Pages: « 1 ... 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 [167] 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 »
  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!