// File: /workspace/github_cpp_makefile_star2_O1/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 0x2e49(%rip), %rsi      # 0x416e
jmp 0x143f
leaq 0x2e74(%rip), %rsi      # 0x41a5
movl $0x14, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x10(%r14), %xmm0
jmp 0x1463
leaq 0x2ecf(%rip), %rsi      # 0x421f
movl $0xa, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x18(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2eb5(%rip), %rsi      # 0x422a
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x20(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2e97(%rip), %rsi      # 0x4231
movl $0x11, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x38(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2e84(%rip), %rsi      # 0x4243
movl $0xc, %edx
movq %rax, %rdi
callq 0x10f0
movzbl 0x2(%r14), %edx
leaq 0x2e78(%rip), %r13      # 0x4250
leaq 0x2e76(%rip), %r12      # 0x4255
testq %rdx, %rdx
movq %r12, %rsi
cmovneq %r13, %rsi
xorq $0x5, %rdx
movq %r15, %rdi
callq 0x10f0
leaq 0x2e5f(%rip), %rsi      # 0x425b
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 0x2da4(%rip), %rsi      # 0x41cf
movl $0x5, %edx
movq %r15, %rdi
jmp 0x1582
leaq 0x2d59(%rip), %rsi      # 0x4198
movl $0xc, %edx
jmp 0x15af
leaq 0x2d3e(%rip), %rsi      # 0x418e
movl $0x16, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x8(%r14), %xmm0
movq %rbx, %rdi
jmp 0x15e5
leaq 0x2d78(%rip), %rsi      # 0x41ea
movl $0x17, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x18(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2d23(%rip), %rsi      # 0x41ba
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x20(%r14), %xmm0
jmp 0x1568
leaq 0x2cce(%rip), %rsi      # 0x4184
movl $0x9, %edx
jmp 0x159e
leaq 0x2d2c(%rip), %rsi      # 0x41f3
movl $0xe, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x18(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2cce(%rip), %rsi      # 0x41ba
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x20(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2cb0(%rip), %rsi      # 0x41c1
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x28(%r14), %xmm0
movq %r15, %rdi
jmp 0x1546
leaq 0x2ca5(%rip), %rsi      # 0x41d5
movl $0x14, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x28(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2c73(%rip), %rsi      # 0x41c8
movl $0x6, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x30(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2c55(%rip), %rsi      # 0x41cf
movl $0x5, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x8(%r14), %xmm0
movq %r15, %rdi
jmp 0x15c0
leaq 0x2ccc(%rip), %rsi      # 0x4265
movl $0x7, %edx
movq %rbx, %rdi
jmp 0x15f9
leaq 0x2c58(%rip), %rsi      # 0x4202
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x10f0
movsd 0x8(%r14), %xmm0
movq %rbx, %rdi
callq 0x1120
movq %rax, %r15
leaq 0x2bac(%rip), %rsi      # 0x417b
movl $0x5, %edx
movq %rax, %rdi
callq 0x10f0
movsd 0x10(%r14), %xmm0
movq %r15, %rdi
callq 0x1120
leaq 0x2b90(%rip), %rsi      # 0x4181
movl $0x2, %edx
movq %rax, %rdi
callq 0x10f0
cmpb $0x1, 0x1(%r14)
jne 0x1619
leaq 0x2c61(%rip), %rsi      # 0x426d
movl $0xb, %edx
movq %rbx, %rdi
callq 0x10f0
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq