// File: /workspace/github_cpp_makefile_star2_O3/mapbox[P]svg-tools/test/path.hpp
// Function: mapbox::svg::test::operator<<(std::ostream&, mapbox::svg::test::PathCommand const&)
::std::ostream& operator<<(::std::ostream& os, const PathCommand& command) {
    switch (command.type) {
    case PathCommand::Type::MoveTo:
        os << "MoveTo { x: " << command.x << ", y: " << command.y << " }";
        break;

    case PathCommand::Type::ClosePath:
        os << "ClosePath";
        break;

    case PathCommand::Type::LineTo:
        os << "LineTo { x: " << command.x << ", y: " << command.y << " }";
        break;

    case PathCommand::Type::HorizontalLineTo:
        os << "HorizontalLineTo { x: " << command.x << " }";
        break;

    case PathCommand::Type::VerticalLineTo:
        os << "VerticalLineTo { y: " << command.y << " }";
        break;

    case PathCommand::Type::CurveTo:
        os << "CurveTo { x1: " << command.x1 << ", y1: " << command.y1 << ", x2: " << command.x2
           << ", y2: " << command.y2 << ", x: " << command.x << ", y: " << command.y << " }";
        break;

    case PathCommand::Type::SmoothCurveTo:
        os << "SmoothCurveTo { x2: " << command.x2 << ", y2: " << command.y2 << ", x: " << command.x
           << ", y: " << command.y << " }";
        break;

    case PathCommand::Type::QuadraticCurveTo:
        os << "QuadraticCurveTo { x1: " << command.x1 << ", y1: " << command.y1
           << ", x: " << command.x << ", y: " << command.y << " }";
        break;

    case PathCommand::Type::SmoothQuadraticCurveTo:
        os << "SmoothQuadraticCurveTo { x: " << command.x << ", y: " << command.y << " }";
        break;

    case PathCommand::Type::Arc:
        os << "Arc { rx: " << command.x1 << ", ry: " << command.y1
           << ", xAxisRotation: " << command.xAxisRotation
           << ", largeArc: " << (command.largeArcFlag ? "true" : "false")
           << ", sweep: " << (command.sweepFlag ? "true" : "false") << ", x: " << command.x
           << ", y: " << command.y << " }";
        break;
    default:
        os << "Unknown";
        break;
    }
    if (command.relative) {
        os << " (relative)";
    }
    return os;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movzbl (%rsi), %eax
cmpq $0x9, %rax
ja 0x1592
leaq 0x2cef(%rip), %rcx      # 0x4004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2e89(%rip), %rsi      # 0x41ae
jmp 0x143f
leaq 0x2eb4(%rip), %rsi      # 0x41e5
movl $0x14, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x10(%r14), %xmm0
jmp 0x1463
leaq 0x2f0f(%rip), %rsi      # 0x425f
movl $0xa, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x18(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2ef5(%rip), %rsi      # 0x426a
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x20(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2ed7(%rip), %rsi      # 0x4271
movl $0x11, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x38(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2ec4(%rip), %rsi      # 0x4283
movl $0xc, %edx
movq %rax, %rdi
callq 0x10f0
movzbl 0x2(%r14), %edx
leaq 0x2eb8(%rip), %r13      # 0x4290
leaq 0x2eb6(%rip), %r12      # 0x4295
testq %rdx, %rdx
movq %r12, %rsi
cmovneq %r13, %rsi
xorq $0x5, %rdx
movq %r15, %rdi
callq 0x10f0
leaq 0x2e9f(%rip), %rsi      # 0x429b
movl $0x9, %edx
movq %r15, %rdi
callq 0x10f0
movzbl 0x3(%r14), %edx
testq %rdx, %rdx
cmovneq %r13, %r12
xorq $0x5, %rdx
movq %r15, %rdi
movq %r12, %rsi
callq 0x10f0
leaq 0x2de4(%rip), %rsi      # 0x420f
movl $0x5, %edx
movq %r15, %rdi
jmp 0x1582
leaq 0x2d99(%rip), %rsi      # 0x41d8
movl $0xc, %edx
jmp 0x15af
leaq 0x2d7e(%rip), %rsi      # 0x41ce
movl $0x16, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x8(%r14), %xmm0
movq %rbx, %rdi
jmp 0x15e5
leaq 0x2db8(%rip), %rsi      # 0x422a
movl $0x17, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x18(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2d63(%rip), %rsi      # 0x41fa
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x20(%r14), %xmm0
jmp 0x1568
leaq 0x2d0e(%rip), %rsi      # 0x41c4
movl $0x9, %edx
jmp 0x159e
leaq 0x2d6c(%rip), %rsi      # 0x4233
movl $0xe, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x18(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2d0e(%rip), %rsi      # 0x41fa
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x20(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2cf0(%rip), %rsi      # 0x4201
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x28(%r14), %xmm0
movq %r15, %rdi
jmp 0x1546
leaq 0x2ce5(%rip), %rsi      # 0x4215
movl $0x14, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x28(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2cb3(%rip), %rsi      # 0x4208
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x30(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2c95(%rip), %rsi      # 0x420f
movl $0x5, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x8(%r14), %xmm0
movq %r15, %rdi
jmp 0x15c0
leaq 0x2d0c(%rip), %rsi      # 0x42a5
movl $0x7, %edx
movq %rbx, %rdi
jmp 0x15f9
leaq 0x2c98(%rip), %rsi      # 0x4242
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x8(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2bec(%rip), %rsi      # 0x41bb
movl $0x5, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x10(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
leaq 0x2bd0(%rip), %rsi      # 0x41c1
movl $0x2, %edx
movq %rax, %rdi
callq 0x10f0
cmpb $0x1, 0x1(%r14)
jne 0x1619
leaq 0x2ca1(%rip), %rsi      # 0x42ad
movl $0xb, %edx
movq %rbx, %rdi
callq 0x10f0
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq