// File: /workspace/github_cpp_makefile_star2_O2/ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::XmlUnitTestResultPrinter::OutputXmlTestInfo(std::ostream*, char const*, testing::TestInfo const&)
void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream,
                                                 const char* test_case_name,
                                                 const TestInfo& test_info) {
  const TestResult& result = *test_info.result();
  const std::string kTestcase = "testcase";

  if (test_info.is_in_another_shard()) {
    return;
  }

  *stream << "    <testcase";
  OutputXmlAttribute(stream, kTestcase, "name", test_info.name());

  if (test_info.value_param() != NULL) {
    OutputXmlAttribute(stream, kTestcase, "value_param",
                       test_info.value_param());
  }
  if (test_info.type_param() != NULL) {
    OutputXmlAttribute(stream, kTestcase, "type_param", test_info.type_param());
  }
  if (GTEST_FLAG(list_tests)) {
    OutputXmlAttribute(stream, kTestcase, "file", test_info.file());
    OutputXmlAttribute(stream, kTestcase, "line",
                       StreamableToString(test_info.line()));
    *stream << " />\n";
    return;
  }

  OutputXmlAttribute(stream, kTestcase, "status",
                     test_info.should_run() ? "run" : "notrun");
  OutputXmlAttribute(stream, kTestcase, "time",
                     FormatTimeInMillisAsSeconds(result.elapsed_time()));
  OutputXmlAttribute(stream, kTestcase, "classname", test_case_name);

  int failures = 0;
  for (int i = 0; i < result.total_part_count(); ++i) {
    const TestPartResult& part = result.GetTestPartResult(i);
    if (part.failed()) {
      if (++failures == 1) {
        *stream << ">\n";
      }
      const std::string location =
          internal::FormatCompilerIndependentFileLocation(part.file_name(),
                                                          part.line_number());
      const std::string summary = location + "\n" + part.summary();
      *stream << "      <failure message=\""
              << EscapeXmlAttribute(summary.c_str())
              << "\" type=\"\">";
      const std::string detail = location + "\n" + part.message();
      OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str());
      *stream << "</failure>\n";
    }
  }

  if (failures == 0 && result.test_property_count() == 0) {
    *stream << " />\n";
  } else {
    if (failures == 0) {
      *stream << ">\n";
    }
    OutputXmlTestProperties(stream, result);
    *stream << "    </testcase>\n";
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x14890(%rip), %rsi     # 0x2a585
leaq 0xa0(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0xb770
cmpb $0x0, 0x83(%r14)
jne 0x1623b
leaq 0x14864(%rip), %rsi     # 0x2a580
movq %rbx, %rdi
callq 0x8460
leaq 0x148a1(%rip), %rsi     # 0x2a5cc
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xb770
movq 0x20(%r14), %rsi
movq %rsp, %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0x15b6e
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x15de7
cmpq $0x0, (%rax)
je 0x15de7
leaq 0x14800(%rip), %rsi     # 0x2a58e
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xb770
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x15dae
movq (%rax), %rsi
jmp 0x15db0
xorl %esi, %esi
movq %rsp, %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0x15b6e
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
movq 0x40(%r14), %rax
testq %rax, %rax
je 0x15e56
cmpq $0x0, (%rax)
je 0x15e56
leaq 0x1479d(%rip), %rsi     # 0x2a59a
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xb770
movq 0x40(%r14), %rax
testq %rax, %rax
je 0x15e1d
movq (%rax), %rsi
jmp 0x15e1f
xorl %esi, %esi
movq %rsp, %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0x15b6e
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
cmpb $0x1, 0x2995c(%rip)     # 0x3f7b9
jne 0x15f21
leaq 0x1473b(%rip), %rsi     # 0x2a5a5
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xb770
movq 0x50(%r14), %rsi
movq %rsp, %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0x15b6e
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
leaq 0x146ec(%rip), %rsi     # 0x2a5aa
leaq 0x20(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
movl 0x70(%r14), %eax
leaq 0x80(%rsp), %rsi
movl %eax, (%rsi)
movq %rsp, %rdi
callq 0x20c47
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0x15b6e
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
leaq 0x1469b(%rip), %rsi     # 0x2a5af
movq %rbx, %rdi
callq 0x8460
jmp 0x1623b
leaq 0x1468c(%rip), %rsi     # 0x2a5b4
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xb770
leaq 0x1467d(%rip), %rax     # 0x2a5be
leaq 0x14673(%rip), %rsi     # 0x2a5bb
cmpb $0x0, 0x80(%r14)
cmovneq %rax, %rsi
movq %rsp, %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0x15b6e
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
leaq 0x14630(%rip), %rsi     # 0x2a5c2
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xb770
movq 0x100(%r14), %rsi
movq %rsp, %rdi
callq 0x156cc
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0x15b6e
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
leaq 0x145e3(%rip), %rsi     # 0x2a5c7
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xb770
movq %rsp, %rdi
leaq 0x58(%rsp), %rdx
movq %r15, %rsi
callq 0xb770
leaq 0xa0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rsp, %rcx
movq %rbx, 0x48(%rsp)
movq %rbx, %rdi
callq 0x15b6e
leaq 0x90(%r14), %rax
movq %rax, 0x78(%rsp)
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %r13
movq %r13, %rdi
callq 0x8aa8
movl $0x0, 0x40(%rsp)
leaq 0x80(%rsp), %r12
xorl %esi, %esi
movq %r14, 0xc0(%rsp)
movq 0xd0(%r14), %rax
subq 0xc8(%r14), %rax
cqto
pushq $0x70
popq %rcx
idivq %rcx
cmpl %eax, %esi
jge 0x161ee
movq 0x78(%rsp), %rdi
movl %esi, 0x54(%rsp)
callq 0x1208a
movq %rax, %r15
cmpl $0x0, (%rax)
je 0x161e3
cmpl $0x0, 0x40(%rsp)
jne 0x160ae
movq 0x48(%rsp), %rdi
leaq 0x14508(%rip), %rsi     # 0x2a5b1
callq 0x8460
movq 0x10(%r15), %rsi
testq %rsi, %rsi
je 0x160bb
movq 0x8(%r15), %rsi
movl 0x28(%r15), %edx
movq %r13, %rdi
callq 0x1631f
movq %r12, %rdi
movq %r13, %rbp
movq %r13, %rsi
leaq 0x1433f(%rip), %rdx     # 0x2a416
callq 0x1f35e
movq 0x30(%r15), %rdx
movq %rsp, %rdi
movq %r12, %rsi
callq 0x1f33f
movq %r12, %rbx
movq %r12, %rdi
callq 0x8aa8
movq 0x48(%rsp), %rdi
leaq 0x144cf(%rip), %rsi     # 0x2a5d1
callq 0x8460
movq %rax, %r14
movq (%rsp), %rsi
leaq 0x58(%rsp), %r13
movq %r13, %rdi
leaq 0x47(%rsp), %rdx
callq 0xb770
movq %rbx, %rdi
movq %r13, %rsi
callq 0x20ca6
movq %r14, %rdi
movq %rbx, %rsi
callq 0x8410
movq %rbx, %r12
movq %rax, %rdi
leaq 0x144a7(%rip), %rsi     # 0x2a5ea
callq 0x8460
movq %r12, %rdi
callq 0x8aa8
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x8aa8
movq %r14, %rdi
movq %rbp, %rsi
leaq 0x142ac(%rip), %rdx     # 0x2a416
callq 0x1f35e
movq 0x50(%r15), %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0x1f33f
movq %r14, %rdi
callq 0x8aa8
movq %r14, %rdi
movq %r12, %rsi
callq 0x15644
movq 0x58(%rsp), %rsi
movq 0x48(%rsp), %r14
movq %r14, %rdi
callq 0x15aea
leaq 0x58(%rsp), %rdi
callq 0x8aa8
movq %r14, %rdi
leaq 0x1443e(%rip), %rsi     # 0x2a5f5
callq 0x8460
incl 0x40(%rsp)
movq %r12, %rdi
callq 0x8aa8
movq %rsp, %rdi
callq 0x8aa8
movq %rbp, %r13
movq %rbp, %rdi
callq 0x8aa8
movq 0xc0(%rsp), %r14
movl 0x54(%rsp), %esi
incl %esi
jmp 0x1605e
cmpl $0x0, 0x40(%rsp)
movq 0x48(%rsp), %rbx
jne 0x1621f
movq 0xe8(%r14), %rax
subq 0xe0(%r14), %rax
shrq $0x6, %rax
testl %eax, %eax
je 0x1625a
leaq 0x1439a(%rip), %rsi     # 0x2a5b1
movq %rbx, %rdi
callq 0x8460
movq %rbx, %rdi
movq 0x78(%rsp), %rsi
callq 0x163f2
leaq 0x143ce(%rip), %rsi     # 0x2a601
movq %rbx, %rdi
callq 0x8460
leaq 0xa0(%rsp), %rdi
callq 0x8aa8
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1434e(%rip), %rsi     # 0x2a5af
jmp 0x16233
jmp 0x162cd
jmp 0x162d4
jmp 0x162cd
jmp 0x162d9
jmp 0x162d4
jmp 0x162d9
jmp 0x162cd
jmp 0x162d4
jmp 0x162d9
jmp 0x162cd
jmp 0x162cd
jmp 0x162d4
jmp 0x162d4
jmp 0x162d9
jmp 0x162d9
jmp 0x162cd
jmp 0x162cd
jmp 0x162d4
jmp 0x162d4
jmp 0x162d9
jmp 0x162d9
jmp 0x162cd
jmp 0x162d4
jmp 0x162d9
jmp 0x162d9
jmp 0x162d9
jmp 0x162cd
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
jmp 0x162fb
jmp 0x162b9
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x8aa8
jmp 0x162bc
jmp 0x162c6
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
jmp 0x162f3
movq %rax, %rbx
jmp 0x162ee
jmp 0x162cd
movq %rax, %rbx
jmp 0x162f8
jmp 0x162d9
movq %rax, %rbx
jmp 0x16300
movq %rax, %rbx
jmp 0x1630a
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x8aa8
leaq 0x58(%rsp), %rdi
callq 0x8aa8
movq %rsp, %rdi
callq 0x8aa8
leaq 0x20(%rsp), %rdi
callq 0x8aa8
leaq 0xa0(%rsp), %rdi
callq 0x8aa8
movq %rbx, %rdi
callq 0x8980