Jump to content

Xard

Members
  • Posts

    35
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Xard

  1. An little update to add here if you try to use 28782 with the related quest the server crsahes

    Revision: * * 9025 *
    Date 19:12:2009. Time 12:43 
    //=====================================================
    *** Hardware ***
    Processor: AMD Phenom(tm) II X4 940 Processor
    Number Of Processors: 4
    Physical Memory: 4192728 KB (Available: 1767916 KB)
    Commit Charge Limit: 12577380 KB
    
    *** Operation System ***
    Windows Vista or Windows Server 2008 Professional (Version 6.1, Build 7100)
    
    //=====================================================
    Exception code: C0000005 ACCESS_VIOLATION
    Fault address:  00000001400095A5 01:00000000000085A5 E:\\MaNGOS\\mangosd.exe
    
    Registers:
    RAX:0000000000000030
    RBX:0000000000000000
    RCX:0000000000000000
    RDX:0000000000000000
    RSI:000007FFEFF58CC0
    RDI:00000001402C0930
    R8: 0000000000000000
    R9: 8000000000000000
    R10:000007FFEDF64000
    R11:0000000000000000
    R12:0000000000000000
    R13:0000000000000000
    R14:0000000000000000
    R15:00000000094DD670
    CS:RIP:0033:00000001400095A5
    SS:RSP:002B:00000000094DDC30  RBP:00000000
    DS:002B  ES:002B  FS:0053  GS:002B
    Flags:00010297
    
    Call stack:
    Address   Frame     Function      SourceFile
    00000001400095A5  00000000094DDC40  Creature::GetPetAutoSpellOnPos+35  e:\\kara\\src\\game\\creature.h line 584
    0000000140613E28  00000000094DE1B0  PetAI::UpdateAI+7C8  e:\\kara\\src\\game\\petai.cpp line 204
    000000014031F6D2  00000000094E9390  Creature::Update+5E2  e:\\kara\\src\\game\\creature.cpp line 444
    000000014033D91A  00000000094EB3F0  Vehicle::Update+2A  e:\\kara\\src\\game\\vehicle.cpp line 72
    00000001401058D5  00000000094EB480  MaNGOS::ObjectUpdater::Visit+F5  e:\\kara\\src\\game\\gridnotifiersimpl.h line 47
    00000001401057CD  00000000094EB4F0  VisitorHelper<MaNGOS::ObjectUpdater,Creature>+1D  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 65
    000000014010482D  00000000094EB520  VisitorHelper<MaNGOS::ObjectUpdater,Creature,TypeList<Corpse,TypeNull> >+1D  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 71
    00000001401040A0  00000000094EB550  VisitorHelper<MaNGOS::ObjectUpdater,Player,TypeList<Creature,TypeList<Corpse,TypeNull> > >+30  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 72
    000000014010384D  00000000094EB580  VisitorHelper<MaNGOS::ObjectUpdater,TypeList<Player,TypeList<Creature,TypeList<Corpse,TypeNull> > > >+1D  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 95
    00000001400FE3F8  00000000094EF660  Map::Visit<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock,MaNGOS::ObjectUpdater,TypeMapContainer<TypeList<Player,TypeList<Creature,TypeList<Corpse,TypeNull> > > > >+168  e:\\kara\\src\\game\\map.h line 660
    00000001400F6A98  00000000094EF750  Cell::Visit<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock,MaNGOS::ObjectUpdater,TypeMapContainer<TypeList<Player,TypeList<Creature,TypeList<Corpse,TypeNull> > > > >+88  e:\\kara\\src\\game\\cellimpl.h line 48
    00000001400D5A95  00000000094EFB40  Map::Update+5C5  e:\\kara\\src\\game\\map.cpp line 647
    00000001402C66BF  00000000094EFC30  MapManager::Update+19F  e:\\kara\\src\\game\\mapmanager.cpp line 266
    000000014029A702  00000000094EFE00  World::Update+732  e:\\kara\\src\\game\\world.cpp line 1689
    000000014003E9B5  00000000094EFE40  WorldRunnable::run+A5  e:\\kara\\src\\mangosd\\worldrunnable.cpp line 61
    00000001402C0953  00000000094EFEB0  ACE_Based::Thread::ThreadTask+23  e:\\kara\\src\\shared\\threading.cpp line 186
    000007FEEA21157B  00000000094EFEF0  ?invoke@ACE_OS_Thread_Adapter@@UEAAKXZ+5B
    00000000735B2FDF  00000000094EFF20  _endthreadex+47
    00000000735B3080  00000000094EFF50  _endthreadex+E8
    000000007767542D  00000000094EFF80  BaseThreadInitThunk+D
    00000000778BBE51  00000000094EFFD0  RtlUserThreadStart+21
    

    This is the code in the src at line marked with <====

    void Vehicle::Update(uint32 diff)
    {
       Creature::Update(diff);
       InstallAllAccessories();  <=========
    
       if(despawn)
       {
           m_spawnduration -= diff;
           if(m_spawnduration < 0)
               Dismiss();
           despawn = false;
       }
    
       if(m_regenTimer <= diff)
       {
           RegeneratePower(getPowerType());
           m_regenTimer = 4000;
       }
       else
           m_regenTimer -= diff;
    }

    Till yerstaday's patch worked partialy after you was clicked to enter in vehicle instantly umounted you down and you losed the movement crontrols over your character until you reloged

    And the 28670 can't fly is acting like you don't have movement control over him :(

    I found what caused that crash marked with <======

    bool Vehicle::Create(uint32 guidlow, Map *map, uint32 phaseMask, uint32 Entry, uint32 vehicleId, uint32 team, const CreatureData *data)
    {
       SetMap(map);
       SetPhaseMask(phaseMask,false);
    
       CreatureInfo const *cinfo = sObjectMgr.GetCreatureTemplate(Entry);
       if(!cinfo)
       {
           sLog.outErrorDb("Creature entry %u does not exist.", Entry);
           return false;
       }
    
       Object::_Create(guidlow, Entry, HIGHGUID_VEHICLE);
    
       if(!UpdateEntry(Entry, team, data))
           return false;
    
       if(!vehicleId)
       {
           CreatureDataAddon const *cainfo = GetCreatureAddon();
           if(!cainfo)
               return false;
           vehicleId = cainfo->vehicle_id;
       }
       if(!SetVehicleId(vehicleId))
           return false;
    
       LoadCreaturesAddon();
    
       m_regenHealth = false;
       m_creation_time = getMSTime();
    
       SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f);
       //RemoveMonsterMoveFlag(MONSTER_MOVE_WALK);
    
       //Notify the map's instance data.
       //Only works if you create the object in it, not if it is moves to that map.
       //Normally non-players do not teleport to other maps.
       if(map->IsDungeon() && ((InstanceMap*)map)->GetInstanceData())
       {
           ((InstanceMap*)map)->GetInstanceData()->OnCreatureCreate(this);
       }
    
       if(m_vehicleInfo->m_powerType == POWER_TYPE_STEAM)
       {
           setPowerType(POWER_ENERGY);
           SetMaxPower(POWER_ENERGY, 100);
           SetPower(POWER_ENERGY, 100);
       }
       else if(m_vehicleInfo->m_powerType == POWER_TYPE_PYRITE)
       {
           setPowerType(POWER_ENERGY);
           SetMaxPower(POWER_ENERGY, 50);
           SetPower(POWER_ENERGY, 50);
       }
       else
       {
           for (uint32 i = 0; i < MAX_VEHICLE_SPELLS; ++i)
           {
               if(!GetVehicleData()->v_spells[i])
                   continue;
    
               SpellEntry const *spellInfo = sSpellStore.LookupEntry(GetVehicleData()->v_spells[i]);
               if(!spellInfo)
                   continue;
    
               if(spellInfo->powerType == POWER_MANA)
                   break;
    
               if(spellInfo->powerType == POWER_ENERGY)
               {
                   setPowerType(POWER_ENERGY);
                   SetMaxPower(POWER_ENERGY, 100);
                   SetPower(POWER_ENERGY, 100);
                   break;
               }
           }
       }
    
                  InstallAllAccessories();    <=======
    
       return true;
    }
    

    So i comented that and the crash has gone

  2. -------------------------------------------------------------unit.h-------------------------------------------------------------

    @@Line 1019@@

    bool IsHostileToPlayers() const;

    bool IsFriendlyTo(Unit const* unit) const;

    + bool IsInRaidWith(Unit const* unit) const;

    + bool IsInPartyWith(Unit const* unit) const;

    make this

    Yes i can confirm they work thank you

  3. its hand made fix ....i cant make .patch file, make this changes in Microsoft Visual Studio

    Well and many more

    10>..\\..\\src\\game\\Spell.cpp(5201) : error C2039: 'IsInPartyWith' : is not a member of 'Unit'
    10>        e:\\kara\\src\\game\\Unit.h(900) : see declaration of 'Unit'
    10>..\\..\\src\\game\\Spell.cpp(5203) : error C2039: 'IsInRaidWith' : is not a member of 'Unit'
    10>        e:\\kara\\src\\game\\Unit.h(900) : see declaration of 'Unit'
    

  4. Confirmed. I have updated my local repo to last rev and obtained the bug. I'll look at it... May be tommorow.

    An little update to add here if you try to use 28782 with the related quest the server crsahes

    Revision: * * 9025 *
    Date 19:12:2009. Time 12:43 
    //=====================================================
    *** Hardware ***
    Processor: AMD Phenom(tm) II X4 940 Processor
    Number Of Processors: 4
    Physical Memory: 4192728 KB (Available: 1767916 KB)
    Commit Charge Limit: 12577380 KB
    
    *** Operation System ***
    Windows Vista or Windows Server 2008 Professional (Version 6.1, Build 7100)
    
    //=====================================================
    Exception code: C0000005 ACCESS_VIOLATION
    Fault address:  00000001400095A5 01:00000000000085A5 E:\\MaNGOS\\mangosd.exe
    
    Registers:
    RAX:0000000000000030
    RBX:0000000000000000
    RCX:0000000000000000
    RDX:0000000000000000
    RSI:000007FFEFF58CC0
    RDI:00000001402C0930
    R8: 0000000000000000
    R9: 8000000000000000
    R10:000007FFEDF64000
    R11:0000000000000000
    R12:0000000000000000
    R13:0000000000000000
    R14:0000000000000000
    R15:00000000094DD670
    CS:RIP:0033:00000001400095A5
    SS:RSP:002B:00000000094DDC30  RBP:00000000
    DS:002B  ES:002B  FS:0053  GS:002B
    Flags:00010297
    
    Call stack:
    Address   Frame     Function      SourceFile
    00000001400095A5  00000000094DDC40  Creature::GetPetAutoSpellOnPos+35  e:\\kara\\src\\game\\creature.h line 584
    0000000140613E28  00000000094DE1B0  PetAI::UpdateAI+7C8  e:\\kara\\src\\game\\petai.cpp line 204
    000000014031F6D2  00000000094E9390  Creature::Update+5E2  e:\\kara\\src\\game\\creature.cpp line 444
    000000014033D91A  00000000094EB3F0  Vehicle::Update+2A  e:\\kara\\src\\game\\vehicle.cpp line 72
    00000001401058D5  00000000094EB480  MaNGOS::ObjectUpdater::Visit+F5  e:\\kara\\src\\game\\gridnotifiersimpl.h line 47
    00000001401057CD  00000000094EB4F0  VisitorHelper<MaNGOS::ObjectUpdater,Creature>+1D  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 65
    000000014010482D  00000000094EB520  VisitorHelper<MaNGOS::ObjectUpdater,Creature,TypeList<Corpse,TypeNull> >+1D  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 71
    00000001401040A0  00000000094EB550  VisitorHelper<MaNGOS::ObjectUpdater,Player,TypeList<Creature,TypeList<Corpse,TypeNull> > >+30  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 72
    000000014010384D  00000000094EB580  VisitorHelper<MaNGOS::ObjectUpdater,TypeList<Player,TypeList<Creature,TypeList<Corpse,TypeNull> > > >+1D  e:\\kara\\src\\framework\\gamesystem\\typecontainervisitor.h line 95
    00000001400FE3F8  00000000094EF660  Map::Visit<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock,MaNGOS::ObjectUpdater,TypeMapContainer<TypeList<Player,TypeList<Creature,TypeList<Corpse,TypeNull> > > > >+168  e:\\kara\\src\\game\\map.h line 660
    00000001400F6A98  00000000094EF750  Cell::Visit<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock,MaNGOS::ObjectUpdater,TypeMapContainer<TypeList<Player,TypeList<Creature,TypeList<Corpse,TypeNull> > > > >+88  e:\\kara\\src\\game\\cellimpl.h line 48
    00000001400D5A95  00000000094EFB40  Map::Update+5C5  e:\\kara\\src\\game\\map.cpp line 647
    00000001402C66BF  00000000094EFC30  MapManager::Update+19F  e:\\kara\\src\\game\\mapmanager.cpp line 266
    000000014029A702  00000000094EFE00  World::Update+732  e:\\kara\\src\\game\\world.cpp line 1689
    000000014003E9B5  00000000094EFE40  WorldRunnable::run+A5  e:\\kara\\src\\mangosd\\worldrunnable.cpp line 61
    00000001402C0953  00000000094EFEB0  ACE_Based::Thread::ThreadTask+23  e:\\kara\\src\\shared\\threading.cpp line 186
    000007FEEA21157B  00000000094EFEF0  ?invoke@ACE_OS_Thread_Adapter@@UEAAKXZ+5B
    00000000735B2FDF  00000000094EFF20  _endthreadex+47
    00000000735B3080  00000000094EFF50  _endthreadex+E8
    000000007767542D  00000000094EFF80  BaseThreadInitThunk+D
    00000000778BBE51  00000000094EFFD0  RtlUserThreadStart+21
    

    This is the code in the src at line marked with <====

    void Vehicle::Update(uint32 diff)
    {
       Creature::Update(diff);
       InstallAllAccessories();  <=========
    
       if(despawn)
       {
           m_spawnduration -= diff;
           if(m_spawnduration < 0)
               Dismiss();
           despawn = false;
       }
    
       if(m_regenTimer <= diff)
       {
           RegeneratePower(getPowerType());
           m_regenTimer = 4000;
       }
       else
           m_regenTimer -= diff;
    }

    Till yerstaday's patch worked partialy after you was clicked to enter in vehicle instantly umounted you down and you losed the movement crontrols over your character until you reloged

    And the 28670 can't fly is acting like you don't have movement control over him :(

  5. On my serv i able to successfully uses all vehicles witch situated in ulduar.

    May be something happened when you had creating your core. Try to rebuild it.

    And try to delete all WoW caches.

    Wel i can't switch seats and i also cleaned the cache:( , justcloned the reposity re added the whole sql data still can't switch seat

  6. I have remastered the regen system for vehicles. And now there are works a vehicles like Salvaged Chopper.

    Added new data for vahicle_* tables. Thanks to gen1us2k

    There was posted only base part of my fix.

    diff --git a/src/game/Vehicle.cpp b/src/game/Vehicle.cpp
    index 04c7e99..24d6da9 100644
    --- a/src/game/Vehicle.cpp
    +++ b/src/game/Vehicle.cpp
    @@ -81,14 +81,14 @@ void Vehicle::Update(uint32 diff)
    
        if(m_regenTimer <= diff)
        {
    -        Regenerate(getPowerType());
    +        RegeneratePower(getPowerType());
            m_regenTimer = 4000;
        }
        else
            m_regenTimer -= diff;
    }
    
    -void Vehicle::Regenerate(Powers power)
    +void Vehicle::RegeneratePower(Powers power)
    {
        uint32 curValue = GetPower(power);
        uint32 maxValue = GetMaxPower(power);
    @@ -98,11 +98,12 @@ void Vehicle::Regenerate(Powers power)
    
        float addvalue = 0.0f;
    
    -    if(m_vehicleInfo->m_powerType == POWER_STEAM)
    -        addvalue = 20.0;
    -    else 
    -        if(m_vehicleInfo->m_powerType == POWER_PYRITE)
    -            return;
    +    // hack: needs more research of power type from the dbc. 
    +    // It must contains some info about vehicles like Salvaged Chopper.
    +    if(m_vehicleInfo->m_powerType == POWER_TYPE_PYRITE)
    +        return;
    +
    +    addvalue = 20.0f;
    
        ModifyPower(power, (int32)addvalue);
    }
    @@ -149,43 +150,42 @@ bool Vehicle::Create(uint32 guidlow, Map *map, uint32 phaseMask, uint32 Entry, u
        {
            ((InstanceMap*)map)->GetInstanceData()->OnCreatureCreate(this);
        }
    -    if(Creature *cre = dynamic_cast<Creature*>(this))
    +    
    +    if(m_vehicleInfo->m_powerType == POWER_TYPE_STEAM)
        {
    -        if(m_vehicleInfo->m_powerType == POWER_STEAM)
    -        {
    -            this->setPowerType(POWER_ENERGY);
    -            this->SetMaxPower(POWER_ENERGY, 100);
    -            this->SetPower(POWER_ENERGY, 100);
    -        }
    -        else if(m_vehicleInfo->m_powerType == POWER_PYRITE)
    -        {
    -            this->setPowerType(POWER_ENERGY);
    -            this->SetMaxPower(POWER_ENERGY, 50);
    -            this->SetPower(POWER_ENERGY, 50);
    -        }
    -        else
    +        setPowerType(POWER_ENERGY);
    +        SetMaxPower(POWER_ENERGY, 100);
    +        SetPower(POWER_ENERGY, 100);
    +    }
    +    else if(m_vehicleInfo->m_powerType == POWER_TYPE_PYRITE)
    +    {
    +        setPowerType(POWER_ENERGY);
    +        SetMaxPower(POWER_ENERGY, 50);
    +        SetPower(POWER_ENERGY, 50);
    +    }
    +    else
    +    {
    +        for (uint32 i = 0; i < MAX_VEHICLE_SPELLS; ++i)
            {
    -            for (uint32 i = 0; i < MAX_VEHICLE_SPELLS; ++i)
    -            {
    -                if(!cre->m_spells[i])
    -                    continue;
    -                SpellEntry const *spellInfo = sSpellStore.LookupEntry(cre->m_spells[i]);
    -                if(!spellInfo)
    -                    continue;
    +            if(!GetVehicleData()->v_spells[i])
    +                continue;
    +            SpellEntry const *spellInfo = sSpellStore.LookupEntry(GetVehicleData()->v_spells[i]);
    +            if(!spellInfo)
    +                continue;
    
    -                if(spellInfo->powerType == POWER_MANA)
    -                    break;
    +            if(spellInfo->powerType == POWER_MANA)
    +                break;
    
    -                if(spellInfo->powerType == POWER_ENERGY)
    -                {
    -                    this->setPowerType(POWER_ENERGY);
    -                    this->SetMaxPower(POWER_ENERGY, 100);
    -                    this->SetPower(POWER_ENERGY, 100);
    -                    break;
    -                }
    +            if(spellInfo->powerType == POWER_ENERGY)
    +            {
    +                setPowerType(POWER_ENERGY);
    +                SetMaxPower(POWER_ENERGY, 100);
    +                SetPower(POWER_ENERGY, 100);
    +                break;
                }
            }
        }
    +
        InstallAllAccessories();
    
        return true;
    diff --git a/src/game/Vehicle.h b/src/game/Vehicle.h
    index 7c17edc..b164172 100644
    --- a/src/game/Vehicle.h
    +++ b/src/game/Vehicle.h
    @@ -43,8 +43,8 @@ enum VehicleSeatFlags
    
    enum PowerType
    {
    -    POWER_STEAM     = 61,
    -    POWER_PYRITE    = 41,
    +    POWER_TYPE_PYRITE = 41,
    +    POWER_TYPE_STEAM  = 61
    };
    
    #define MAX_SEAT 8
    @@ -66,7 +66,7 @@ class Vehicle : public Creature
            void setDeathState(DeathState s);                   // overwrite virtual Creature::setDeathState and Unit::setDeathState
            void Update(uint32 diff);                           // overwrite virtual Creature::Update and Unit::Update
    
    -        void Regenerate(Powers power);
    +        void RegeneratePower(Powers power);
    
            uint32 GetVehicleId() { return m_vehicleId; }
            bool SetVehicleId(uint32 vehicleid);
    

    DOWNLOAD*NOW!

    PS to Wojta. When you'll apply the patch add my "signed-off".

    Gonna check them now they regenerate

  7. Any new version of the patch available?

    on the Rev 9010 it doesn't work.

    patch -p1 < druide.patch

    patching file src/game/SpellAuras.cpp
    [b]Hunk #1 FAILED at 2783.[/b]
    1 out of 1 hunk FAILED -- saving rejects to file src/game/SpellAuras.cpp.rej
    patching file src/game/Unit.cpp
    Hunk #1 succeeded at 13046 with fuzz 2 (offset 622 lines).
    patching file src/game/Unit.h
    Hunk #1 succeeded at 1573 (offset 54 lines).

    What can I do?

    You should not need this with a new core it should work

  8. After commit [8944] this doesn't work anymore

    This is how i did

    void Spell::EffectSummonType(uint32 i)
    {
       uint32 prop_id = m_spellInfo->EffectMiscValueB[i];
       SummonPropertiesEntry const *summon_prop = sSummonPropertiesStore.LookupEntry(prop_id);
       if(!summon_prop)
       {
           sLog.outError("EffectSummonType: Unhandled summon type %u", prop_id);
           return;
       }
       if (prop_id == 208)
       {
           EffectSummonGuardian(i, summon_prop->FactionId);
           return;
       }
    

    and add the rest of the sd as it says

    i did the same way with the mirror image

  9. Updated : - added Bufftimeincreasing for Glyph of Horn of Winter (DK)

           if (unitPlayer && target == this)
           {
               switch(spellProto->SpellFamilyName)
               {
                   case SPELLFAMILY_DRUID:
                       if (spellProto->SpellFamilyFlags & UI64LIT(0x100))
                       {
                           // Glyph of Thorns
                           if (Aura * aur = GetAura(57862, 0))
                               duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                       }
                       break;
                   case SPELLFAMILY_PALADIN:
                       if (spellProto->SpellFamilyFlags & UI64LIT(0x00000002))
                       {
                           // Glyph of Blessing of Might
                           if (Aura * aur = GetAura(57958, 0))
                               duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                       }
                       else if (spellProto->SpellFamilyFlags & UI64LIT(0x00010000))
                       {
                           // Glyph of Blessing of Wisdom
                           if (Aura * aur = GetAura(57979, 0))
                               duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                       }
                       break;
                   default:
                       break;
               }
           }
           else if(unitPlayer)
           {
               switch(spellProto->SpellFamilyName)
               {          
                   case SPELLFAMILY_DEATHKNIGHT:
                       // Glyph of Horn of Winter
                       if(spellProto->Id == 57330 || spellProto->Id == 57623)
                       {
                           if(Aura * aur = GetAura(58680,0))
                               duration += aur->GetModifier()->m_amount * MINUTE * IN_MILISECONDS;
                       }
                       break;
                   default:
                       break;
               }
           }
    

    i will provide a patchfile maybe later

    this is addition for CalculateSpellDuration Method.

    This is cool but where to apply ? :) since the original post at pastebin.org is expired

  10. I went from a Trinity 3.1.3 server to Mangos 3.2.2a for what??!! The DK quests in the Trinity server work 1000 times better than Mangos. Death from above, Grand Theft Palomino, Killing the initiates.. even the dragon quest at the end works on Trinity WITHOUT ANY PATCHES!!!! This server is freakin rediculous. Are the Trinity coders really that much better? WTF?!

    well if trinity core is so UBER why did you replaced with MaNGOS , to many crash ?

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use