// File: ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream*, testing::TestCase const&)
void JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream* stream,
                                                  const TestCase& test_case) {
  const std::string kTestsuite = "testsuite";
  const std::string kIndent = Indent(6);

  *stream << Indent(4) << "{\n";
  OutputJsonKey(stream, kTestsuite, "name", test_case.name(), kIndent);
  OutputJsonKey(stream, kTestsuite, "tests", test_case.reportable_test_count(),
                kIndent);
  if (!GTEST_FLAG(list_tests)) {
    OutputJsonKey(stream, kTestsuite, "failures", test_case.failed_test_count(),
                  kIndent);
    OutputJsonKey(stream, kTestsuite, "disabled",
                  test_case.reportable_disabled_test_count(), kIndent);
    OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent);
    OutputJsonKey(stream, kTestsuite, "time",
                  FormatTimeInMillisAsDuration(test_case.elapsed_time()),
                  kIndent, false);
    *stream << TestPropertiesAsJson(test_case.ad_hoc_test_result(), kIndent)
            << ",\n";
  }

  *stream << kIndent << "\"" << kTestsuite << "\": [\n";

  bool comma = false;
  for (int i = 0; i < test_case.total_test_count(); ++i) {
    if (test_case.GetTestInfo(i)->is_reportable()) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      OutputJsonTestInfo(stream, test_case.name(), *test_case.GetTestInfo(i));
    }
  }
  *stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x330, %rsp            # imm = 0x330
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x9c50
movq -0x210(%rbp), %rdx
leaq 0x2f8cf(%rip), %rsi     # 0x58ba0
leaq -0x30(%rbp), %rdi
callq 0xf1d0
jmp 0x292dc
leaq -0x31(%rbp), %rdi
callq 0x96d0
leaq -0x68(%rbp), %rdi
movl $0x6, %esi
callq 0x28ed0
jmp 0x292f5
movq -0x8(%rbp), %rax
movq %rax, -0x218(%rbp)
leaq -0x88(%rbp), %rdi
movl $0x4, %esi
callq 0x28ed0
jmp 0x29313
movq -0x218(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x9550
movq %rax, -0x220(%rbp)
jmp 0x2932f
movq -0x220(%rbp), %rdi
leaq 0x2f95f(%rip), %rsi     # 0x58c9c
callq 0x95e0
jmp 0x29344
leaq -0x88(%rbp), %rdi
callq 0x9db8
movq -0x8(%rbp), %rax
movq %rax, -0x230(%rbp)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x9c50
movq -0x228(%rbp), %rdx
leaq 0x2f7de(%rip), %rsi     # 0x58b5a
leaq -0xa8(%rbp), %rdi
callq 0xf1d0
jmp 0x2938a
movq -0x10(%rbp), %rdi
callq 0x3b990
movq %rax, -0x238(%rbp)
jmp 0x2939c
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x9c50
movq -0x238(%rbp), %rsi
movq -0x240(%rbp), %rdx
leaq -0xd0(%rbp), %rdi
callq 0xf1d0
jmp 0x293cb
movq -0x230(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
leaq -0xd0(%rbp), %rcx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x278f0
jmp 0x293f5
leaq -0xd0(%rbp), %rdi
callq 0x9db8
leaq -0xd1(%rbp), %rdi
callq 0x96d0
leaq -0xa8(%rbp), %rdi
callq 0x9db8
leaq -0xa9(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x9c50
movq -0x248(%rbp), %rdx
leaq 0x2ec55(%rip), %rsi     # 0x580a6
leaq -0xf8(%rbp), %rdi
callq 0xf1d0
jmp 0x2945f
movq -0x10(%rbp), %rdi
callq 0x18cf0
movl %eax, -0x254(%rbp)
jmp 0x29470
movl -0x254(%rbp), %ecx
movq -0x250(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x29499
leaq -0xf8(%rbp), %rdi
callq 0x9db8
leaq -0xf9(%rbp), %rdi
callq 0x96d0
testb $0x1, 0x53489(%rip)     # 0x7c941
jne 0x2997f
movq -0x8(%rbp), %rax
movq %rax, -0x268(%rbp)
leaq -0x121(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0x9c50
movq -0x260(%rbp), %rdx
leaq 0x30206(%rip), %rsi     # 0x596f0
leaq -0x120(%rbp), %rdi
callq 0xf1d0
jmp 0x294f8
movq -0x10(%rbp), %rdi
callq 0x18ba0
movl %eax, -0x26c(%rbp)
jmp 0x29509
movl -0x26c(%rbp), %ecx
movq -0x268(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x120(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x29532
leaq -0x120(%rbp), %rdi
callq 0x9db8
leaq -0x121(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x280(%rbp)
leaq -0x149(%rbp), %rdi
movq %rdi, -0x278(%rbp)
callq 0x9c50
movq -0x278(%rbp), %rdx
leaq 0x2f638(%rip), %rsi     # 0x58bae
leaq -0x148(%rbp), %rdi
callq 0xf1d0
jmp 0x29584
movq -0x10(%rbp), %rdi
callq 0x18c10
movl %eax, -0x284(%rbp)
jmp 0x29595
movl -0x284(%rbp), %ecx
movq -0x280(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x148(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x295be
leaq -0x148(%rbp), %rdi
callq 0x9db8
leaq -0x149(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x171(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x9c50
movq -0x290(%rbp), %rdx
leaq 0x2f5b5(%rip), %rsi     # 0x58bb7
leaq -0x170(%rbp), %rdi
callq 0xf1d0
jmp 0x29610
movq -0x298(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x170(%rbp), %rdx
xorl %ecx, %ecx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x29635
leaq -0x170(%rbp), %rdi
callq 0x9db8
leaq -0x171(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x199(%rbp), %rdi
movq %rdi, -0x2a0(%rbp)
callq 0x9c50
movq -0x2a0(%rbp), %rdx
leaq 0x2ea8d(%rip), %rsi     # 0x58106
leaq -0x198(%rbp), %rdi
callq 0xf1d0
jmp 0x29687
movq -0x10(%rbp), %rdi
callq 0x3bb20
movq %rax, -0x2b0(%rbp)
jmp 0x29699
movq -0x2b0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x28f50
jmp 0x296ae
movq -0x2a8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x198(%rbp), %rdx
leaq -0x1c0(%rbp), %rcx
leaq -0x68(%rbp), %r8
xorl %r9d, %r9d
callq 0x278f0
jmp 0x296d5
leaq -0x1c0(%rbp), %rdi
callq 0x9db8
leaq -0x198(%rbp), %rdi
callq 0x9db8
leaq -0x199(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3c3e0
movq %rax, -0x2b8(%rbp)
jmp 0x29716
movq -0x2b8(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0x29020
jmp 0x2972f
movq -0x2c0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x9550
movq %rax, -0x2c8(%rbp)
jmp 0x2974b
movq -0x2c8(%rbp), %rdi
leaq 0x2f558(%rip), %rsi     # 0x58cb1
callq 0x95e0
jmp 0x29760
leaq -0x1e0(%rbp), %rdi
callq 0x9db8
jmp 0x2997f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x96d0
jmp 0x29bbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29bb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x9db8
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29824
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29818
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2980c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x9db8
leaq -0xd1(%rbp), %rdi
callq 0x96d0
leaq -0xa8(%rbp), %rdi
callq 0x9db8
leaq -0xa9(%rbp), %rdi
callq 0x96d0
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2985b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x9db8
leaq -0xf9(%rbp), %rdi
callq 0x96d0
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29892
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x9db8
leaq -0x121(%rbp), %rdi
callq 0x96d0
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x298c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x9db8
leaq -0x149(%rbp), %rdi
callq 0x96d0
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29900
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x9db8
leaq -0x171(%rbp), %rdi
callq 0x96d0
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29951
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x29945
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x9db8
leaq -0x198(%rbp), %rdi
callq 0x9db8
leaq -0x199(%rbp), %rdi
callq 0x96d0
jmp 0x29bab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x9db8
jmp 0x29bab
movq -0x8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x9550
movq %rax, -0x2d0(%rbp)
jmp 0x29995
movq -0x2d0(%rbp), %rdi
leaq 0x2f30b(%rip), %rsi     # 0x58cae
callq 0x95e0
movq %rax, -0x2d8(%rbp)
jmp 0x299b1
movq -0x2d8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x9550
movq %rax, -0x2e0(%rbp)
jmp 0x299ca
movq -0x2e0(%rbp), %rdi
leaq 0x2f2bc(%rip), %rsi     # 0x58c94
callq 0x95e0
jmp 0x299df
movb $0x0, -0x1e1(%rbp)
movl $0x0, -0x1e8(%rbp)
movl -0x1e8(%rbp), %eax
movl %eax, -0x2e4(%rbp)
movq -0x10(%rbp), %rdi
callq 0x18d60
movl %eax, %ecx
movl -0x2e4(%rbp), %eax
cmpl %ecx, %eax
jge 0x29ada
movq -0x10(%rbp), %rdi
movl -0x1e8(%rbp), %esi
callq 0x204e0
movq %rax, -0x2f0(%rbp)
jmp 0x29a2d
movq -0x2f0(%rbp), %rdi
callq 0x3c400
movb %al, -0x2f1(%rbp)
jmp 0x29a41
movb -0x2f1(%rbp), %al
testb $0x1, %al
jne 0x29a4d
jmp 0x29ac4
testb $0x1, -0x1e1(%rbp)
je 0x29a6a
movq -0x8(%rbp), %rdi
leaq 0x2f250(%rip), %rsi     # 0x58cb1
callq 0x95e0
jmp 0x29a68
jmp 0x29a71
movb $0x1, -0x1e1(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x308(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3b990
movq %rax, -0x300(%rbp)
jmp 0x29a8e
movq -0x10(%rbp), %rdi
movl -0x1e8(%rbp), %esi
callq 0x204e0
movq %rax, -0x310(%rbp)
jmp 0x29aa6
movq -0x310(%rbp), %rdx
movq -0x300(%rbp), %rsi
movq -0x308(%rbp), %rdi
callq 0x27e90
jmp 0x29ac2
jmp 0x29ac4
jmp 0x29ac6
movl -0x1e8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e8(%rbp)
jmp 0x299f0
movq -0x8(%rbp), %rdi
leaq 0x2eea6(%rip), %rsi     # 0x5898b
callq 0x95e0
movq %rax, -0x318(%rbp)
jmp 0x29af3
movq -0x318(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x9550
movq %rax, -0x320(%rbp)
jmp 0x29b0c
movq -0x320(%rbp), %rdi
leaq 0x2f1ae(%rip), %rsi     # 0x58cc8
callq 0x95e0
movq %rax, -0x328(%rbp)
jmp 0x29b28
leaq -0x208(%rbp), %rdi
movl $0x4, %esi
callq 0x28ed0
jmp 0x29b3b
movq -0x328(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x9550
movq %rax, -0x330(%rbp)
jmp 0x29b57
movq -0x330(%rbp), %rdi
leaq 0x2f161(%rip), %rsi     # 0x58cc6
callq 0x95e0
jmp 0x29b6c
leaq -0x208(%rbp), %rdi
callq 0x9db8
leaq -0x68(%rbp), %rdi
callq 0x9db8
leaq -0x30(%rbp), %rdi
callq 0x9db8
addq $0x330, %rsp            # imm = 0x330
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x9db8
leaq -0x68(%rbp), %rdi
callq 0x9db8
leaq -0x30(%rbp), %rdi
callq 0x9db8
movq -0x40(%rbp), %rdi
callq 0x9c40
nopw %cs:(%rax,%rax)