Jump to content
fzfq3m

Errors compiling original/unpatched DSDT Table

18 posts in this topic

Recommended Posts

Hello boys and girls... sorry for bother you

This is my first Hackingtosh (Pavilion DV4-2155dx)... I'm trying to install mountain lion 10.8.4 on this laptop from a USB stick (Clover V2 bootloader), but the installer throws an error about AppleUSBEHCI unable to get filterInterruptEventSource... to solve the problem i've tried couple of things: from booting in safe mode, deleting AppleHPET.kext, and some toher things but without any luck.

According to this thread the problem might be an IRQ conflict between USB ports and HPET device, so I need to patch my DSDT table... the problem is that I'm not able to compile my dsdt.aml even if I try to compile my original dsdt.dsl... I also tried to extract my dsdt table with different tools (AIDA, R&W everything) and even using a linux live cd... but no matter what method I use the errors are consistent when I try to compile the table using DSDT Editor, Intel ASL or Microsoft ASL... I also tried to force the creation passing the parameter "-f" to iasl.exe but no luck either.

I was wondering if somebody can have a looks at the errors and my dsdt table I'm give me a clue of what can be wrong

BTW... I also found that Clover V2 bootloader can inject custom patches on the fly but I was unable to find further docs about it, the "data" field seens to be an encoded text (might be from a diff patch?) but I'm not sure.

Thanks in advance and sorry again for taking your time

DSDT.txt

errors.txt

Share this post


Link to post
Share on other sites
Advertisement

Many thanks for compiling the aml for me, I really appreciate it, but I'm now facing another issue (something about BootCacheControl not being able to find Bootcache.playlist)... so I still need to learn how to fix errors

 

I'm using a Diff checker to figure out how you fixed my aml, seens like some of the errors just need the removal of leading '_' characters, others just need to fix its format (like converting from 0x0000FD77 to 0xFD77)...

 

Now, this is embarrasing because I've seen at least one of the changes you made being suggested in a tutorial about how to fix dsdt compilation errors... I will use the provided aml to try to learn how to fix mine

 

Thanks a lot

Share this post


Link to post
Share on other sites

Hi,

 

 

 

 (something about BootCacheControl not being able to find Bootcache.playlist)

This is not an error, normal on hackintosh :) It does not reduce performance or anything.

Share this post


Link to post
Share on other sites

Hi,

 

 

 

This is not an error, normal on hackintosh :) It does not reduce performance or anything.

Then is AppleHDA hanging my installation?

post-1193434-0-58555100-1375466167_thumb.jpg

Share this post


Link to post
Share on other sites

Hi,

 

Copy FakeSMC.kext to the Extra folder, boot with -f, this would be my guess looking at the screen. 

Any other graphics than the Intel HD? 

Share this post


Link to post
Share on other sites

May be this laptop is too old? I did a test with my girlfriend's laptop (Presario CQ43) and was able to extract, patch DTGP, IRQ and compile without errors... applying the HPET caused an error though (Object not found ATT3 on the return value of _CRS in the HPET section)


Hi,

 

Copy FakeSMC.kext to the Extra folder, boot with -f, this would be my guess looking at the screen. 

Any other graphics than the Intel HD? 

FakeSMC is in the folder /EFI/CLOVER/kexts/10.8

Should I create Extra folder as well?

AFAIK my DV4 does not have a secondary video card

Share this post


Link to post
Share on other sites

Change _CRS to BUF0. 

 

Ah yes, Clover, the kext injection does not work that well, at least not for me, place the fakesmc in /system/library/extensions.

If you can not boot atm with -x, boot with the usb, and start the system with -f.

Then install the kext with Kext Drop or some similar app.

Do it for all the kexts you try to inject with Clover. 

 

Graphics would have been my second guess, that is ruled out now :)

Share this post


Link to post
Share on other sites

Change _CRS to BUF0. 

 

Ah yes, Clover, the kext injection does not work that well, at least not for me, place the fakesmc in /system/library/extensions.

