How to determine if a linux binary file is 32-bit or 64-bit?
A 32-bit kernel (x86) can only run 32-bit code.
A 64-bit kernel (x86_64) can run both 32-bit and 64-bit code.
I'd like to know if a machine can run an executable: in other words, I have a binary file and I have to run it on 32-bit Ubuntu, but I don't know if the binary file is 32-bit executable.
I used the file
command, specifying the executable to be checked and this was the returned result:
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.24,
BuildID[sha1]=0x7329fa71323a6cd64823c2594338682065cd6e07, not stripped
linux elf
add a comment |
A 32-bit kernel (x86) can only run 32-bit code.
A 64-bit kernel (x86_64) can run both 32-bit and 64-bit code.
I'd like to know if a machine can run an executable: in other words, I have a binary file and I have to run it on 32-bit Ubuntu, but I don't know if the binary file is 32-bit executable.
I used the file
command, specifying the executable to be checked and this was the returned result:
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.24,
BuildID[sha1]=0x7329fa71323a6cd64823c2594338682065cd6e07, not stripped
linux elf
add a comment |
A 32-bit kernel (x86) can only run 32-bit code.
A 64-bit kernel (x86_64) can run both 32-bit and 64-bit code.
I'd like to know if a machine can run an executable: in other words, I have a binary file and I have to run it on 32-bit Ubuntu, but I don't know if the binary file is 32-bit executable.
I used the file
command, specifying the executable to be checked and this was the returned result:
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.24,
BuildID[sha1]=0x7329fa71323a6cd64823c2594338682065cd6e07, not stripped
linux elf
A 32-bit kernel (x86) can only run 32-bit code.
A 64-bit kernel (x86_64) can run both 32-bit and 64-bit code.
I'd like to know if a machine can run an executable: in other words, I have a binary file and I have to run it on 32-bit Ubuntu, but I don't know if the binary file is 32-bit executable.
I used the file
command, specifying the executable to be checked and this was the returned result:
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.24,
BuildID[sha1]=0x7329fa71323a6cd64823c2594338682065cd6e07, not stripped
linux elf
linux elf
edited Jul 5 '16 at 23:01
Braiam
4,04731852
4,04731852
asked Aug 2 '14 at 12:16
enzom83enzom83
191116
191116
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
The answer to the question in the title is right there at the beginning of the output:
ELF 64-bit LSB executable, x86-64
ELF is the Executable and Linkable Format, the binary executable file format most commonly used by Linux.
x86-64 is the architecture of the binary, the 64-bit version of the x86 instruction set originally introduced by AMD. For reasons that are beyond me, Microsoft refers to it as "x64", but that's the same thing.
If you need to know the architecture of the kernel itself, you can use uname -mpi
. For example, on my system, that prints:
x86_64 unknown unknown
which means that I am running an x86-64 kernel.
If you're interested in the CPU itself, look at /proc/cpuinfo
for details about the CPU(s) detected by the Linux kernel.
A 32-bit 80x86 executable is identified by file
as, for example:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
which tells us that it's a 32-bit executable using the Intel 80386 instruction set (possibly with extensions).
Note that it isn't quite as simple as 32-bit versus 64-bit architectures. For example, the Linux kernel supports 32-bit architectures like Intel 80386, AVR32, S/390 and Unicore32. On the 64-bit side of things, Linux is usable on PA-RISC, x86-64, Itanium and Alpha, among others. Not all distributions provide binaries for all architectures, however (and I doubt there are any distributions that target all supported CPU architectures equally). So if you want to know whether a given binary will be executable on a given system, you need to consider the architecture, rather than the CPU's native word size.
1
"reasons that are beyond me". I still remember the day I found out that x64 was 64 bits and x86 was 32 bits.
– Paul Draper
Aug 24 '14 at 5:32
1
@PaulDraper The term "x86" has a clear etymology; it dates back to the 80x86 series CPUs from Intel, differentiating them from their predecessors like the 8008 or 8080, and these days most often refers to the 32-bit (IA-32 instruction set) capable variants (80386, 80486, Pentium and newer). These more recent model numbers were often abbreviated by omitting the "80" at the beginning, so (implied 32-bit) x86 matches 386, 486, etc. However, I'm not aware of any 64-bit CPUs with model numbers of a similar structure ending in "64"; certainly neither AMD nor Intel use such a naming scheme today.
– a CVn
Mar 27 '16 at 13:15
Though x64 is a very common term. Random example: microsoft.com/en-us/download/details.aspx?id=42482
– Paul Draper
Mar 27 '16 at 18:52
@PaulDraper It's common now in the Microsoft world, but its etymology remains unclear in a way that that for "x86" does not.
– a CVn
Mar 28 '16 at 8:47
Microsoft refers to x86_64 as AMD64 in their installers
– phuclv
Nov 14 '17 at 1:15
|
show 1 more comment
The 5th byte of a Linux binary executable file (ELF format, see Wikipedia) is 1 for a 32 bit executable, 2 for a 64 bit executable.
To see this for a program named "foo", type at the command line
od -t x1 -t c foo | head -n 2
add a comment |
If you want to avoid the 'head' pipe, you can do
od -An -t x1 -j 4 -N 1 foo
This will print 01 if foo is a 32-bit binary and 02 if it's 64. It may still include some leading spaces - worth knowing if you're doing any automated comparisons on the results.
If found this useful in a basic Ubuntu Docker container where 'file' was not installed.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f791506%2fhow-to-determine-if-a-linux-binary-file-is-32-bit-or-64-bit%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
The answer to the question in the title is right there at the beginning of the output:
ELF 64-bit LSB executable, x86-64
ELF is the Executable and Linkable Format, the binary executable file format most commonly used by Linux.
x86-64 is the architecture of the binary, the 64-bit version of the x86 instruction set originally introduced by AMD. For reasons that are beyond me, Microsoft refers to it as "x64", but that's the same thing.
If you need to know the architecture of the kernel itself, you can use uname -mpi
. For example, on my system, that prints:
x86_64 unknown unknown
which means that I am running an x86-64 kernel.
If you're interested in the CPU itself, look at /proc/cpuinfo
for details about the CPU(s) detected by the Linux kernel.
A 32-bit 80x86 executable is identified by file
as, for example:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
which tells us that it's a 32-bit executable using the Intel 80386 instruction set (possibly with extensions).
Note that it isn't quite as simple as 32-bit versus 64-bit architectures. For example, the Linux kernel supports 32-bit architectures like Intel 80386, AVR32, S/390 and Unicore32. On the 64-bit side of things, Linux is usable on PA-RISC, x86-64, Itanium and Alpha, among others. Not all distributions provide binaries for all architectures, however (and I doubt there are any distributions that target all supported CPU architectures equally). So if you want to know whether a given binary will be executable on a given system, you need to consider the architecture, rather than the CPU's native word size.
1
"reasons that are beyond me". I still remember the day I found out that x64 was 64 bits and x86 was 32 bits.
– Paul Draper
Aug 24 '14 at 5:32
1
@PaulDraper The term "x86" has a clear etymology; it dates back to the 80x86 series CPUs from Intel, differentiating them from their predecessors like the 8008 or 8080, and these days most often refers to the 32-bit (IA-32 instruction set) capable variants (80386, 80486, Pentium and newer). These more recent model numbers were often abbreviated by omitting the "80" at the beginning, so (implied 32-bit) x86 matches 386, 486, etc. However, I'm not aware of any 64-bit CPUs with model numbers of a similar structure ending in "64"; certainly neither AMD nor Intel use such a naming scheme today.
– a CVn
Mar 27 '16 at 13:15
Though x64 is a very common term. Random example: microsoft.com/en-us/download/details.aspx?id=42482
– Paul Draper
Mar 27 '16 at 18:52
@PaulDraper It's common now in the Microsoft world, but its etymology remains unclear in a way that that for "x86" does not.
– a CVn
Mar 28 '16 at 8:47
Microsoft refers to x86_64 as AMD64 in their installers
– phuclv
Nov 14 '17 at 1:15
|
show 1 more comment
The answer to the question in the title is right there at the beginning of the output:
ELF 64-bit LSB executable, x86-64
ELF is the Executable and Linkable Format, the binary executable file format most commonly used by Linux.
x86-64 is the architecture of the binary, the 64-bit version of the x86 instruction set originally introduced by AMD. For reasons that are beyond me, Microsoft refers to it as "x64", but that's the same thing.
If you need to know the architecture of the kernel itself, you can use uname -mpi
. For example, on my system, that prints:
x86_64 unknown unknown
which means that I am running an x86-64 kernel.
If you're interested in the CPU itself, look at /proc/cpuinfo
for details about the CPU(s) detected by the Linux kernel.
A 32-bit 80x86 executable is identified by file
as, for example:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
which tells us that it's a 32-bit executable using the Intel 80386 instruction set (possibly with extensions).
Note that it isn't quite as simple as 32-bit versus 64-bit architectures. For example, the Linux kernel supports 32-bit architectures like Intel 80386, AVR32, S/390 and Unicore32. On the 64-bit side of things, Linux is usable on PA-RISC, x86-64, Itanium and Alpha, among others. Not all distributions provide binaries for all architectures, however (and I doubt there are any distributions that target all supported CPU architectures equally). So if you want to know whether a given binary will be executable on a given system, you need to consider the architecture, rather than the CPU's native word size.
1
"reasons that are beyond me". I still remember the day I found out that x64 was 64 bits and x86 was 32 bits.
– Paul Draper
Aug 24 '14 at 5:32
1
@PaulDraper The term "x86" has a clear etymology; it dates back to the 80x86 series CPUs from Intel, differentiating them from their predecessors like the 8008 or 8080, and these days most often refers to the 32-bit (IA-32 instruction set) capable variants (80386, 80486, Pentium and newer). These more recent model numbers were often abbreviated by omitting the "80" at the beginning, so (implied 32-bit) x86 matches 386, 486, etc. However, I'm not aware of any 64-bit CPUs with model numbers of a similar structure ending in "64"; certainly neither AMD nor Intel use such a naming scheme today.
– a CVn
Mar 27 '16 at 13:15
Though x64 is a very common term. Random example: microsoft.com/en-us/download/details.aspx?id=42482
– Paul Draper
Mar 27 '16 at 18:52
@PaulDraper It's common now in the Microsoft world, but its etymology remains unclear in a way that that for "x86" does not.
– a CVn
Mar 28 '16 at 8:47
Microsoft refers to x86_64 as AMD64 in their installers
– phuclv
Nov 14 '17 at 1:15
|
show 1 more comment
The answer to the question in the title is right there at the beginning of the output:
ELF 64-bit LSB executable, x86-64
ELF is the Executable and Linkable Format, the binary executable file format most commonly used by Linux.
x86-64 is the architecture of the binary, the 64-bit version of the x86 instruction set originally introduced by AMD. For reasons that are beyond me, Microsoft refers to it as "x64", but that's the same thing.
If you need to know the architecture of the kernel itself, you can use uname -mpi
. For example, on my system, that prints:
x86_64 unknown unknown
which means that I am running an x86-64 kernel.
If you're interested in the CPU itself, look at /proc/cpuinfo
for details about the CPU(s) detected by the Linux kernel.
A 32-bit 80x86 executable is identified by file
as, for example:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
which tells us that it's a 32-bit executable using the Intel 80386 instruction set (possibly with extensions).
Note that it isn't quite as simple as 32-bit versus 64-bit architectures. For example, the Linux kernel supports 32-bit architectures like Intel 80386, AVR32, S/390 and Unicore32. On the 64-bit side of things, Linux is usable on PA-RISC, x86-64, Itanium and Alpha, among others. Not all distributions provide binaries for all architectures, however (and I doubt there are any distributions that target all supported CPU architectures equally). So if you want to know whether a given binary will be executable on a given system, you need to consider the architecture, rather than the CPU's native word size.
The answer to the question in the title is right there at the beginning of the output:
ELF 64-bit LSB executable, x86-64
ELF is the Executable and Linkable Format, the binary executable file format most commonly used by Linux.
x86-64 is the architecture of the binary, the 64-bit version of the x86 instruction set originally introduced by AMD. For reasons that are beyond me, Microsoft refers to it as "x64", but that's the same thing.
If you need to know the architecture of the kernel itself, you can use uname -mpi
. For example, on my system, that prints:
x86_64 unknown unknown
which means that I am running an x86-64 kernel.
If you're interested in the CPU itself, look at /proc/cpuinfo
for details about the CPU(s) detected by the Linux kernel.
A 32-bit 80x86 executable is identified by file
as, for example:
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
which tells us that it's a 32-bit executable using the Intel 80386 instruction set (possibly with extensions).
Note that it isn't quite as simple as 32-bit versus 64-bit architectures. For example, the Linux kernel supports 32-bit architectures like Intel 80386, AVR32, S/390 and Unicore32. On the 64-bit side of things, Linux is usable on PA-RISC, x86-64, Itanium and Alpha, among others. Not all distributions provide binaries for all architectures, however (and I doubt there are any distributions that target all supported CPU architectures equally). So if you want to know whether a given binary will be executable on a given system, you need to consider the architecture, rather than the CPU's native word size.
edited Aug 2 '14 at 12:43
answered Aug 2 '14 at 12:31
a CVna CVn
24.5k973120
24.5k973120
1
"reasons that are beyond me". I still remember the day I found out that x64 was 64 bits and x86 was 32 bits.
– Paul Draper
Aug 24 '14 at 5:32
1
@PaulDraper The term "x86" has a clear etymology; it dates back to the 80x86 series CPUs from Intel, differentiating them from their predecessors like the 8008 or 8080, and these days most often refers to the 32-bit (IA-32 instruction set) capable variants (80386, 80486, Pentium and newer). These more recent model numbers were often abbreviated by omitting the "80" at the beginning, so (implied 32-bit) x86 matches 386, 486, etc. However, I'm not aware of any 64-bit CPUs with model numbers of a similar structure ending in "64"; certainly neither AMD nor Intel use such a naming scheme today.
– a CVn
Mar 27 '16 at 13:15
Though x64 is a very common term. Random example: microsoft.com/en-us/download/details.aspx?id=42482
– Paul Draper
Mar 27 '16 at 18:52
@PaulDraper It's common now in the Microsoft world, but its etymology remains unclear in a way that that for "x86" does not.
– a CVn
Mar 28 '16 at 8:47
Microsoft refers to x86_64 as AMD64 in their installers
– phuclv
Nov 14 '17 at 1:15
|
show 1 more comment
1
"reasons that are beyond me". I still remember the day I found out that x64 was 64 bits and x86 was 32 bits.
– Paul Draper
Aug 24 '14 at 5:32
1
@PaulDraper The term "x86" has a clear etymology; it dates back to the 80x86 series CPUs from Intel, differentiating them from their predecessors like the 8008 or 8080, and these days most often refers to the 32-bit (IA-32 instruction set) capable variants (80386, 80486, Pentium and newer). These more recent model numbers were often abbreviated by omitting the "80" at the beginning, so (implied 32-bit) x86 matches 386, 486, etc. However, I'm not aware of any 64-bit CPUs with model numbers of a similar structure ending in "64"; certainly neither AMD nor Intel use such a naming scheme today.
– a CVn
Mar 27 '16 at 13:15
Though x64 is a very common term. Random example: microsoft.com/en-us/download/details.aspx?id=42482
– Paul Draper
Mar 27 '16 at 18:52
@PaulDraper It's common now in the Microsoft world, but its etymology remains unclear in a way that that for "x86" does not.
– a CVn
Mar 28 '16 at 8:47
Microsoft refers to x86_64 as AMD64 in their installers
– phuclv
Nov 14 '17 at 1:15
1
1
"reasons that are beyond me". I still remember the day I found out that x64 was 64 bits and x86 was 32 bits.
– Paul Draper
Aug 24 '14 at 5:32
"reasons that are beyond me". I still remember the day I found out that x64 was 64 bits and x86 was 32 bits.
– Paul Draper
Aug 24 '14 at 5:32
1
1
@PaulDraper The term "x86" has a clear etymology; it dates back to the 80x86 series CPUs from Intel, differentiating them from their predecessors like the 8008 or 8080, and these days most often refers to the 32-bit (IA-32 instruction set) capable variants (80386, 80486, Pentium and newer). These more recent model numbers were often abbreviated by omitting the "80" at the beginning, so (implied 32-bit) x86 matches 386, 486, etc. However, I'm not aware of any 64-bit CPUs with model numbers of a similar structure ending in "64"; certainly neither AMD nor Intel use such a naming scheme today.
– a CVn
Mar 27 '16 at 13:15
@PaulDraper The term "x86" has a clear etymology; it dates back to the 80x86 series CPUs from Intel, differentiating them from their predecessors like the 8008 or 8080, and these days most often refers to the 32-bit (IA-32 instruction set) capable variants (80386, 80486, Pentium and newer). These more recent model numbers were often abbreviated by omitting the "80" at the beginning, so (implied 32-bit) x86 matches 386, 486, etc. However, I'm not aware of any 64-bit CPUs with model numbers of a similar structure ending in "64"; certainly neither AMD nor Intel use such a naming scheme today.
– a CVn
Mar 27 '16 at 13:15
Though x64 is a very common term. Random example: microsoft.com/en-us/download/details.aspx?id=42482
– Paul Draper
Mar 27 '16 at 18:52
Though x64 is a very common term. Random example: microsoft.com/en-us/download/details.aspx?id=42482
– Paul Draper
Mar 27 '16 at 18:52
@PaulDraper It's common now in the Microsoft world, but its etymology remains unclear in a way that that for "x86" does not.
– a CVn
Mar 28 '16 at 8:47
@PaulDraper It's common now in the Microsoft world, but its etymology remains unclear in a way that that for "x86" does not.
– a CVn
Mar 28 '16 at 8:47
Microsoft refers to x86_64 as AMD64 in their installers
– phuclv
Nov 14 '17 at 1:15
Microsoft refers to x86_64 as AMD64 in their installers
– phuclv
Nov 14 '17 at 1:15
|
show 1 more comment
The 5th byte of a Linux binary executable file (ELF format, see Wikipedia) is 1 for a 32 bit executable, 2 for a 64 bit executable.
To see this for a program named "foo", type at the command line
od -t x1 -t c foo | head -n 2
add a comment |
The 5th byte of a Linux binary executable file (ELF format, see Wikipedia) is 1 for a 32 bit executable, 2 for a 64 bit executable.
To see this for a program named "foo", type at the command line
od -t x1 -t c foo | head -n 2
add a comment |
The 5th byte of a Linux binary executable file (ELF format, see Wikipedia) is 1 for a 32 bit executable, 2 for a 64 bit executable.
To see this for a program named "foo", type at the command line
od -t x1 -t c foo | head -n 2
The 5th byte of a Linux binary executable file (ELF format, see Wikipedia) is 1 for a 32 bit executable, 2 for a 64 bit executable.
To see this for a program named "foo", type at the command line
od -t x1 -t c foo | head -n 2
edited Jan 14 at 14:23
Alexey Ivanov
3,65731748
3,65731748
answered Nov 13 '17 at 21:54
Chris MapleChris Maple
491
491
add a comment |
add a comment |
If you want to avoid the 'head' pipe, you can do
od -An -t x1 -j 4 -N 1 foo
This will print 01 if foo is a 32-bit binary and 02 if it's 64. It may still include some leading spaces - worth knowing if you're doing any automated comparisons on the results.
If found this useful in a basic Ubuntu Docker container where 'file' was not installed.
add a comment |
If you want to avoid the 'head' pipe, you can do
od -An -t x1 -j 4 -N 1 foo
This will print 01 if foo is a 32-bit binary and 02 if it's 64. It may still include some leading spaces - worth knowing if you're doing any automated comparisons on the results.
If found this useful in a basic Ubuntu Docker container where 'file' was not installed.
add a comment |
If you want to avoid the 'head' pipe, you can do
od -An -t x1 -j 4 -N 1 foo
This will print 01 if foo is a 32-bit binary and 02 if it's 64. It may still include some leading spaces - worth knowing if you're doing any automated comparisons on the results.
If found this useful in a basic Ubuntu Docker container where 'file' was not installed.
If you want to avoid the 'head' pipe, you can do
od -An -t x1 -j 4 -N 1 foo
This will print 01 if foo is a 32-bit binary and 02 if it's 64. It may still include some leading spaces - worth knowing if you're doing any automated comparisons on the results.
If found this useful in a basic Ubuntu Docker container where 'file' was not installed.
answered Oct 25 '18 at 9:10
Quentin Stafford-FraserQuentin Stafford-Fraser
1112
1112
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f791506%2fhow-to-determine-if-a-linux-binary-file-is-32-bit-or-64-bit%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown