// File: ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonUnitTest(std::ostream*, testing::UnitTest const&)
void JsonUnitTestResultPrinter::PrintJsonUnitTest(std::ostream* stream,
                                                  const UnitTest& unit_test) {
  const std::string kTestsuites = "testsuites";
  const std::string kIndent = Indent(2);
  *stream << "{\n";

  OutputJsonKey(stream, kTestsuites, "tests", unit_test.reportable_test_count(),
                kIndent);
  OutputJsonKey(stream, kTestsuites, "failures", unit_test.failed_test_count(),
                kIndent);
  OutputJsonKey(stream, kTestsuites, "disabled",
                unit_test.reportable_disabled_test_count(), kIndent);
  OutputJsonKey(stream, kTestsuites, "errors", 0, kIndent);
  if (GTEST_FLAG(shuffle)) {
    OutputJsonKey(stream, kTestsuites, "random_seed", unit_test.random_seed(),
                  kIndent);
  }
  OutputJsonKey(stream, kTestsuites, "timestamp",
                FormatEpochTimeInMillisAsRFC3339(unit_test.start_timestamp()),
                kIndent);
  OutputJsonKey(stream, kTestsuites, "time",
                FormatTimeInMillisAsDuration(unit_test.elapsed_time()), kIndent,
                false);

  *stream << TestPropertiesAsJson(unit_test.ad_hoc_test_result(), kIndent)
          << ",\n";

  OutputJsonKey(stream, kTestsuites, "name", "AllTests", kIndent);
  *stream << kIndent << "\"" << kTestsuites << "\": [\n";

  bool comma = false;
  for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
    if (unit_test.GetTestCase(i)->reportable_test_count() > 0) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      PrintJsonTestCase(stream, *unit_test.GetTestCase(i));
    }
  }

  *stream << "\n" << kIndent << "]\n" << "}\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x360, %rsp            # imm = 0x360
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x238(%rbp)
callq 0x9c50
movq -0x238(%rbp), %rdx
leaq 0x31ef2(%rip), %rsi     # 0x58bc3
leaq -0x30(%rbp), %rdi
callq 0xf1d0
jmp 0x26cdc
leaq -0x31(%rbp), %rdi
callq 0x96d0
leaq -0x68(%rbp), %rdi
movl $0x2, %esi
callq 0x28ed0
jmp 0x26cf5
movq -0x8(%rbp), %rdi
leaq 0x31f9c(%rip), %rsi     # 0x58c9c
callq 0x95e0
jmp 0x26d07
movq -0x8(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x89(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x9c50
movq -0x240(%rbp), %rdx
leaq 0x31373(%rip), %rsi     # 0x580a6
leaq -0x88(%rbp), %rdi
callq 0xf1d0
jmp 0x26d41
movq -0x10(%rbp), %rdi
callq 0x269e0
movl %eax, -0x24c(%rbp)
jmp 0x26d52
movl -0x24c(%rbp), %ecx
movq -0x248(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x88(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x26d7b
leaq -0x88(%rbp), %rdi
callq 0x9db8
leaq -0x89(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x260(%rbp)
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x9c50
movq -0x258(%rbp), %rdx
leaq 0x32931(%rip), %rsi     # 0x596f0
leaq -0xb0(%rbp), %rdi
callq 0xf1d0
jmp 0x26dcd
movq -0x10(%rbp), %rdi
callq 0x21e10
movl %eax, -0x264(%rbp)
jmp 0x26dde
movl -0x264(%rbp), %ecx
movq -0x260(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x26e07
leaq -0xb0(%rbp), %rdi
callq 0x9db8
leaq -0xb1(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x278(%rbp)
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0x9c50
movq -0x270(%rbp), %rdx
leaq 0x31d63(%rip), %rsi     # 0x58bae
leaq -0xd8(%rbp), %rdi
callq 0xf1d0
jmp 0x26e59
movq -0x10(%rbp), %rdi
callq 0x222a0
movl %eax, -0x27c(%rbp)
jmp 0x26e6a
movl -0x27c(%rbp), %ecx
movq -0x278(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x26e93
leaq -0xd8(%rbp), %rdi
callq 0x9db8
leaq -0xd9(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x290(%rbp)
leaq -0x101(%rbp), %rdi
movq %rdi, -0x288(%rbp)
callq 0x9c50
movq -0x288(%rbp), %rdx
leaq 0x31ce0(%rip), %rsi     # 0x58bb7
leaq -0x100(%rbp), %rdi
callq 0xf1d0
jmp 0x26ee5
movq -0x290(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x100(%rbp), %rdx
xorl %ecx, %ecx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x26f0a
leaq -0x100(%rbp), %rdi
callq 0x9db8
leaq -0x101(%rbp), %rdi
callq 0x96d0
testb $0x1, 0x55a4c(%rip)     # 0x7c975
je 0x2710f
movq -0x8(%rbp), %rax
movq %rax, -0x2a0(%rbp)
leaq -0x129(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x9c50
movq -0x298(%rbp), %rdx
leaq 0x311bb(%rip), %rsi     # 0x58116
leaq -0x128(%rbp), %rdi
callq 0xf1d0
jmp 0x26f69
movq -0x10(%rbp), %rdi
callq 0x214f0
movl %eax, -0x2a4(%rbp)
jmp 0x26f7a
movl -0x2a4(%rbp), %ecx
movq -0x2a0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x128(%rbp), %rdx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x27bd0
jmp 0x26fa3
leaq -0x128(%rbp), %rdi
callq 0x9db8
leaq -0x129(%rbp), %rdi
callq 0x96d0
jmp 0x2710f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x96d0
jmp 0x276a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2769b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27022
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x9db8
leaq -0x89(%rbp), %rdi
callq 0x96d0
jmp 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27059
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x9db8
leaq -0xb1(%rbp), %rdi
callq 0x96d0
jmp 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27090
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x9db8
leaq -0xd9(%rbp), %rdi
callq 0x96d0
jmp 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x270c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x9db8
leaq -0x101(%rbp), %rdi
callq 0x96d0
jmp 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x270fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x9db8
leaq -0x129(%rbp), %rdi
callq 0x96d0
jmp 0x27692
movq -0x8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
leaq -0x151(%rbp), %rdi
movq %rdi, -0x2b0(%rbp)
callq 0x9c50
movq -0x2b0(%rbp), %rdx
leaq 0x31abb(%rip), %rsi     # 0x58bf6
leaq -0x150(%rbp), %rdi
callq 0xf1d0
jmp 0x27149
movq -0x10(%rbp), %rdi
callq 0x26a10
movq %rax, -0x2c0(%rbp)
jmp 0x2715b
movq -0x2c0(%rbp), %rsi
leaq -0x178(%rbp), %rdi
callq 0x29bd0
jmp 0x27170
movq -0x2b8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x150(%rbp), %rdx
leaq -0x178(%rbp), %rcx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x278f0
jmp 0x2719a
leaq -0x178(%rbp), %rdi
callq 0x9db8
leaq -0x150(%rbp), %rdi
callq 0x9db8
leaq -0x151(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x2d0(%rbp)
leaq -0x199(%rbp), %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x9c50
movq -0x2c8(%rbp), %rdx
leaq 0x30f1c(%rip), %rsi     # 0x58106
leaq -0x198(%rbp), %rdi
callq 0xf1d0
jmp 0x271f8
movq -0x10(%rbp), %rdi
callq 0x22210
movq %rax, -0x2d8(%rbp)
jmp 0x2720a
movq -0x2d8(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x28f50
jmp 0x2721f
movq -0x2d0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x198(%rbp), %rdx
leaq -0x1c0(%rbp), %rcx
leaq -0x68(%rbp), %r8
xorl %r9d, %r9d
callq 0x278f0
jmp 0x27246
leaq -0x1c0(%rbp), %rdi
callq 0x9db8
leaq -0x198(%rbp), %rdi
callq 0x9db8
leaq -0x199(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rax
movq %rax, -0x2e8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x26a40
movq %rax, -0x2e0(%rbp)
jmp 0x27287
movq -0x2e0(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0x29020
jmp 0x272a0
movq -0x2e8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x9550
movq %rax, -0x2f0(%rbp)
jmp 0x272bc
movq -0x2f0(%rbp), %rdi
leaq 0x319e7(%rip), %rsi     # 0x58cb1
callq 0x95e0
jmp 0x272d1
leaq -0x1e0(%rbp), %rdi
callq 0x9db8
movq -0x8(%rbp), %rax
movq %rax, -0x300(%rbp)
leaq -0x201(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
callq 0x9c50
movq -0x2f8(%rbp), %rdx
leaq 0x31851(%rip), %rsi     # 0x58b5a
leaq -0x200(%rbp), %rdi
callq 0xf1d0
jmp 0x27317
leaq -0x229(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x9c50
movq -0x308(%rbp), %rdx
leaq 0x318c8(%rip), %rsi     # 0x58c00
leaq -0x228(%rbp), %rdi
callq 0xf1d0
jmp 0x27346
movq -0x300(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x200(%rbp), %rdx
leaq -0x228(%rbp), %rcx
leaq -0x68(%rbp), %r8
movl $0x1, %r9d
callq 0x278f0
jmp 0x27370
leaq -0x228(%rbp), %rdi
callq 0x9db8
leaq -0x229(%rbp), %rdi
callq 0x96d0
leaq -0x200(%rbp), %rdi
callq 0x9db8
leaq -0x201(%rbp), %rdi
callq 0x96d0
movq -0x8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x9550
movq %rax, -0x310(%rbp)
jmp 0x273b6
movq -0x310(%rbp), %rdi
leaq 0x318ea(%rip), %rsi     # 0x58cae
callq 0x95e0
movq %rax, -0x318(%rbp)
jmp 0x273d2
movq -0x318(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x9550
movq %rax, -0x320(%rbp)
jmp 0x273eb
movq -0x320(%rbp), %rdi
leaq 0x3189b(%rip), %rsi     # 0x58c94
callq 0x95e0
jmp 0x27400
movb $0x0, -0x22a(%rbp)
movl $0x0, -0x230(%rbp)
movl -0x230(%rbp), %eax
movl %eax, -0x328(%rbp)
movq -0x10(%rbp), %rdi
callq 0x21e40
movl %eax, -0x324(%rbp)
jmp 0x2742e
movl -0x328(%rbp), %eax
movl -0x324(%rbp), %ecx
cmpl %ecx, %eax
jge 0x27614
movq -0x10(%rbp), %rdi
movl -0x230(%rbp), %esi
callq 0x21e70
movq %rax, -0x330(%rbp)
jmp 0x2745a
movq -0x330(%rbp), %rdi
callq 0x18cf0
movl %eax, -0x334(%rbp)
jmp 0x2746e
movl -0x334(%rbp), %eax
cmpl $0x0, %eax
jle 0x275fe
testb $0x1, -0x22a(%rbp)
je 0x275bd
movq -0x8(%rbp), %rdi
leaq 0x3181c(%rip), %rsi     # 0x58cb1
callq 0x95e0
jmp 0x2749c
jmp 0x275c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x274e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x274d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x9db8
leaq -0x150(%rbp), %rdi
callq 0x9db8
leaq -0x151(%rbp), %rdi
callq 0x96d0
jmp 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27532
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27526
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 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x9db8
jmp 0x27692
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x275ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27594
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x9db8
leaq -0x229(%rbp), %rdi
callq 0x96d0
leaq -0x200(%rbp), %rdi
callq 0x9db8
leaq -0x201(%rbp), %rdi
callq 0x96d0
jmp 0x27692
movb $0x1, -0x22a(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x348(%rbp)
movq -0x10(%rbp), %rdi
movl -0x230(%rbp), %esi
callq 0x21e70
movq %rax, -0x340(%rbp)
jmp 0x275e7
movq -0x340(%rbp), %rsi
movq -0x348(%rbp), %rdi
callq 0x292a0
jmp 0x275fc
jmp 0x275fe
jmp 0x27600
movl -0x230(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x230(%rbp)
jmp 0x27411
movq -0x8(%rbp), %rdi
leaq 0x3136c(%rip), %rsi     # 0x5898b
callq 0x95e0
movq %rax, -0x350(%rbp)
jmp 0x2762d
movq -0x350(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x9550
movq %rax, -0x358(%rbp)
jmp 0x27646
movq -0x358(%rbp), %rdi
leaq 0x31674(%rip), %rsi     # 0x58cc8
callq 0x95e0
movq %rax, -0x360(%rbp)
jmp 0x27662
movq -0x360(%rbp), %rdi
leaq 0x3165b(%rip), %rsi     # 0x58ccb
callq 0x95e0
jmp 0x27677
leaq -0x68(%rbp), %rdi
callq 0x9db8
leaq -0x30(%rbp), %rdi
callq 0x9db8
addq $0x360, %rsp            # imm = 0x360
popq %rbp
retq
leaq -0x68(%rbp), %rdi
callq 0x9db8
leaq -0x30(%rbp), %rdi
callq 0x9db8
movq -0x40(%rbp), %rdi
callq 0x9c40
nopl (%rax)