Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --> sudo docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:11.2 gcc -o myapp main.c -gdwarf-5
- └─❯ file myapp
- myapp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, with debug_info, not stripped
- └─❯ objdump -W myapp
- myapp: file format elf64-x86-64
- Contents of the .eh_frame section:
- 00000000 0000000000000014 00000000 CIE
- Version: 1
- Augmentation: "zR"
- Code alignment factor: 1
- Data alignment factor: -8
- Return address column: 16
- Augmentation data: 1b
- DW_CFA_def_cfa: r7 (rsp) ofs 8
- DW_CFA_offset: r16 (rip) at cfa-8
- DW_CFA_undefined: r16 (rip)
- 00000018 0000000000000010 0000001c FDE cie=00000000 pc=0000000000401040..000000000040106b
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- 0000002c 0000000000000014 00000000 CIE
- Version: 1
- Augmentation: "zR"
- Code alignment factor: 1
- Data alignment factor: -8
- Return address column: 16
- Augmentation data: 1b
- DW_CFA_def_cfa: r7 (rsp) ofs 8
- DW_CFA_offset: r16 (rip) at cfa-8
- DW_CFA_nop
- DW_CFA_nop
- 00000044 0000000000000010 0000001c FDE cie=0000002c pc=0000000000401070..0000000000401071
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- 00000058 0000000000000024 00000030 FDE cie=0000002c pc=0000000000401020..0000000000401040
- DW_CFA_def_cfa_offset: 16
- DW_CFA_advance_loc: 6 to 0000000000401026
- DW_CFA_def_cfa_offset: 24
- DW_CFA_advance_loc: 10 to 0000000000401030
- DW_CFA_def_cfa_expression (DW_OP_breg7 (rsp): 8; DW_OP_breg16 (rip): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit11; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus)
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- 00000080 000000000000001c 00000058 FDE cie=0000002c pc=0000000000401126..00000000004011d7
- DW_CFA_advance_loc: 1 to 0000000000401127
- DW_CFA_def_cfa_offset: 16
- DW_CFA_offset: r6 (rbp) at cfa-16
- DW_CFA_advance_loc: 3 to 000000000040112a
- DW_CFA_def_cfa_register: r6 (rbp)
- DW_CFA_advance_loc1: 172 to 00000000004011d6
- DW_CFA_def_cfa: r7 (rsp) ofs 8
- DW_CFA_nop
- DW_CFA_nop
- 000000a0 0000000000000044 00000078 FDE cie=0000002c pc=00000000004011e0..000000000040123d
- DW_CFA_advance_loc: 2 to 00000000004011e2
- DW_CFA_def_cfa_offset: 16
- DW_CFA_offset: r15 (r15) at cfa-16
- DW_CFA_advance_loc: 9 to 00000000004011eb
- DW_CFA_def_cfa_offset: 24
- DW_CFA_offset: r14 (r14) at cfa-24
- DW_CFA_advance_loc: 5 to 00000000004011f0
- DW_CFA_def_cfa_offset: 32
- DW_CFA_offset: r13 (r13) at cfa-32
- DW_CFA_advance_loc: 5 to 00000000004011f5
- DW_CFA_def_cfa_offset: 40
- DW_CFA_offset: r12 (r12) at cfa-40
- DW_CFA_advance_loc: 4 to 00000000004011f9
- DW_CFA_def_cfa_offset: 48
- DW_CFA_offset: r6 (rbp) at cfa-48
- DW_CFA_advance_loc: 8 to 0000000000401201
- DW_CFA_def_cfa_offset: 56
- DW_CFA_offset: r3 (rbx) at cfa-56
- DW_CFA_advance_loc: 7 to 0000000000401208
- DW_CFA_def_cfa_offset: 64
- DW_CFA_advance_loc: 42 to 0000000000401232
- DW_CFA_def_cfa_offset: 56
- DW_CFA_advance_loc: 1 to 0000000000401233
- DW_CFA_def_cfa_offset: 48
- DW_CFA_advance_loc: 1 to 0000000000401234
- DW_CFA_def_cfa_offset: 40
- DW_CFA_advance_loc: 2 to 0000000000401236
- DW_CFA_def_cfa_offset: 32
- DW_CFA_advance_loc: 2 to 0000000000401238
- DW_CFA_def_cfa_offset: 24
- DW_CFA_advance_loc: 2 to 000000000040123a
- DW_CFA_def_cfa_offset: 16
- DW_CFA_advance_loc: 2 to 000000000040123c
- DW_CFA_def_cfa_offset: 8
- DW_CFA_nop
- 000000e8 0000000000000010 000000c0 FDE cie=0000002c pc=0000000000401240..0000000000401241
- DW_CFA_nop
- DW_CFA_nop
- DW_CFA_nop
- 000000fc ZERO terminator
- Contents of the .debug_aranges section:
- Length: 44
- Version: 2
- Offset into .debug_info: 0x0
- Pointer Size: 8
- Segment Size: 0
- Address Length
- 0000000000401126 00000000000000b1
- 0000000000000000 0000000000000000
- Contents of the .debug_info section:
- Compilation Unit @ offset 0x0:
- Length: 0x13b (32-bit)
- Version: 5
- Unit Type: DW_UT_compile (1)
- Abbrev Offset: 0x0
- Pointer Size: 8
- <0><c>: Abbrev Number: 6 (DW_TAG_compile_unit)
- <d> DW_AT_producer : (indirect string, offset: 0x38): GNU C17 11.2.0 -mtune=generic -march=x86-64 -gdwarf-5
- <11> DW_AT_language : 29 (C11)
- <12> DW_AT_name : (indirect line string, offset: 0xf): main.c
- <16> DW_AT_comp_dir : (indirect line string, offset: 0x0): /usr/src/myapp
- <1a> DW_AT_low_pc : 0x401126
- <22> DW_AT_high_pc : 0xb1
- <2a> DW_AT_stmt_list : 0x0
- <1><2e>: Abbrev Number: 1 (DW_TAG_base_type)
- <2f> DW_AT_byte_size : 8
- <30> DW_AT_encoding : 7 (unsigned)
- <31> DW_AT_name : (indirect string, offset: 0x18): long unsigned int
- <1><35>: Abbrev Number: 1 (DW_TAG_base_type)
- <36> DW_AT_byte_size : 4
- <37> DW_AT_encoding : 7 (unsigned)
- <38> DW_AT_name : (indirect string, offset: 0x1d): unsigned int
- <1><3c>: Abbrev Number: 1 (DW_TAG_base_type)
- <3d> DW_AT_byte_size : 1
- <3e> DW_AT_encoding : 8 (unsigned char)
- <3f> DW_AT_name : (indirect string, offset: 0x2a): unsigned char
- <1><43>: Abbrev Number: 1 (DW_TAG_base_type)
- <44> DW_AT_byte_size : 2
- <45> DW_AT_encoding : 7 (unsigned)
- <46> DW_AT_name : (indirect string, offset: 0x73): short unsigned int
- <1><4a>: Abbrev Number: 1 (DW_TAG_base_type)
- <4b> DW_AT_byte_size : 1
- <4c> DW_AT_encoding : 6 (signed char)
- <4d> DW_AT_name : (indirect string, offset: 0x2c): signed char
- <1><51>: Abbrev Number: 1 (DW_TAG_base_type)
- <52> DW_AT_byte_size : 2
- <53> DW_AT_encoding : 5 (signed)
- <54> DW_AT_name : (indirect string, offset: 0x9e): short int
- <1><58>: Abbrev Number: 7 (DW_TAG_base_type)
- <59> DW_AT_byte_size : 4
- <5a> DW_AT_encoding : 5 (signed)
- <5b> DW_AT_name : int
- <1><5f>: Abbrev Number: 1 (DW_TAG_base_type)
- <60> DW_AT_byte_size : 8
- <61> DW_AT_encoding : 5 (signed)
- <62> DW_AT_name : (indirect string, offset: 0x5): long int
- <1><66>: Abbrev Number: 2 (DW_TAG_pointer_type)
- <67> DW_AT_byte_size : 8
- <67> DW_AT_type : <0x6b>
- <1><6b>: Abbrev Number: 1 (DW_TAG_base_type)
- <6c> DW_AT_byte_size : 1
- <6d> DW_AT_encoding : 6 (signed char)
- <6e> DW_AT_name : (indirect string, offset: 0x33): char
- <1><72>: Abbrev Number: 8 (DW_TAG_const_type)
- <73> DW_AT_type : <0x6b>
- <1><77>: Abbrev Number: 2 (DW_TAG_pointer_type)
- <78> DW_AT_byte_size : 8
- <78> DW_AT_type : <0x72>
- <1><7c>: Abbrev Number: 1 (DW_TAG_base_type)
- <7d> DW_AT_byte_size : 8
- <7e> DW_AT_encoding : 5 (signed)
- <7f> DW_AT_name : (indirect string, offset: 0x0): long long int
- <1><83>: Abbrev Number: 1 (DW_TAG_base_type)
- <84> DW_AT_byte_size : 8
- <85> DW_AT_encoding : 7 (unsigned)
- <86> DW_AT_name : (indirect string, offset: 0x13): long long unsigned int
- <1><8a>: Abbrev Number: 9 (DW_TAG_subprogram)
- <8b> DW_AT_external : 1
- <8b> DW_AT_name : (indirect string, offset: 0x86): printf
- <8f> DW_AT_decl_file : 2
- <90> DW_AT_decl_line : 332
- <92> DW_AT_decl_column : 12
- <93> DW_AT_prototyped : 1
- <93> DW_AT_type : <0x58>
- <97> DW_AT_declaration : 1
- <97> DW_AT_sibling : <0xa2>
- <2><9b>: Abbrev Number: 10 (DW_TAG_formal_parameter)
- <9c> DW_AT_type : <0x77>
- <2><a0>: Abbrev Number: 11 (DW_TAG_unspecified_parameters)
- <2><a1>: Abbrev Number: 0
- <1><a2>: Abbrev Number: 12 (DW_TAG_subprogram)
- <a3> DW_AT_external : 1
- <a3> DW_AT_name : (indirect string, offset: 0xe): main
- <a7> DW_AT_decl_file : 1
- <a8> DW_AT_decl_line : 30
- <a9> DW_AT_decl_column : 1
- <aa> DW_AT_prototyped : 1
- <aa> DW_AT_type : <0x58>
- <ae> DW_AT_low_pc : 0x401126
- <b6> DW_AT_high_pc : 0xb1
- <be> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
- <c0> DW_AT_call_all_tail_calls: 1
- <c0> DW_AT_sibling : <0x12f>
- <2><c4>: Abbrev Number: 4 (DW_TAG_formal_parameter)
- <c5> DW_AT_name : (indirect string, offset: 0x6e): argc
- <c9> DW_AT_decl_file : 1
- <c9> DW_AT_decl_line : 30
- <c9> DW_AT_decl_column : 12
- <ca> DW_AT_type : <0x58>
- <ce> DW_AT_location : 3 byte block: 91 bc 7f (DW_OP_fbreg: -68)
- <2><d2>: Abbrev Number: 4 (DW_TAG_formal_parameter)
- <d3> DW_AT_name : (indirect string, offset: 0x99): argv
- <d7> DW_AT_decl_file : 1
- <d7> DW_AT_decl_line : 30
- <d7> DW_AT_decl_column : 24
- <d8> DW_AT_type : <0x12f>
- <dc> DW_AT_location : 3 byte block: 91 b0 7f (DW_OP_fbreg: -80)
- <2><e0>: Abbrev Number: 5 (DW_TAG_variable)
- <e1> DW_AT_name : a
- <e3> DW_AT_decl_file : 1
- <e3> DW_AT_decl_line : 32
- <e3> DW_AT_decl_column : 6
- <e4> DW_AT_type : <0x58>
- <e8> DW_AT_location : 2 byte block: 91 5c (DW_OP_fbreg: -36)
- <2><eb>: Abbrev Number: 5 (DW_TAG_variable)
- <ec> DW_AT_name : b
- <ee> DW_AT_decl_file : 1
- <ee> DW_AT_decl_line : 32
- <ee> DW_AT_decl_column : 14
- <ef> DW_AT_type : <0x58>
- <f3> DW_AT_location : 2 byte block: 91 58 (DW_OP_fbreg: -40)
- <2><f6>: Abbrev Number: 3 (DW_TAG_variable)
- <f7> DW_AT_name : (indirect string, offset: 0x8e): ptra
- <fb> DW_AT_decl_file : 1
- <fb> DW_AT_decl_line : 33
- <fc> DW_AT_decl_column : 7
- <fd> DW_AT_type : <0x134>
- <101> DW_AT_location : 2 byte block: 91 50 (DW_OP_fbreg: -48)
- <2><104>: Abbrev Number: 3 (DW_TAG_variable)
- <105> DW_AT_name : (indirect string, offset: 0x94): ptrb
- <109> DW_AT_decl_file : 1
- <109> DW_AT_decl_line : 33
- <10a> DW_AT_decl_column : 19
- <10b> DW_AT_type : <0x134>
- <10f> DW_AT_location : 2 byte block: 91 48 (DW_OP_fbreg: -56)
- <2><112>: Abbrev Number: 3 (DW_TAG_variable)
- <113> DW_AT_name : (indirect string, offset: 0x8d): pptra
- <117> DW_AT_decl_file : 1
- <117> DW_AT_decl_line : 38
- <118> DW_AT_decl_column : 9
- <119> DW_AT_type : <0x139>
- <11d> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
- <2><120>: Abbrev Number: 3 (DW_TAG_variable)
- <121> DW_AT_name : (indirect string, offset: 0x93): pptrb
- <125> DW_AT_decl_file : 1
- <125> DW_AT_decl_line : 38
- <126> DW_AT_decl_column : 26
- <127> DW_AT_type : <0x139>
- <12b> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32)
- <2><12e>: Abbrev Number: 0
- <1><12f>: Abbrev Number: 2 (DW_TAG_pointer_type)
- <130> DW_AT_byte_size : 8
- <130> DW_AT_type : <0x66>
- <1><134>: Abbrev Number: 2 (DW_TAG_pointer_type)
- <135> DW_AT_byte_size : 8
- <135> DW_AT_type : <0x58>
- <1><139>: Abbrev Number: 2 (DW_TAG_pointer_type)
- <13a> DW_AT_byte_size : 8
- <13a> DW_AT_type : <0x134>
- <1><13e>: Abbrev Number: 0
- Contents of the .debug_abbrev section:
- Number TAG (0x0)
- 1 DW_TAG_base_type [no children]
- DW_AT_byte_size DW_FORM_data1
- DW_AT_encoding DW_FORM_data1
- DW_AT_name DW_FORM_strp
- DW_AT value: 0 DW_FORM value: 0
- 2 DW_TAG_pointer_type [no children]
- DW_AT_byte_size DW_FORM_implicit_const: 8
- DW_AT_type DW_FORM_ref4
- DW_AT value: 0 DW_FORM value: 0
- 3 DW_TAG_variable [no children]
- DW_AT_name DW_FORM_strp
- DW_AT_decl_file DW_FORM_implicit_const: 1
- DW_AT_decl_line DW_FORM_data1
- DW_AT_decl_column DW_FORM_data1
- DW_AT_type DW_FORM_ref4
- DW_AT_location DW_FORM_exprloc
- DW_AT value: 0 DW_FORM value: 0
- 4 DW_TAG_formal_parameter [no children]
- DW_AT_name DW_FORM_strp
- DW_AT_decl_file DW_FORM_implicit_const: 1
- DW_AT_decl_line DW_FORM_implicit_const: 30
- DW_AT_decl_column DW_FORM_data1
- DW_AT_type DW_FORM_ref4
- DW_AT_location DW_FORM_exprloc
- DW_AT value: 0 DW_FORM value: 0
- 5 DW_TAG_variable [no children]
- DW_AT_name DW_FORM_string
- DW_AT_decl_file DW_FORM_implicit_const: 1
- DW_AT_decl_line DW_FORM_implicit_const: 32
- DW_AT_decl_column DW_FORM_data1
- DW_AT_type DW_FORM_ref4
- DW_AT_location DW_FORM_exprloc
- DW_AT value: 0 DW_FORM value: 0
- 6 DW_TAG_compile_unit [has children]
- DW_AT_producer DW_FORM_strp
- DW_AT_language DW_FORM_data1
- DW_AT_name DW_FORM_line_strp
- DW_AT_comp_dir DW_FORM_line_strp
- DW_AT_low_pc DW_FORM_addr
- DW_AT_high_pc DW_FORM_data8
- DW_AT_stmt_list DW_FORM_sec_offset
- DW_AT value: 0 DW_FORM value: 0
- 7 DW_TAG_base_type [no children]
- DW_AT_byte_size DW_FORM_data1
- DW_AT_encoding DW_FORM_data1
- DW_AT_name DW_FORM_string
- DW_AT value: 0 DW_FORM value: 0
- 8 DW_TAG_const_type [no children]
- DW_AT_type DW_FORM_ref4
- DW_AT value: 0 DW_FORM value: 0
- 9 DW_TAG_subprogram [has children]
- DW_AT_external DW_FORM_flag_present
- DW_AT_name DW_FORM_strp
- DW_AT_decl_file DW_FORM_data1
- DW_AT_decl_line DW_FORM_data2
- DW_AT_decl_column DW_FORM_data1
- DW_AT_prototyped DW_FORM_flag_present
- DW_AT_type DW_FORM_ref4
- DW_AT_declaration DW_FORM_flag_present
- DW_AT_sibling DW_FORM_ref4
- DW_AT value: 0 DW_FORM value: 0
- 10 DW_TAG_formal_parameter [no children]
- DW_AT_type DW_FORM_ref4
- DW_AT value: 0 DW_FORM value: 0
- 11 DW_TAG_unspecified_parameters [no children]
- DW_AT value: 0 DW_FORM value: 0
- 12 DW_TAG_subprogram [has children]
- DW_AT_external DW_FORM_flag_present
- DW_AT_name DW_FORM_strp
- DW_AT_decl_file DW_FORM_data1
- DW_AT_decl_line DW_FORM_data1
- DW_AT_decl_column DW_FORM_data1
- DW_AT_prototyped DW_FORM_flag_present
- DW_AT_type DW_FORM_ref4
- DW_AT_low_pc DW_FORM_addr
- DW_AT_high_pc DW_FORM_data8
- DW_AT_frame_base DW_FORM_exprloc
- DW_AT_call_all_tail_calls DW_FORM_flag_present
- DW_AT_sibling DW_FORM_ref4
- DW_AT value: 0 DW_FORM value: 0
- Raw dump of debug contents of section .debug_line:
- Offset: 0x0
- Length: 129
- DWARF Version: 5
- Address size (bytes): 8
- Segment selector (bytes): 0
- Prologue Length: 51
- Minimum Instruction Length: 1
- Maximum Ops per Instruction: 1
- Initial value of 'is_stmt': 1
- Line Base: -5
- Line Range: 14
- Opcode Base: 13
- Opcodes:
- Opcode 1 has 0 args
- Opcode 2 has 1 arg
- Opcode 3 has 1 arg
- Opcode 4 has 1 arg
- Opcode 5 has 1 arg
- Opcode 6 has 0 args
- Opcode 7 has 0 args
- Opcode 8 has 0 args
- Opcode 9 has 1 arg
- Opcode 10 has 0 args
- Opcode 11 has 0 args
- Opcode 12 has 1 arg
- The Directory Table (offset 0x22, lines 2, columns 1):
- Entry Name
- 0 (indirect line string, offset: 0x0): /usr/src/myapp
- 1 (indirect line string, offset: 0x16): /usr/include
- The File Name Table (offset 0x30, lines 3, columns 2):
- Entry Dir Name
- 0 0 (indirect line string, offset: 0xf): main.c
- 1 0 (indirect line string, offset: 0xf): main.c
- 2 1 (indirect line string, offset: 0x23): stdio.h
- Line Number Statements:
- [0x0000003f] Set column to 1
- [0x00000041] Extended opcode 2: set Address to 0x401126
- [0x0000004c] Advance Line by 30 to 31
- [0x0000004e] Copy
- [0x0000004f] Set column to 6
- [0x00000051] Special opcode 216: advance Address by 15 to 0x401135 and Line by 1 to 32
- [0x00000052] Set column to 14
- [0x00000054] Special opcode 103: advance Address by 7 to 0x40113c and Line by 0 to 32
- [0x00000055] Set column to 7
- [0x00000057] Special opcode 104: advance Address by 7 to 0x401143 and Line by 1 to 33
- [0x00000058] Set column to 19
- [0x0000005a] Special opcode 117: advance Address by 8 to 0x40114b and Line by 0 to 33
- [0x0000005b] Set column to 2
- [0x0000005d] Special opcode 118: advance Address by 8 to 0x401153 and Line by 1 to 34
- [0x0000005e] Set column to 7
- [0x00000060] Advance PC by constant 17 to 0x401164
- [0x00000061] Special opcode 174: advance Address by 12 to 0x401170 and Line by 1 to 35
- [0x00000062] Special opcode 118: advance Address by 8 to 0x401178 and Line by 1 to 36
- [0x00000063] Set column to 2
- [0x00000065] Special opcode 118: advance Address by 8 to 0x401180 and Line by 1 to 37
- [0x00000066] Set column to 9
- [0x00000068] Advance PC by constant 17 to 0x401191
- [0x00000069] Special opcode 174: advance Address by 12 to 0x40119d and Line by 1 to 38
- [0x0000006a] Set column to 26
- [0x0000006c] Special opcode 117: advance Address by 8 to 0x4011a5 and Line by 0 to 38
- [0x0000006d] Set column to 43
- [0x0000006f] Special opcode 118: advance Address by 8 to 0x4011ad and Line by 1 to 39
- [0x00000070] Set column to 2
- [0x00000072] Special opcode 103: advance Address by 7 to 0x4011b4 and Line by 0 to 39
- [0x00000073] Set column to 34
- [0x00000075] Special opcode 33: advance Address by 2 to 0x4011b6 and Line by 0 to 39
- [0x00000076] Set column to 2
- [0x00000078] Special opcode 103: advance Address by 7 to 0x4011bd and Line by 0 to 39
- [0x00000079] Set column to 9
- [0x0000007b] Advance PC by constant 17 to 0x4011ce
- [0x0000007c] Special opcode 34: advance Address by 2 to 0x4011d0 and Line by 1 to 40
- [0x0000007d] Set column to 1
- [0x0000007f] Special opcode 76: advance Address by 5 to 0x4011d5 and Line by 1 to 41
- [0x00000080] Advance PC by 2 to 0x4011d7
- [0x00000082] Extended opcode 1: End of Sequence
- Contents of the .debug_str section:
- 0x00000000 6c6f6e67 206c6f6e 6720696e 74006d61 long long int.ma
- 0x00000010 696e006c 6f6e6720 6c6f6e67 20756e73 in.long long uns
- 0x00000020 69676e65 6420696e 7400756e 7369676e igned int.unsign
- 0x00000030 65642063 68617200 474e5520 43313720 ed char.GNU C17
- 0x00000040 31312e32 2e30202d 6d74756e 653d6765 11.2.0 -mtune=ge
- 0x00000050 6e657269 63202d6d 61726368 3d783836 neric -march=x86
- 0x00000060 2d363420 2d676477 6172662d 35006172 -64 -gdwarf-5.ar
- 0x00000070 67630073 686f7274 20756e73 69676e65 gc.short unsigne
- 0x00000080 6420696e 74007072 696e7466 00707074 d int.printf.ppt
- 0x00000090 72610070 70747262 00617267 76007368 ra.pptrb.argv.sh
- 0x000000a0 6f727420 696e7400 ort int.
- Contents of the .debug_line_str section:
- 0x00000000 2f757372 2f737263 2f6d7961 7070006d /usr/src/myapp.m
- 0x00000010 61696e2e 63002f75 73722f69 6e636c75 ain.c./usr/inclu
- 0x00000020 64650073 7464696f 2e6800 de.stdio.h.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement