// File: zeeev[P]DASVC/src/split.hpp
// Function: void tokenize<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
void tokenize(const std::string& str, ContainerT& tokens,
              const std::string& delimiters = " ", const bool trimEmpty = false)
{

    std::string::size_type pos, lastPos = 0;
    while(true)
    {
	pos = str.find_first_of(delimiters, lastPos);
	if(pos == std::string::npos)
	{

	    pos = str.length();

	    if(pos != lastPos || !trimEmpty) {
		tokens.push_back(typename ContainerT::value_type(str.data()+lastPos, (typename ContainerT::value_type::size_type)pos-lastPos));
	    }

	    break;
	}
	else
	{
	    if(pos != lastPos || !trimEmpty) {
		tokens.push_back(typename ContainerT::value_type(str.data()+lastPos, (typename ContainerT::value_type::size_type)pos-lastPos));
	    }
	}

	lastPos = pos + 1;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movb %cl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %rdx
callq 0x64e0
movq %rax, -0x28(%rbp)
cmpq $-0x1, -0x28(%rbp)
jne 0x214e3
movq -0x8(%rbp), %rdi
callq 0x68a0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
jne 0x21427
testb $0x1, -0x19(%rbp)
jne 0x214de
movq -0x10(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x6780
movq -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xa8(%rbp)
movq -0x28(%rbp), %rax
subq %rcx, %rax
movq %rax, -0xa0(%rbp)
leaq -0x51(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x6a20
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
movq -0x98(%rbp), %rcx
leaq -0x50(%rbp), %rdi
callq 0x6650
jmp 0x21487
movq -0xb0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1e7e0
jmp 0x21499
leaq -0x50(%rbp), %rdi
callq 0x6ba8
leaq -0x51(%rbp), %rdi
callq 0x6600
jmp 0x214de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x214d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x6ba8
leaq -0x51(%rbp), %rdi
callq 0x6600
jmp 0x215dc
jmp 0x215d3
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
jne 0x214f7
testb $0x1, -0x19(%rbp)
jne 0x215c0
movq -0x10(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x6780
movq -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
movq -0x28(%rbp), %rax
subq %rcx, %rax
movq %rax, -0xc0(%rbp)
leaq -0x89(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x6a20
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
movq -0xb8(%rbp), %rcx
leaq -0x88(%rbp), %rdi
callq 0x6650
jmp 0x2155d
movq -0xd0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x1e7e0
jmp 0x21572
leaq -0x88(%rbp), %rdi
callq 0x6ba8
leaq -0x89(%rbp), %rdi
callq 0x6600
jmp 0x215c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x215b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x6ba8
leaq -0x89(%rbp), %rdi
callq 0x6600
jmp 0x215dc
jmp 0x215c2
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x213e6
addq $0xd0, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x6a10
nopw %cs:(%rax,%rax)
nop