I=(S=Uno.Random = function(){
}).prototype;

I.SetSeed = function(seed)
{
    this.z = seed;
    this.w = seed + 1;
};

I.NextInt = function()
{
    this.z = ((36969 * (this.z & 65535)) + (this.z >> 16)) & 134217727;
    this.w = ((18000 * (this.w & 65535)) + (this.w >> 16)) & 134217727;
    return ((this.z << 16) + this.w) & 134217727;
};

I.NextFloat = function()
{
    return this.NextInt() / 1.342177e+08;
};

I.NextFloat3 = function()
{
    return Uno.Float3.$1(this.NextFloat(), this.NextFloat(), this.NextFloat());
};

S.$0 = function(seed, $this) {
    if (!$this) $this = new Uno.Random;
    $this.SetSeed(seed);
    return $this;
};
