// File: Se6[P]CmdLineArgs/./CmdLineArgs.h
// Function: int CmdLineArgs::getParam<int>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
T CmdLineArgs::getParam(const std::string &long_name, char short_name, T default_value, const std::string &desc)
{
    T val;
    std::ostringstream oss;
    oss << default_value;
    addUsage(long_name, short_name, oss.str(), desc);

    // First search the long names:
    //
    auto pos = findLongName(long_name);
    if( pos != args_.end() ) {

        if( pos+2 > args_.end() )
            throw std::runtime_error("\nError: parameter --" + long_name + " is not followed by a value");

        pos = args_.erase(pos);

    } else {

        pos = findShortName(short_name);
        if( pos != args_.end() ) {

            if( pos+2>args_.end() )
                throw std::runtime_error("\nError: parameter -" + std::string(1,short_name) + " is not followed by a value");

            if( pos->size()==2 )
                pos = args_.erase(pos);
            else {
                pos->erase(pos->find(short_name, 1), 1);
                ++pos;
            }
        }
    }

    if ( pos != args_.end() ) {

        std::istringstream ss(*pos);
        ss >> val;

        if( ss.fail() )
            throw std::runtime_error("\nError: parameter --" + long_name + " is not followed by a correct value");

        if( !ss.eof() ) {
            std::stringstream sshex;
            sshex << std::hex << *pos;
            sshex >> val;

            if(sshex.fail())
                throw std::runtime_error("\nError: parameter --" + long_name + " is not followed by a correct value");

            if(!sshex.eof())
                throw std::runtime_error("\nError: parameter --" + long_name + " has an incorrect value");
        }

        args_.erase(pos);
        return val;

    } else
        return default_value;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7b0, %rsp            # imm = 0x7B0
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
movl %ecx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x6f8(%rbp)
leaq -0x1a8(%rbp), %rdi
movq %rdi, -0x6f0(%rbp)
callq 0x33f0
movq -0x6f0(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x34d0
jmp 0x865e
movq -0x18(%rbp), %rax
movq %rax, -0x708(%rbp)
movb -0x19(%rbp), %al
movb %al, -0x6f9(%rbp)
leaq -0x1d8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3300
jmp 0x8687
movq -0x708(%rbp), %rsi
movq -0x6f8(%rbp), %rdi
movb -0x6f9(%rbp), %al
movq -0x28(%rbp), %r8
movsbl %al, %edx
leaq -0x1d8(%rbp), %rcx
callq 0x4190
jmp 0x86b0
leaq -0x1d8(%rbp), %rdi
callq 0x31d0
movq -0x6f8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3b90
movq %rax, -0x710(%rbp)
jmp 0x86d5
movq -0x6f8(%rbp), %rdi
movq -0x710(%rbp), %rax
movq %rax, -0x1e0(%rbp)
callq 0x79b0
movq %rax, -0x1e8(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x7b00
testb $0x1, %al
jne 0x8712
jmp 0x88d9
leaq -0x1e0(%rbp), %rdi
movl $0x2, %esi
callq 0x7e70
movq -0x6f8(%rbp), %rdi
movq %rax, -0x1f0(%rbp)
callq 0x79b0
movq %rax, -0x1f8(%rbp)
leaq -0x1f0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x7e30
testb $0x1, %al
jne 0x8759
jmp 0x8889
movb $0x1, -0x239(%rbp)
movl $0x10, %edi
callq 0x3180
movq %rax, -0x718(%rbp)
movq -0x18(%rbp), %rdx
leaq 0x789c(%rip), %rsi      # 0x10018
leaq -0x238(%rbp), %rdi
callq 0x7d20
jmp 0x878a
leaq 0x789c(%rip), %rdx      # 0x1002d
leaq -0x218(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x7cd0
jmp 0x87a6
movq -0x718(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x3460
jmp 0x87bb
movq -0x718(%rbp), %rdi
movb $0x0, -0x239(%rbp)
movq 0xd820(%rip), %rsi      # 0x15ff0
movq 0xd7e9(%rip), %rdx      # 0x15fc0
callq 0x34b0
jmp 0x90ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x90e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x31d0
jmp 0x90e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x886d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8861
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x31d0
leaq -0x238(%rbp), %rdi
callq 0x31d0
testb $0x1, -0x239(%rbp)
jne 0x8878
jmp 0x8884
movq -0x718(%rbp), %rdi
callq 0x3240
jmp 0x90e7
leaq -0x250(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x79e0
movq -0x6f8(%rbp), %rdi
movq -0x250(%rbp), %rsi
callq 0x7c60
movq %rax, -0x720(%rbp)
jmp 0x88b8
movq -0x720(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
movq %rax, -0x1e0(%rbp)
jmp 0x8bb3
movq -0x6f8(%rbp), %rdi
movsbl -0x19(%rbp), %esi
callq 0x3dd0
movq %rax, -0x728(%rbp)
jmp 0x88f2
movq -0x6f8(%rbp), %rdi
movq -0x728(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rax
movq %rax, -0x1e0(%rbp)
callq 0x79b0
movq %rax, -0x260(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x7b00
testb $0x1, %al
jne 0x893d
jmp 0x8bb1
leaq -0x1e0(%rbp), %rdi
movl $0x2, %esi
callq 0x7e70
movq -0x6f8(%rbp), %rdi
movq %rax, -0x268(%rbp)
callq 0x79b0
movq %rax, -0x270(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x7e30
testb $0x1, %al
jne 0x8984
jmp 0x8ae6
movb $0x1, -0x2d2(%rbp)
movl $0x10, %edi
callq 0x3180
movq %rax, -0x740(%rbp)
movsbl -0x19(%rbp), %eax
movl %eax, -0x734(%rbp)
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0x730(%rbp)
callq 0x34f0
movl -0x734(%rbp), %edx
movq -0x730(%rbp), %rcx
leaq -0x2d0(%rbp), %rdi
movl $0x1, %esi
callq 0x7f00
jmp 0x89d9
leaq 0x7669(%rip), %rsi      # 0x10049
leaq -0x2b0(%rbp), %rdi
leaq -0x2d0(%rbp), %rdx
callq 0x7eb0
jmp 0x89f5
leaq 0x7631(%rip), %rdx      # 0x1002d
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x7cd0
jmp 0x8a11
movq -0x740(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x3460
jmp 0x8a26
movq -0x740(%rbp), %rdi
movb $0x0, -0x2d2(%rbp)
movq 0xd5b5(%rip), %rsi      # 0x15ff0
movq 0xd57e(%rip), %rdx      # 0x15fc0
callq 0x34b0
jmp 0x90ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8abe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8ab2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8aa6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x31d0
leaq -0x2b0(%rbp), %rdi
callq 0x31d0
leaq -0x2d0(%rbp), %rdi
callq 0x31d0
leaq -0x2d1(%rbp), %rdi
callq 0x3340
testb $0x1, -0x2d2(%rbp)
jne 0x8ad5
jmp 0x8ae1
movq -0x740(%rbp), %rdi
callq 0x3240
jmp 0x90e7
leaq -0x1e0(%rbp), %rdi
callq 0x7b40
movq %rax, %rdi
callq 0x3200
cmpq $0x2, %rax
jne 0x8b4d
leaq -0x2e8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x79e0
movq -0x6f8(%rbp), %rdi
movq -0x2e8(%rbp), %rsi
callq 0x7c60
movq %rax, -0x748(%rbp)
jmp 0x8b2f
movq -0x748(%rbp), %rax
movq %rax, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
jmp 0x8baf
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x760(%rbp)
callq 0x7b40
movq -0x760(%rbp), %rdi
movq %rax, -0x758(%rbp)
callq 0x7b40
movq %rax, %rdi
movsbl -0x19(%rbp), %esi
movl $0x1, %edx
movq %rdx, -0x750(%rbp)
callq 0x33e0
movq -0x758(%rbp), %rdi
movq -0x750(%rbp), %rdx
movq %rax, %rsi
callq 0x3090
jmp 0x8ba3
leaq -0x1e0(%rbp), %rdi
callq 0x7c20
jmp 0x8bb1
jmp 0x8bb3
movq -0x6f8(%rbp), %rdi
callq 0x79b0
movq %rax, -0x2f0(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x7b00
testb $0x1, %al
jne 0x8be2
jmp 0x90bf
leaq -0x1e0(%rbp), %rdi
callq 0x7c40
movq %rax, %rsi
leaq -0x470(%rbp), %rdi
movl $0x8, %edx
callq 0x3490
jmp 0x8c04
leaq -0x470(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x31c0
jmp 0x8c16
movq -0x470(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x470(%rbp,%rax), %rdi
callq 0x3030
movb %al, -0x761(%rbp)
jmp 0x8c36
movb -0x761(%rbp), %al
testb $0x1, %al
jne 0x8c45
jmp 0x8d52
movb $0x1, -0x4b1(%rbp)
movl $0x10, %edi
callq 0x3180
movq %rax, -0x770(%rbp)
movq -0x18(%rbp), %rdx
leaq 0x73b0(%rip), %rsi      # 0x10018
leaq -0x4b0(%rbp), %rdi
callq 0x7d20
jmp 0x8c76
leaq 0x7654(%rip), %rdx      # 0x102d1
leaq -0x490(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x7cd0
jmp 0x8c92
movq -0x770(%rbp), %rdi
leaq -0x490(%rbp), %rsi
callq 0x3460
jmp 0x8ca7
movq -0x770(%rbp), %rdi
movb $0x0, -0x4b1(%rbp)
movq 0xd334(%rip), %rsi      # 0x15ff0
movq 0xd2fd(%rip), %rdx      # 0x15fc0
callq 0x34b0
jmp 0x90ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x90b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8d36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8d2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x31d0
leaq -0x4b0(%rbp), %rdi
callq 0x31d0
testb $0x1, -0x4b1(%rbp)
jne 0x8d41
jmp 0x8d4d
movq -0x770(%rbp), %rdi
callq 0x3240
jmp 0x90b1
movq -0x470(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x470(%rbp,%rax), %rdi
callq 0x3520
movb %al, -0x771(%rbp)
jmp 0x8d72
movb -0x771(%rbp), %al
testb $0x1, %al
jne 0x9056
jmp 0x8d82
leaq -0x640(%rbp), %rdi
callq 0x3210
jmp 0x8d90
leaq -0x630(%rbp), %rdi
leaq 0x4732(%rip), %rsi      # 0xd4d0
callq 0x30f0
movq %rax, -0x780(%rbp)
jmp 0x8dac
leaq -0x1e0(%rbp), %rdi
callq 0x7c40
movq -0x780(%rbp), %rdi
movq %rax, %rsi
callq 0x32b0
jmp 0x8dc9
leaq -0x640(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x31c0
jmp 0x8ddb
movq -0x640(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x640(%rbp,%rax), %rdi
callq 0x3030
movb %al, -0x781(%rbp)
jmp 0x8dfb
movb -0x781(%rbp), %al
testb $0x1, %al
jne 0x8e0a
jmp 0x8f17
movb $0x1, -0x681(%rbp)
movl $0x10, %edi
callq 0x3180
movq %rax, -0x790(%rbp)
movq -0x18(%rbp), %rdx
leaq 0x71eb(%rip), %rsi      # 0x10018
leaq -0x680(%rbp), %rdi
callq 0x7d20
jmp 0x8e3b
leaq 0x748f(%rip), %rdx      # 0x102d1
leaq -0x660(%rbp), %rdi
leaq -0x680(%rbp), %rsi
callq 0x7cd0
jmp 0x8e57
movq -0x790(%rbp), %rdi
leaq -0x660(%rbp), %rsi
callq 0x3460
jmp 0x8e6c
movq -0x790(%rbp), %rdi
movb $0x0, -0x681(%rbp)
movq 0xd16f(%rip), %rsi      # 0x15ff0
movq 0xd138(%rip), %rdx      # 0x15fc0
callq 0x34b0
jmp 0x90ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x9048
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8efb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x8eef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x660(%rbp), %rdi
callq 0x31d0
leaq -0x680(%rbp), %rdi
callq 0x31d0
testb $0x1, -0x681(%rbp)
jne 0x8f06
jmp 0x8f12
movq -0x790(%rbp), %rdi
callq 0x3240
jmp 0x9048
movq -0x640(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x640(%rbp,%rax), %rdi
callq 0x3520
movb %al, -0x791(%rbp)
jmp 0x8f37
movb -0x791(%rbp), %al
testb $0x1, %al
jne 0x903a
jmp 0x8f47
movb $0x1, -0x6c9(%rbp)
movl $0x10, %edi
callq 0x3180
movq %rax, -0x7a0(%rbp)
movq -0x18(%rbp), %rdx
leaq 0x70ae(%rip), %rsi      # 0x10018
leaq -0x6c8(%rbp), %rdi
callq 0x7d20
jmp 0x8f78
leaq 0x7339(%rip), %rdx      # 0x102b8
leaq -0x6a8(%rbp), %rdi
leaq -0x6c8(%rbp), %rsi
callq 0x7cd0
jmp 0x8f94
movq -0x7a0(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
callq 0x3460
jmp 0x8fa9
movq -0x7a0(%rbp), %rdi
movb $0x0, -0x6c9(%rbp)
movq 0xd032(%rip), %rsi      # 0x15ff0
movq 0xcffb(%rip), %rdx      # 0x15fc0
callq 0x34b0
jmp 0x90ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x9021
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
jmp 0x9015
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b0(%rbp)
movl %eax, -0x1b4(%rbp)
leaq -0x6a8(%rbp), %rdi
callq 0x31d0
leaq -0x6c8(%rbp), %rdi
callq 0x31d0
testb $0x1, -0x6c9(%rbp)
jne 0x902c
jmp 0x9038
movq -0x7a0(%rbp), %rdi
callq 0x3240
jmp 0x9048
leaq -0x640(%rbp), %rdi
callq 0x3260
jmp 0x9056
leaq -0x640(%rbp), %rdi
callq 0x3260
jmp 0x90b1
leaq -0x6d8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x79e0
movq -0x6f8(%rbp), %rdi
movq -0x6d8(%rbp), %rsi
callq 0x7c60
movq %rax, -0x7a8(%rbp)
jmp 0x9085
movq -0x7a8(%rbp), %rax
movq %rax, -0x6e0(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x4(%rbp)
movl $0x1, -0x6e4(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x3170
jmp 0x90cf
leaq -0x470(%rbp), %rdi
callq 0x3170
jmp 0x90e7
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
movl $0x1, -0x6e4(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x30b0
movl -0x4(%rbp), %eax
addq $0x7b0, %rsp            # imm = 0x7B0
popq %rbp
retq
leaq -0x1a8(%rbp), %rdi
callq 0x30b0
movq -0x1b0(%rbp), %rdi
callq 0x34e0
nop