If you can not boot atm with -x, boot with the usb, and start the system with -f.

Then install the kext with Kext Drop or some similar app.

Do it for all the kexts you try to inject with Clover. 

 

Graphics would have been my second guess, that is ruled out now :)

Thanks for your time...

 

I moved FakeSMC and NullCPUPowerManagement to /System/Libraries/Extensions in the root of my USB, tried using -x and -f bootargs but still the installer seens to hang... so I can't not boot from USB... the weird thing is that if I remove the -v to go graphical I can see the small thing spinning in the lower-middle section of the screen, the keyboard does nothing (can't enable capslock or numlock) but the touchpad and wireless toggle buttons are working...

 

I left the computer alone for like 20min to see if the installer continues but no change, the small thing just keeps spinning.

 

I can see two errors in verbose mode

 

1.- ACPI_SMC_PlatformPlugin::Start - waitForService(resourceMatching(AppleCPUPowerManagement) time out

2._ SuperIODevice: [Fatal] found unsupported ITE sequence ID=0xffff, Winbond sequence ID=0xffff (this appears one time before the installer begins to initialize filesystems, and then two times after IOBluetoothHCIController started)

 

Since I moved the kexts to /S/L/E i will look for rebuilding the cache on the USB drive

 

I much appreciate your help... thanks

Share this post


Link to post
Share on other sites

Hi,

 

Well, the spinning ball, won't help, it's a -v error with a nice background :P

 

Let us know how the rebuilding worked out. 

Alternatively you can use Pandora's box to create an installer. 

 

Missed the part that you are trying to install, sorry about that, thought this was an installed system.

Share this post


Link to post
Share on other sites

I've tried to rebuild the kernelcache... man i don't know what the .... I did bacause my virtual machine got mess up big and got frozen, then it refused to boot. Thanks got I was just a VM... anyway... since I can not get a 'as vanilla as possible' OS X installation a gave Pandora's Box a try... but

.....

 

Graphics would have been my second guess, that is ruled out now :)

Turns out it has something to do with the graphics :( while I was dowloading pandora i also was looking for info about kernelcache rebuild and found this tutorial

the troubleshooting Install section of that guide suggest that if the installer get stopped at boot or boot to a black screen then it's recommended to delete the following kext from /S/L/E

 

ATI = ATI*
Intel = AppleIntelHD* AppleIntelSNB*
nVidia = GeForce* NVDA*

 

Since my DV4 doesn't have a dedicated graphic card I just moved all the AppleIntelHD* and  AppleIntelSNB* to a backup folder, then tried to boot from USB and... Voila!!! Installer came alive... even was able to fire disk utility...

 

Now I need to research what's wrong with my Graphics... may be post-install link suggested by arthur-pt has something about it, the same site I mentioned above also has another troubleshooting section dedicated to graphics...

 

I'll keep you guys informed

 

EDIT: look what I found on this NICE forum :rolleyes:

Share this post


Link to post
Share on other sites

Guys, would be possible to install ML without the AppleIntelHD* kexts?

Obviously the installer have some sort of generic framebuffer because without those kexts I can boot into the install system, I'm wondering if it would be possible to install OS and fix the video issue later...

 

Kind regards

 

Forget about that, I'm starting to get something, My DV4 needs de Natit kext... right know I'm trying to find the right Framebuffer kext... I'm able to boot the installer but the screen is ?out of sync?

 

Regards

 

Tried varous Framebuffer from the guide mentioned above and my screen get scrambled every time, Good news.... I can use the original kexts that came with mountain lion installer... I just needed to add Natit kext in order to get the installer to boot

 

So far I need to inject this

DSDT.aml provided by Arthur-pt

Lattest FakeSMC

NullCPUPowerManagement

Natit.kext

 

Now, according to the guide natit.kext can be avoided by patching my DSDT... learning to do this is in my TODO list though

Now that my installer is working I will proceed to install ML

 

Regards

 

 

 

Share this post


Link to post
Share on other sites

Got it  :thumbsup_anim:

I'm writing this from my new mountain lion installation.  B)

I still need to enable QE/CI, sound, and who know what more... my DV4 have a HP un2420 WWLAN (Qualcomm Gobi 2000) which wasn't recognized. Fortunately for my I also got a Huawei E1756 Dongle which happens to have software for OS X  :)

 

Oh well, So my journey begins... if all goes as expected I will be buying a Macbook by the end of the year, and hopefully get rid of those OS that try to force me using a tablet-like UI in my DESKTOP  :rolleyes:

 

Arthur-PT: Thanks for patching my DSDT... without your help I wouldn't be this far. I really appreciate

Lejenk: Thanks for helping me to find the culprit with my install, you was very helpful too.

 

Kind Regards

Share this post


Link to post
Share on other sites

Hi,

 

Great job  on the findings.

To get the full potential of you Intel Graphics, try injecting the aapl,kg-platform-id. 

To do this, type the following boot flag in Chameleon: 

HD4k-ig = 4

If 4 does not work, try 3. If 1 of them works, it can be added to the DSDT.

 

Can you check in Windows or Linux which Intel Graphics you have, can not find any specifics on google.

Share this post


Link to post
Share on other sites

Hi,

 

Great job  on the findings.

To get the full potential of you Intel Graphics, try injecting the aapl,kg-platform-id. 

To do this, type the following boot flag in Chameleon: 

HD4k-ig = 4

If 4 does not work, try 3. If 1 of them works, it can be added to the DSDT.

 

Can you check in Windows or Linux which Intel Graphics you have, can not find any specifics on google.

Thanks for the suggestion... unfortunately I don't know how to inject that... yet  :blush:

But Hey... I got my Intel HD Graphics (8086:0046 Rev 0x0002) working with the help of this tutorial , QE/CI fully working  :thumbsup_anim:

 

after enabling QE/CI laptop is becoming hot even when processor is idle (average 56oC) but I've haven't patched my AppleIntelCPUPowerManagement yet, so I hope this improves when I patch it.

 

Next I tried to enable Wired and Wireless adapters, but have failed miserably... so far I managed to get wireless partially working with the help of Clover's DSDT Fix, my Atheros AR9285 (168c:002b) is recognized by the OS and I can connect to wifi networks but the connection is really unstable, in fact a ping test reveals that there's around 80% of packet loss... 

 

The wired adapter is a Realtek RTL8101E/RTL8102E(10ec:8136) which I've tried to enable using the RealtekR1000L by Slice... the card got recognized but the link never came up, OS X keeps saying that the network cable is unplugged and after a while I did mess up something and the kext won't load at startup...

 

BTW, I can't get Clover to boot directly via UEFI... I always have to use legacy method (Bios MBR). AFAIK my DV4 has UEFI bios (InsydeH20 ver3.5), OS X installer does create the EFI partition and I remember seeing and EFI folder when I was using Windows... but in order to boot I need to install boot0af in MBR... I'm doing some research to confirm if my laptop is UEFI based and so far it seens like it is, but it might be locked to BIOS boot instead of UEFI boot... in fact my bios is very simplistic and almost empty... anyway... I'm thinking to fallback to Chameleon since I don't see the point of using UEFI bootloader with a legacy bios laptop.

 

hat do you think, should I keep using Clover to fallback to Chameleon?

 

Now, returning to my initial issue while compiling a non modified DSDT table I did a thoroughly research and thanks to this thread and this thread I managed to bring my error count while compiling my DSDT from 201+ errors down to only 14 just by commenting this block

4121   //                 If (CondRefOf (FPED))
4122   //                 {
4123   //                     FPED ()
4124   //                 }

Apparently this block is missplaced and causing a massive syntax error, but since I've no idea what it does or were it belongs to I just commented it for now... 

 

That's the status of my hackingtosh... any help you can provide is more than welcomed

 

EDIT: I managed to compile my DSDT but I'm stuck trying to inject some properties into the GFX0 device (as per tutorial above)... the device already have a _DSM method declared, so far I'm trying to figure out if it would be possible to get the video card fully working because when laptop resume after being suspended the brightness gets set to lowest value and I can see a thing...

 

Man this ain't gonna be easy

 

Kind Regards

Edited by fzfq3m

Share this post


Link to post
Share on other sites

Update:

After looking up for info in the ACPI Spec I decided to comment out my current _DSM method for the GFX0 and proceed adding DSDT patching to get Backlight + Brightness control in my DV4... I decided to do this because my current _DSM has quite a few IF/ELSE block for checking Arg0 against some UUIDs, to be honest I'm not quite sure what is the full UUID of my Graphic card but as far I know it should contain the manufacturer ID (8086) and Device ID(0046)... and since none of the UUIDs match this description the method just returns 0x80000002

 

Here is the method in case you wanna have a look at it

                        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */   0x00, 0xA4, 0x04, 0x40, 0x7D, 0x91, 0xF2, 0x4C,
                                        /* 0008 */   0xB8, 0x9C, 0x79, 0xB6, 0x2F, 0xD5, 0x56, 0x65
                                    }))
                            {
                                If (LNotEqual (Arg1, 0x0300))
                                {
                                    Return (0x80000002)
                                }
                                Name (_T_0, Zero)  // _T_x: Emitted by ASL Compiler
                                Store (Arg2, _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Return (0x0001001F)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x04))
                                    {
                                        Return (0x03EF0000)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x05))
                                        {
                                            Return (0x00F00020)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x06))
                                            {
                                                Return (Package (0x0C)
                                                {
                                                    0x80000400, 
                                                    0x2C, 
                                                    0x80000100, 
                                                    0x2C, 
                                                    0x80007330, 
                                                    0x2C, 
                                                    0x80000400, 
                                                    0x80000100, 
                                                    0x2C, 
                                                    0x80000400, 
                                                    0x80007330, 
                                                    0x2C
                                                })
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x10))
                                                {
                                                    Return (GMXM (0x03, Zero, Zero))
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x12))
                                                    {
                                                        Return (Package (0x04)
                                                        {
                                                            0xD0, 
                                                            Buffer (0x10)
                                                            {
                                                                /* 0000 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                                /* 0008 */   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                                            }, 
                                                            0xDF, 
                                                            Buffer (0x10)
                                                            {
                                                                /* 0000 */   0xB6, 0x6F, 0x0D, 0x36, 0x4E, 0x1D, 0xA6, 0x4F,
                                                                /* 0008 */   0xB8, 0x48, 0x1B, 0xE3, 0x3D, 0xD8, 0xEC, 0x7B
                                                            }
                                                        })
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x18))
                                                        {
                                                            Return (0x30)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x19))
                                                            {
                                                                Return (0x80000002)
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */   0xD3, 0x73, 0xD8, 0x7E, 0xD0, 0xC2, 0x4F, 0x4E,
                                        /* 0008 */   0xA8, 0x54, 0x0F, 0x13, 0x17, 0xB0, 0x1C, 0x2C
                                    }))
                            {
                                Name (_T_1, Zero)  // _T_x: Emitted by ASL Compiler
                                Store (Arg2, _T_1)
                                If (LEqual (_T_1, Zero))
                                {
                                    Return (0x03)
                                }
                                Else
                                {
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (MXIF)
                                    }
                                }
                            }
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */   0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D,
                                        /* 0008 */   0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4
                                    }))
                            {
                                If (LNotEqual (Arg1, 0x0102))
                                {
                                    Return (0x80000002)
                                }
                                If (LEqual (Arg2, Zero))
                                {
                                    Return (Buffer (0x04)
                                    {
                                         0x7F, 0x00, 0x00, 0x00
                                    })
                                }
                                If (LEqual (Arg2, One))
                                {
                                    Name (_T_2, Zero)  // _T_x: Emitted by ASL Compiler
                                    Store (^^P0P2.VGA.SSID, _T_2)
                                    If (LEqual (_T_2, 0x1414))
                                    {
                                        Return (0x0002F000)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_2, 0x1409))
                                        {
                                            Return (0x030003FF)
                                        }
                                        Else
                                        {
                                            Return (0x01FE0000)
                                        }
                                    }
                                }
                                If (LEqual (Arg2, 0x02))
                                {
                                    CreateByteField (Arg3, Zero, DSM0)
                                    CreateByteField (Arg3, One, DSM1)
                                    If (And (DSM1, One))
                                    {
                                        And (DSM0, 0xE0, Local0)
                                        Store (Local0, BDMK)
                                    }
                                    If (And (DSM0, 0x10))
                                    {
                                        And (DSM0, 0x0F, Local0)
                                        Notify (GFX0, 0xD9)
                                        CMSW (0x75, Local0)
                                        Store (Local0, ^^P0P2.VGA.TMPS)
                                        If (LEqual (GP36, Zero))
                                        {
                                            Store (One, GP53)
                                        }
                                        Else
                                        {
                                            If (LEqual (Local0, 0x02))
                                            {
                                                Store (Zero, GP53)
                                            }
                                            Else
                                            {
                                                Store (One, GP53)
                                            }
                                        }
                                        If (LEqual (Local0, One))
                                        {
                                            Store (One, ^^LPCB.EC0.DSPM)
                                            Store (Zero, ^^LPCB.EC0.SKTA)
                                            Store (Zero, ^^LPCB.EC0.SKTB)
                                        }
                                        Else
                                        {
                                            Store (Zero, ^^LPCB.EC0.DSPM)
                                        }
                                        If (LEqual (^^^WMID.BAEF, Zero))
                                        {
                                            If (LEqual (^^P0P2.VGA.BKEY, One))
                                            {
                                                If (LEqual (Local0, One))
                                                {
                                                    Store (One, ^^LPCB.EC0.BPWN)
                                                }
                                                Else
                                                {
                                                    Store (Zero, ^^LPCB.EC0.BPWN)
                                                }
                                            }
                                        }
                                        Store (Zero, ^^P0P2.VGA.BKEY)
                                        Return (Local0)
                                    }
                                    Else
                                    {
                                        Store (Zero, Local0)
                                        If (LEqual (^^P0P2.VGA.BKEY, One))
                                        {
                                            Store (CMSR (0x75), Local0)
                                            Increment (Local0)
                                            If (LGreater (Local0, 0x02))
                                            {
                                                Store (One, Local0)
                                            }
                                        }
                                        If (LEqual (^^P0P2.VGA.BKEY, 0x99))
                                        {
                                            Store (CMSR (0x75), Local0)
                                            If (LEqual (Local0, One))
                                            {
                                                Store (One, GP53)
                                            }
                                            Else
                                            {
                                                Store (Zero, GP53)
                                            }
                                        }
                                        Store (Zero, ^^P0P2.VGA.FKEY)
                                        Return (Local0)
                                    }
                                }
                                If (LEqual (Arg2, 0x03))
                                {
                                    CreateByteField (Arg3, Zero, PWF0)
                                    CreateByteField (Arg3, One, PWF1)
                                    And (PWF0, 0x03, Local0)
                                    Name (_T_3, Zero)  // _T_x: Emitted by ASL Compiler
                                    Store (Local0, _T_3)
                                    If (LEqual (_T_3, Zero))
                                    {
                                        Return (GP36)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_3, One))
                                        {
                                            Store (0x1E, P80H)
                                            ^^P0P2.VGA._ON ()
                                            Store (0x1F, P80H)
                                            Return (GP36)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_3, 0x02))
                                            {
                                                Store (0x0E, P80H)
                                                ^^P0P2.VGA._OFF ()
                                                Store (0x0F, P80H)
                                                Return (GP36)
                                            }
                                        }
                                    }
                                }
                                If (LEqual (Arg2, 0x04))
                                {
                                    Store (0x2E, P80H)
                                    Return (0x00012000)
                                }
                                If (LEqual (Arg2, 0x05))
                                {
                                    If (And (DerefOf (Index (Arg3, 0x03)), One))
                                    {
                                        Store (DerefOf (Index (Arg3, One)), Local0)
                                        ShiftRight (Local0, 0x04, Local0)
                                        Store (DerefOf (Index (Arg3, 0x02)), Local1)
                                        ShiftLeft (Local1, 0x04, Local1)
                                        Or (Local0, Local1, Local0)
                                        Store (DerefOf (Index (Arg3, Zero)), Local2)
                                        Store (DerefOf (Index (Arg3, One)), Local1)
                                        And (Local1, 0x0F, Local1)
                                        ShiftLeft (Local1, 0x04, Local1)
                                        Or (Local2, Local1, Local2)
                                        Store (GATD (Local2, Local0), Local1)
                                        ShiftLeft (Local1, 0x08, Local1)
                                        Store (0x00F00021, Local3)
                                        Or (Local3, Local1, Local3)
                                        Return (Local3)
                                    }
                                }
                                If (LEqual (Arg2, 0x06))
                                {
                                    Return (Package (0x0C)
                                    {
                                        0x80000400, 
                                        0x2C, 
                                        0x80000100, 
                                        0x2C, 
                                        0x80007330, 
                                        0x2C, 
                                        0x80000400, 
                                        0x80000100, 
                                        0x2C, 
                                        0x80000400, 
                                        0x80007330, 
                                        0x2C
                                    })
                                }
                                If (LEqual (Arg2, 0x10))
                                {
                                    Return (GMXM (0x03, Zero, Zero))
                                }
                                If (LEqual (Arg2, 0x18))
                                {
                                    Return (0x30)
                                }
                                Return (0x80000002)
                            }
                            Return (0x80000002)
                        }

