// File: /workspace/github_cpp_makefile_star2_O1/halfflat[P]tinyopt/test/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_GET(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_suite_count(); ++i) {
    if (unit_test.GetTestSuite(i)->reportable_test_count() > 0) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      PrintJsonTestSuite(stream, *unit_test.GetTestSuite(i));
    }
  }

  // If there was a test failure outside of one of the test suites (like in a
  // test environment) include that in the output.
  if (unit_test.ad_hoc_test_result().Failed()) {
    if (comma) {
      *stream << ",\n";
    }
    OutputJsonTestSuiteForTestResult(stream, unit_test.ad_hoc_test_result());
  }

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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1a64b(%rip), %rsi     # 0x74545
leaq 0x1a64e(%rip), %rdx     # 0x7454f
leaq 0x68(%rsp), %rdi
callq 0x15892
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x28(%rsp), %rdi
movl $0x2, %esi
movl $0x20, %edx
callq 0xd630
leaq 0x1a71f(%rip), %rsi     # 0x7464e
movl $0x2, %edx
movq %rbx, %rdi
callq 0xd600
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1966c(%rip), %rsi     # 0x735b8
leaq 0x1966a(%rip), %rdx     # 0x735bd
leaq 0x8(%rsp), %rdi
callq 0x15892
movq 0x40(%r14), %rdi
callq 0x4e0dc
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5a960
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x59f9c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1af40(%rip), %rsi     # 0x74eeb
leaq 0x1af41(%rip), %rdx     # 0x74ef3
callq 0x15892
movq 0x40(%r14), %rdi
callq 0x4df04
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5a960
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x59ff6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1a445(%rip), %rsi     # 0x7444a
leaq 0x1a446(%rip), %rdx     # 0x74452
callq 0x15892
movq 0x40(%r14), %rdi
callq 0x4df9e
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl %eax, %ecx
movl $0x1, %r9d
callq 0x5a960
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a050
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1a3fc(%rip), %rsi     # 0x7445b
leaq 0x1a3fb(%rip), %rdx     # 0x74461
callq 0x15892
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x5a960
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a0a1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
cmpb $0x1, 0x3c886(%rip)     # 0x9692e
jne 0x5a103
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x19575(%rip), %rsi     # 0x7362e
leaq 0x19579(%rip), %rdx     # 0x73639
callq 0x15892
movq 0x40(%r14), %rax
movl 0x21c(%rax), %ecx
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5a960
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a103
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1a350(%rip), %rsi     # 0x74462
leaq 0x1a352(%rip), %rdx     # 0x7446b
callq 0x15892
movq 0x40(%r14), %rax
movq 0x228(%rax), %rsi
leaq 0x48(%rsp), %rdi
callq 0x5bb31
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5a758
leaq 0x58(%rsp), %rbp
movq -0x10(%rbp), %rdi
cmpq %rbp, %rdi
je 0x5a170
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a187
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x19488(%rip), %rsi     # 0x7361e
leaq 0x19485(%rip), %rdx     # 0x73622
callq 0x15892
movq 0x40(%r14), %rax
movq 0x230(%rax), %rsi
leaq 0x48(%rsp), %rdi
callq 0x5ba90
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x5a758
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5a1ed
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a204
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movl $0x178, %esi            # imm = 0x178
addq 0x40(%r14), %rsi
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x5c69c
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
leaq 0x1a42e(%rip), %rsi     # 0x74663
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a259
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1a22f(%rip), %rsi     # 0x74497
leaq 0x1a22c(%rip), %rdx     # 0x7449b
callq 0x15892
leaq 0x48(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x1a2f5(%rip), %rsi     # 0x74578
leaq 0x1a2f6(%rip), %rdx     # 0x74580
callq 0x15892
leaq 0x68(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
movl $0x1, %r9d
callq 0x5a758
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5a2c8
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a2df
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %r15
leaq 0x1a365(%rip), %rsi     # 0x74660
movl $0x1, %edx
movq %rax, %rdi
callq 0xd600
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq %r15, %rdi
callq 0xd600
leaq 0x1a2fe(%rip), %rsi     # 0x7461f
movl $0x5, %edx
movq %rax, %rdi
callq 0xd600
movq 0x40(%r14), %rdi
movq 0xb8(%rdi), %rax
movq 0xc0(%rdi), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
xorl %ebp, %ebp
testl %ecx, %ecx
jle 0x5a3ff
xorl %r12d, %r12d
xorl %r13d, %r13d
movq (%rax,%r12,8), %rcx
movq 0x30(%rcx), %rax
movq 0x38(%rcx), %rcx
cmpq %rcx, %rax
je 0x5a3ca
xorl %edx, %edx
movq (%rax), %rsi
movzbl 0x83(%rsi), %edi
xorl $0x1, %edi
cmpb $0x0, 0x82(%rsi)
cmovel %ebp, %edi
addl %edi, %edx
addq $0x8, %rax
cmpq %rcx, %rax
jne 0x5a36a
testl %edx, %edx
je 0x5a3ca
movb $0x1, %r15b
testb $0x1, %r13b
je 0x5a3b0
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x1a2bb(%rip), %rsi     # 0x74663
callq 0xd600
movl %r13d, %r15d
movq 0x40(%r14), %rax
movq 0xb8(%rax), %rax
movq (%rax,%r12,8), %rsi
movq %rbx, %rdi
callq 0x5d574
movl %r15d, %r13d
incq %r12
movq 0x40(%r14), %rdi
movq 0xb8(%rdi), %rax
movq 0xc0(%rdi), %rcx
subq %rax, %rcx
shrq $0x3, %rcx
movslq %ecx, %rcx
cmpq %rcx, %r12
jl 0x5a357
movl %r13d, %ebp
leaq 0x78(%rsp), %r12
leaq 0x38(%rsp), %r13
addq $0x178, %rdi            # imm = 0x178
callq 0x51850
testb %al, %al
je 0x5a43a
testb $0x1, %bpl
je 0x5a429
leaq 0x1a247(%rip), %rsi     # 0x74663
movl $0x2, %edx
movq %rbx, %rdi
callq 0xd600
movl $0x178, %esi            # imm = 0x178
addq 0x40(%r14), %rsi
movq %rbx, %rdi
callq 0x5ab52
leaq 0x16ca6(%rip), %rsi     # 0x710e7
movl $0x1, %edx
movq %rbx, %rdi
callq 0xd600
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0xd600
movq %rax, %rbx
leaq 0x1a1c5(%rip), %rsi     # 0x7462f
movl $0x2, %edx
movq %rax, %rdi
callq 0xd600
leaq 0x1a1fc(%rip), %rsi     # 0x7467a
movl $0x2, %edx
movq %rbx, %rdi
callq 0xd600
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a4a2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x5a4b9
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5a523
jmp 0x5a543
jmp 0x5a4d7
jmp 0x5a523
jmp 0x5a543
jmp 0x5a543
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x5a4fb
jmp 0x5a526
jmp 0x5a523
jmp 0x5a543
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a526
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5a526
jmp 0x5a523
jmp 0x5a543
jmp 0x5a523
jmp 0x5a543
jmp 0x5a523
jmp 0x5a543
jmp 0x5a543
jmp 0x5a523
jmp 0x5a543
movq %rax, %rbx
jmp 0x5a562
jmp 0x5a523
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a546
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xd530
jmp 0x5a546
jmp 0x5a543
jmp 0x5a543
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5a562
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xd530
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x5a57e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xd530
movq %rbx, %rdi
callq 0xda70