Right know I got brightness and backlight control control working as expected but I'm trying to get power management to work... seens like speedstep is working but the laptop wakes up by itself just after entering sleep mode. I got the following error in the console

 

 

8/7/13 8:23:36.000 PM kernel[0]: Wake reason: GLAN EHC2 EHC1
8/7/13 8:23:36.000 PM kernel[0]: RTC: PowerByCalendarDate setting ignored
8/7/13 8:23:36.000 PM kernel[0]: Graphics suppressed 155 ms
8/7/13 8:23:36.000 PM kernel[0]: The USB device HubDevice (Port 1 of Hub at 0x1a000000) may have caused a wake by issuing a remote wakeup (2)
8/7/13 8:23:36.000 PM kernel[0]: The USB device HubDevice (Port 1 of Hub at 0x1d000000) may have caused a wake by issuing a remote wakeup (2)

I will start over with a fresh install of OSX, that should help me to test my patched DSDT with the installer and give a clean (more or less) environment to keep working in my Hackingtosh

 

So far I'm loving OSX's GUI

Regards

Share this post


Link to post
Share on other sites

I wasn't able to use the RealtekR1000 by slice or Realtek RTL81xx by ln2mac with or without DSDT patching... the closed I've got was using RealtekR1000 kext with patched DSDT... card get recognized but link negotiation fails to automatically set link speed and even if I set the link speed manually the card won-t get IP from DHCP server.

 

At the end i decided to try Realtek's official driver for Mac and so far is working like a charm... 

 

Regards

Share this post


Link to post
Share on other sites

Got sound partially working (Speakers and both Front Headphones working, Internal Mic and Front jack not working) by patching my AppleHDA kext according to one of the guides suggested by Arthur-pt (Thanks dude)... Now, to be honest when I reached the part were layout12.xml and platforms.xml needs to be edited accordly to the inputs/ouputs of my code I got a brain melt and couldn't continue forward... fortunately for me this guy has same exact code as me and he managed to get its sound fully worked... I just replaced my layout12.xml and platforms.xml with the ones that are inside the kext he shared and voila... outputs are working.. Thanks dude... now I just need to figure out how to fix my microphone

 

Any help will be appreciated

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×