; LLVM IR from ravireddy07/cpp-book :: src/Leetcode (399_evaluate-division)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%class.Solution = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator" = type { i8 }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.5" = type { ptr, i64 }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.11" = type { ptr, i64 }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.12" = type { i8 }
%"class.std::allocator.8" = type { i8 }
%"class.std::allocator.2" = type { i8 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca %class.Solution, align 1
  %3 = alloca %"class.std::vector", align 8
  %4 = alloca %"class.std::initializer_list", align 8
  %5 = alloca [2 x double], align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::vector", align 8
  %10 = alloca %"class.std::vector.0", align 8
  %11 = alloca %"class.std::initializer_list.5", align 8
  %12 = alloca [2 x %"class.std::vector.6"], align 8
  %13 = alloca ptr, align 8
  %14 = alloca %"class.std::initializer_list.11", align 8
  %15 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"class.std::allocator.12", align 1
  %18 = alloca %"class.std::allocator.12", align 1
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::allocator.8", align 1
  %21 = alloca %"class.std::initializer_list.11", align 8
  %22 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.std::allocator.12", align 1
  %25 = alloca %"class.std::allocator.12", align 1
  %26 = alloca i1, align 1
  %27 = alloca %"class.std::allocator.8", align 1
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::allocator.2", align 1
  %30 = alloca %"class.std::vector", align 8
  %31 = alloca %"class.std::vector.0", align 8
  %32 = alloca %"class.std::initializer_list.5", align 8
  %33 = alloca [5 x %"class.std::vector.6"], align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"class.std::initializer_list.11", align 8
  %36 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %37 = alloca ptr, align 8
  %38 = alloca %"class.std::allocator.12", align 1
  %39 = alloca %"class.std::allocator.12", align 1
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::allocator.8", align 1
  %42 = alloca %"class.std::initializer_list.11", align 8
  %43 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.std::allocator.12", align 1
  %46 = alloca %"class.std::allocator.12", align 1
  %47 = alloca i1, align 1
  %48 = alloca %"class.std::allocator.8", align 1
  %49 = alloca %"class.std::initializer_list.11", align 8
  %50 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %51 = alloca ptr, align 8
  %52 = alloca %"class.std::allocator.12", align 1
  %53 = alloca %"class.std::allocator.12", align 1
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::allocator.8", align 1
  %56 = alloca %"class.std::initializer_list.11", align 8
  %57 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %58 = alloca ptr, align 8
  %59 = alloca %"class.std::allocator.12", align 1
  %60 = alloca %"class.std::allocator.12", align 1
  %61 = alloca i1, align 1
  %62 = alloca %"class.std::allocator.8", align 1
  %63 = alloca %"class.std::initializer_list.11", align 8
  %64 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %65 = alloca ptr, align 8
  %66 = alloca %"class.std::allocator.12", align 1
  %67 = alloca %"class.std::allocator.12", align 1
  %68 = alloca i1, align 1
  %69 = alloca %"class.std::allocator.8", align 1
  %70 = alloca i1, align 1
  %71 = alloca %"class.std::allocator.2", align 1
  %72 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %2) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %5) #5
  store double 2.000000e+00, ptr %5, align 8, !tbaa !5
  %73 = getelementptr inbounds double, ptr %5, i64 1
  store double 3.000000e+00, ptr %73, align 8, !tbaa !5
  %74 = getelementptr inbounds %"class.std::initializer_list", ptr %4, i32 0, i32 0
  store ptr %5, ptr %74, align 8, !tbaa !9
  %75 = getelementptr inbounds %"class.std::initializer_list", ptr %4, i32 0, i32 1
  store i64 2, ptr %75, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #5
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  %76 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
  %77 = load ptr, ptr %76, align 8
  %78 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
  %79 = load i64, ptr %78, align 8
  invoke void @_ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr %77, i64 %79, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %80 unwind label %243

80:                                               ; preds = %0
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %5) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 48, ptr %12) #5
  store i1 true, ptr %28, align 1
  store ptr %12, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %15) #5
  store i1 true, ptr %19, align 1
  store ptr %15, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %81 unwind label %247

81:                                               ; preds = %80
  %82 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %15, i64 1
  store ptr %82, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %83 unwind label %251

83:                                               ; preds = %81
  store i1 false, ptr %19, align 1
  %84 = getelementptr inbounds %"class.std::initializer_list.11", ptr %14, i32 0, i32 0
  store ptr %15, ptr %84, align 8, !tbaa !14
  %85 = getelementptr inbounds %"class.std::initializer_list.11", ptr %14, i32 0, i32 1
  store i64 2, ptr %85, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  %86 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
  %87 = load ptr, ptr %86, align 8
  %88 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
  %89 = load i64, ptr %88, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr %87, i64 %89, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %90 unwind label %255

90:                                               ; preds = %83
  %91 = getelementptr inbounds %"class.std::vector.6", ptr %12, i64 1
  store ptr %91, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %22) #5
  store i1 true, ptr %26, align 1
  store ptr %22, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %92 unwind label %259

92:                                               ; preds = %90
  %93 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %22, i64 1
  store ptr %93, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %94 unwind label %263

94:                                               ; preds = %92
  store i1 false, ptr %26, align 1
  %95 = getelementptr inbounds %"class.std::initializer_list.11", ptr %21, i32 0, i32 0
  store ptr %22, ptr %95, align 8, !tbaa !14
  %96 = getelementptr inbounds %"class.std::initializer_list.11", ptr %21, i32 0, i32 1
  store i64 2, ptr %96, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  %97 = getelementptr inbounds { ptr, i64 }, ptr %21, i32 0, i32 0
  %98 = load ptr, ptr %97, align 8
  %99 = getelementptr inbounds { ptr, i64 }, ptr %21, i32 0, i32 1
  %100 = load i64, ptr %99, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %91, ptr %98, i64 %100, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %101 unwind label %267

101:                                              ; preds = %94
  store i1 false, ptr %28, align 1
  %102 = getelementptr inbounds %"class.std::initializer_list.5", ptr %11, i32 0, i32 0
  store ptr %12, ptr %102, align 8, !tbaa !17
  %103 = getelementptr inbounds %"class.std::initializer_list.5", ptr %11, i32 0, i32 1
  store i64 2, ptr %103, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #5
  call void @_ZNSaISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  %104 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 0
  %105 = load ptr, ptr %104, align 8
  %106 = getelementptr inbounds { ptr, i64 }, ptr %11, i32 0, i32 1
  %107 = load i64, ptr %106, align 8
  invoke void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EEC2ESt16initializer_listIS7_ERKS8_(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr %105, i64 %107, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %108 unwind label %271

108:                                              ; preds = %101
  invoke void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %109 unwind label %275

109:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 120, ptr %33) #5
  store i1 true, ptr %70, align 1
  store ptr %33, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %36) #5
  store i1 true, ptr %40, align 1
  store ptr %36, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %110 unwind label %279

110:                                              ; preds = %109
  %111 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %36, i64 1
  store ptr %111, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %112 unwind label %283

112:                                              ; preds = %110
  store i1 false, ptr %40, align 1
  %113 = getelementptr inbounds %"class.std::initializer_list.11", ptr %35, i32 0, i32 0
  store ptr %36, ptr %113, align 8, !tbaa !14
  %114 = getelementptr inbounds %"class.std::initializer_list.11", ptr %35, i32 0, i32 1
  store i64 2, ptr %114, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #5
  %115 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 0
  %116 = load ptr, ptr %115, align 8
  %117 = getelementptr inbounds { ptr, i64 }, ptr %35, i32 0, i32 1
  %118 = load i64, ptr %117, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr %116, i64 %118, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %119 unwind label %287

119:                                              ; preds = %112
  %120 = getelementptr inbounds %"class.std::vector.6", ptr %33, i64 1
  store ptr %120, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %43) #5
  store i1 true, ptr %47, align 1
  store ptr %43, ptr %44, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %121 unwind label %291

121:                                              ; preds = %119
  %122 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %43, i64 1
  store ptr %122, ptr %44, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %123 unwind label %295

123:                                              ; preds = %121
  store i1 false, ptr %47, align 1
  %124 = getelementptr inbounds %"class.std::initializer_list.11", ptr %42, i32 0, i32 0
  store ptr %43, ptr %124, align 8, !tbaa !14
  %125 = getelementptr inbounds %"class.std::initializer_list.11", ptr %42, i32 0, i32 1
  store i64 2, ptr %125, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #5
  %126 = getelementptr inbounds { ptr, i64 }, ptr %42, i32 0, i32 0
  %127 = load ptr, ptr %126, align 8
  %128 = getelementptr inbounds { ptr, i64 }, ptr %42, i32 0, i32 1
  %129 = load i64, ptr %128, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %120, ptr %127, i64 %129, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %130 unwind label %299

130:                                              ; preds = %123
  %131 = getelementptr inbounds %"class.std::vector.6", ptr %33, i64 2
  store ptr %131, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %50) #5
  store i1 true, ptr %54, align 1
  store ptr %50, ptr %51, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %132 unwind label %303

132:                                              ; preds = %130
  %133 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %50, i64 1
  store ptr %133, ptr %51, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %134 unwind label %307

134:                                              ; preds = %132
  store i1 false, ptr %54, align 1
  %135 = getelementptr inbounds %"class.std::initializer_list.11", ptr %49, i32 0, i32 0
  store ptr %50, ptr %135, align 8, !tbaa !14
  %136 = getelementptr inbounds %"class.std::initializer_list.11", ptr %49, i32 0, i32 1
  store i64 2, ptr %136, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #5
  %137 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 0
  %138 = load ptr, ptr %137, align 8
  %139 = getelementptr inbounds { ptr, i64 }, ptr %49, i32 0, i32 1
  %140 = load i64, ptr %139, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %131, ptr %138, i64 %140, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %141 unwind label %311

141:                                              ; preds = %134
  %142 = getelementptr inbounds %"class.std::vector.6", ptr %33, i64 3
  store ptr %142, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %57) #5
  store i1 true, ptr %61, align 1
  store ptr %57, ptr %58, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %143 unwind label %315

143:                                              ; preds = %141
  %144 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %57, i64 1
  store ptr %144, ptr %58, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %145 unwind label %319

145:                                              ; preds = %143
  store i1 false, ptr %61, align 1
  %146 = getelementptr inbounds %"class.std::initializer_list.11", ptr %56, i32 0, i32 0
  store ptr %57, ptr %146, align 8, !tbaa !14
  %147 = getelementptr inbounds %"class.std::initializer_list.11", ptr %56, i32 0, i32 1
  store i64 2, ptr %147, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #5
  %148 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 0
  %149 = load ptr, ptr %148, align 8
  %150 = getelementptr inbounds { ptr, i64 }, ptr %56, i32 0, i32 1
  %151 = load i64, ptr %150, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %142, ptr %149, i64 %151, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %152 unwind label %323

152:                                              ; preds = %145
  %153 = getelementptr inbounds %"class.std::vector.6", ptr %33, i64 4
  store ptr %153, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %64) #5
  store i1 true, ptr %68, align 1
  store ptr %64, ptr %65, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %154 unwind label %327

154:                                              ; preds = %152
  %155 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %64, i64 1
  store ptr %155, ptr %65, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %156 unwind label %331

156:                                              ; preds = %154
  store i1 false, ptr %68, align 1
  %157 = getelementptr inbounds %"class.std::initializer_list.11", ptr %63, i32 0, i32 0
  store ptr %64, ptr %157, align 8, !tbaa !14
  %158 = getelementptr inbounds %"class.std::initializer_list.11", ptr %63, i32 0, i32 1
  store i64 2, ptr %158, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #5
  %159 = getelementptr inbounds { ptr, i64 }, ptr %63, i32 0, i32 0
  %160 = load ptr, ptr %159, align 8
  %161 = getelementptr inbounds { ptr, i64 }, ptr %63, i32 0, i32 1
  %162 = load i64, ptr %161, align 8
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr %160, i64 %162, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %163 unwind label %335

163:                                              ; preds = %156
  store i1 false, ptr %70, align 1
  %164 = getelementptr inbounds %"class.std::initializer_list.5", ptr %32, i32 0, i32 0
  store ptr %33, ptr %164, align 8, !tbaa !17
  %165 = getelementptr inbounds %"class.std::initializer_list.5", ptr %32, i32 0, i32 1
  store i64 5, ptr %165, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #5
  call void @_ZNSaISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #5
  %166 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
  %167 = load ptr, ptr %166, align 8
  %168 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
  %169 = load i64, ptr %168, align 8
  invoke void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EEC2ESt16initializer_listIS7_ERKS8_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr %167, i64 %169, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %170 unwind label %339

170:                                              ; preds = %163
  invoke void @_ZN8Solution12calcEquationESt6vectorIS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EESaIS8_EES0_IdSaIdEESA_(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %9, ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef %10, ptr noundef %30, ptr noundef %31)
          to label %171 unwind label %343

171:                                              ; preds = %170
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #5
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #5
  %172 = getelementptr inbounds [5 x %"class.std::vector.6"], ptr %33, i32 0, i32 0
  %173 = getelementptr inbounds %"class.std::vector.6", ptr %172, i64 5
  br label %174

174:                                              ; preds = %174, %171
  %175 = phi ptr [ %173, %171 ], [ %176, %174 ]
  %176 = getelementptr inbounds %"class.std::vector.6", ptr %175, i64 -1
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %176) #5
  %177 = icmp eq ptr %176, %172
  br i1 %177, label %178, label %174

178:                                              ; preds = %174
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #5
  %179 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %64, i32 0, i32 0
  %180 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %179, i64 2
  br label %181

181:                                              ; preds = %181, %178
  %182 = phi ptr [ %180, %178 ], [ %183, %181 ]
  %183 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %182, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #5
  %184 = icmp eq ptr %183, %179
  br i1 %184, label %185, label %181

185:                                              ; preds = %181
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %64) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #5
  %186 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %57, i32 0, i32 0
  %187 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %186, i64 2
  br label %188

188:                                              ; preds = %188, %185
  %189 = phi ptr [ %187, %185 ], [ %190, %188 ]
  %190 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %189, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #5
  %191 = icmp eq ptr %190, %186
  br i1 %191, label %192, label %188

192:                                              ; preds = %188
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %57) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #5
  %193 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %50, i32 0, i32 0
  %194 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %193, i64 2
  br label %195

195:                                              ; preds = %195, %192
  %196 = phi ptr [ %194, %192 ], [ %197, %195 ]
  %197 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %196, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #5
  %198 = icmp eq ptr %197, %193
  br i1 %198, label %199, label %195

199:                                              ; preds = %195
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #5
  %200 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %43, i32 0, i32 0
  %201 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %200, i64 2
  br label %202

202:                                              ; preds = %202, %199
  %203 = phi ptr [ %201, %199 ], [ %204, %202 ]
  %204 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %203, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #5
  %205 = icmp eq ptr %204, %200
  br i1 %205, label %206, label %202

206:                                              ; preds = %202
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %43) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #5
  %207 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %36, i32 0, i32 0
  %208 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %207, i64 2
  br label %209

209:                                              ; preds = %209, %206
  %210 = phi ptr [ %208, %206 ], [ %211, %209 ]
  %211 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %210, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #5
  %212 = icmp eq ptr %211, %207
  br i1 %212, label %213, label %209

213:                                              ; preds = %209
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 120, ptr %33) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #5
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  %214 = getelementptr inbounds [2 x %"class.std::vector.6"], ptr %12, i32 0, i32 0
  %215 = getelementptr inbounds %"class.std::vector.6", ptr %214, i64 2
  br label %216

216:                                              ; preds = %216, %213
  %217 = phi ptr [ %215, %213 ], [ %218, %216 ]
  %218 = getelementptr inbounds %"class.std::vector.6", ptr %217, i64 -1
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %218) #5
  %219 = icmp eq ptr %218, %214
  br i1 %219, label %220, label %216

220:                                              ; preds = %216
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  %221 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %22, i32 0, i32 0
  %222 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %221, i64 2
  br label %223

223:                                              ; preds = %223, %220
  %224 = phi ptr [ %222, %220 ], [ %225, %223 ]
  %225 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %224, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #5
  %226 = icmp eq ptr %225, %221
  br i1 %226, label %227, label %223

227:                                              ; preds = %223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %22) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  %228 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %15, i32 0, i32 0
  %229 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %228, i64 2
  br label %230

230:                                              ; preds = %230, %227
  %231 = phi ptr [ %229, %227 ], [ %232, %230 ]
  %232 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %231, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #5
  %233 = icmp eq ptr %232, %228
  br i1 %233, label %234, label %230

234:                                              ; preds = %230
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %12) #5
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.5)
          to label %236 unwind label %524

236:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  store i32 0, ptr %72, align 4, !tbaa !20
  br label %237

237:                                              ; preds = %555, %236
  %238 = load i32, ptr %72, align 4, !tbaa !20
  %239 = sext i32 %238 to i64
  %240 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  %241 = icmp ult i64 %239, %240
  br i1 %241, label %528, label %242

242:                                              ; preds = %237
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  br label %558

243:                                              ; preds = %0
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %7, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %8, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %5) #5
  br label %566

247:                                              ; preds = %80
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %7, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %8, align 4
  br label %503

251:                                              ; preds = %81
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %7, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %8, align 4
  br label %502

255:                                              ; preds = %83
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %7, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %8, align 4
  br label %494

259:                                              ; preds = %90
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %7, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %8, align 4
  br label %483

263:                                              ; preds = %92
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %7, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %8, align 4
  br label %482

267:                                              ; preds = %94
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %7, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %8, align 4
  br label %474

271:                                              ; preds = %101
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %7, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %8, align 4
  br label %466

275:                                              ; preds = %108
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %7, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %8, align 4
  br label %465

279:                                              ; preds = %109
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %7, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %8, align 4
  br label %444

283:                                              ; preds = %110
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %7, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %8, align 4
  br label %443

287:                                              ; preds = %112
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %7, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %8, align 4
  br label %435

291:                                              ; preds = %119
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %7, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %8, align 4
  br label %424

295:                                              ; preds = %121
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %7, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %8, align 4
  br label %423

299:                                              ; preds = %123
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %7, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %8, align 4
  br label %415

303:                                              ; preds = %130
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %7, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %8, align 4
  br label %404

307:                                              ; preds = %132
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %7, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %8, align 4
  br label %403

311:                                              ; preds = %134
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %7, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %8, align 4
  br label %395

315:                                              ; preds = %141
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %7, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %8, align 4
  br label %384

319:                                              ; preds = %143
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %7, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %8, align 4
  br label %383

323:                                              ; preds = %145
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %7, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %8, align 4
  br label %375

327:                                              ; preds = %152
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %7, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %8, align 4
  br label %364

331:                                              ; preds = %154
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %7, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %8, align 4
  br label %363

335:                                              ; preds = %156
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %7, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %8, align 4
  br label %355

339:                                              ; preds = %163
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %7, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %8, align 4
  br label %347

343:                                              ; preds = %170
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %7, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %8, align 4
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #5
  br label %347

347:                                              ; preds = %343, %339
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #5
  %348 = getelementptr inbounds [5 x %"class.std::vector.6"], ptr %33, i32 0, i32 0
  %349 = getelementptr inbounds %"class.std::vector.6", ptr %348, i64 5
  br label %350

350:                                              ; preds = %350, %347
  %351 = phi ptr [ %349, %347 ], [ %352, %350 ]
  %352 = getelementptr inbounds %"class.std::vector.6", ptr %351, i64 -1
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %352) #5
  %353 = icmp eq ptr %352, %348
  br i1 %353, label %354, label %350

354:                                              ; preds = %350
  br label %355

355:                                              ; preds = %354, %335
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #5
  %356 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %64, i32 0, i32 0
  %357 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %356, i64 2
  br label %358

358:                                              ; preds = %358, %355
  %359 = phi ptr [ %357, %355 ], [ %360, %358 ]
  %360 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %359, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #5
  %361 = icmp eq ptr %360, %356
  br i1 %361, label %362, label %358

362:                                              ; preds = %358
  br label %363

363:                                              ; preds = %362, %331
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #5
  br label %364

364:                                              ; preds = %363, %327
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #5
  %365 = load i1, ptr %68, align 1
  br i1 %365, label %366, label %374

366:                                              ; preds = %364
  %367 = load ptr, ptr %65, align 8
  %368 = icmp eq ptr %64, %367
  br i1 %368, label %373, label %369

369:                                              ; preds = %369, %366
  %370 = phi ptr [ %367, %366 ], [ %371, %369 ]
  %371 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %370, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #5
  %372 = icmp eq ptr %371, %64
  br i1 %372, label %373, label %369

373:                                              ; preds = %369, %366
  br label %374

374:                                              ; preds = %373, %364
  call void @llvm.lifetime.end.p0(i64 64, ptr %64) #5
  br label %375

375:                                              ; preds = %374, %323
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #5
  %376 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %57, i32 0, i32 0
  %377 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %376, i64 2
  br label %378

378:                                              ; preds = %378, %375
  %379 = phi ptr [ %377, %375 ], [ %380, %378 ]
  %380 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %379, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #5
  %381 = icmp eq ptr %380, %376
  br i1 %381, label %382, label %378

382:                                              ; preds = %378
  br label %383

383:                                              ; preds = %382, %319
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #5
  br label %384

384:                                              ; preds = %383, %315
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #5
  %385 = load i1, ptr %61, align 1
  br i1 %385, label %386, label %394

386:                                              ; preds = %384
  %387 = load ptr, ptr %58, align 8
  %388 = icmp eq ptr %57, %387
  br i1 %388, label %393, label %389

389:                                              ; preds = %389, %386
  %390 = phi ptr [ %387, %386 ], [ %391, %389 ]
  %391 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %390, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #5
  %392 = icmp eq ptr %391, %57
  br i1 %392, label %393, label %389

393:                                              ; preds = %389, %386
  br label %394

394:                                              ; preds = %393, %384
  call void @llvm.lifetime.end.p0(i64 64, ptr %57) #5
  br label %395

395:                                              ; preds = %394, %311
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #5
  %396 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %50, i32 0, i32 0
  %397 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %396, i64 2
  br label %398

398:                                              ; preds = %398, %395
  %399 = phi ptr [ %397, %395 ], [ %400, %398 ]
  %400 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %399, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %400) #5
  %401 = icmp eq ptr %400, %396
  br i1 %401, label %402, label %398

402:                                              ; preds = %398
  br label %403

403:                                              ; preds = %402, %307
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #5
  br label %404

404:                                              ; preds = %403, %303
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #5
  %405 = load i1, ptr %54, align 1
  br i1 %405, label %406, label %414

406:                                              ; preds = %404
  %407 = load ptr, ptr %51, align 8
  %408 = icmp eq ptr %50, %407
  br i1 %408, label %413, label %409

409:                                              ; preds = %409, %406
  %410 = phi ptr [ %407, %406 ], [ %411, %409 ]
  %411 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %410, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #5
  %412 = icmp eq ptr %411, %50
  br i1 %412, label %413, label %409

413:                                              ; preds = %409, %406
  br label %414

414:                                              ; preds = %413, %404
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #5
  br label %415

415:                                              ; preds = %414, %299
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #5
  %416 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %43, i32 0, i32 0
  %417 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %416, i64 2
  br label %418

418:                                              ; preds = %418, %415
  %419 = phi ptr [ %417, %415 ], [ %420, %418 ]
  %420 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %419, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #5
  %421 = icmp eq ptr %420, %416
  br i1 %421, label %422, label %418

422:                                              ; preds = %418
  br label %423

423:                                              ; preds = %422, %295
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #5
  br label %424

424:                                              ; preds = %423, %291
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #5
  %425 = load i1, ptr %47, align 1
  br i1 %425, label %426, label %434

426:                                              ; preds = %424
  %427 = load ptr, ptr %44, align 8
  %428 = icmp eq ptr %43, %427
  br i1 %428, label %433, label %429

429:                                              ; preds = %429, %426
  %430 = phi ptr [ %427, %426 ], [ %431, %429 ]
  %431 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %430, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #5
  %432 = icmp eq ptr %431, %43
  br i1 %432, label %433, label %429

433:                                              ; preds = %429, %426
  br label %434

434:                                              ; preds = %433, %424
  call void @llvm.lifetime.end.p0(i64 64, ptr %43) #5
  br label %435

435:                                              ; preds = %434, %287
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #5
  %436 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %36, i32 0, i32 0
  %437 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %436, i64 2
  br label %438

438:                                              ; preds = %438, %435
  %439 = phi ptr [ %437, %435 ], [ %440, %438 ]
  %440 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %439, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #5
  %441 = icmp eq ptr %440, %436
  br i1 %441, label %442, label %438

442:                                              ; preds = %438
  br label %443

443:                                              ; preds = %442, %283
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #5
  br label %444

444:                                              ; preds = %443, %279
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #5
  %445 = load i1, ptr %40, align 1
  br i1 %445, label %446, label %454

446:                                              ; preds = %444
  %447 = load ptr, ptr %37, align 8
  %448 = icmp eq ptr %36, %447
  br i1 %448, label %453, label %449

449:                                              ; preds = %449, %446
  %450 = phi ptr [ %447, %446 ], [ %451, %449 ]
  %451 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %450, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %451) #5
  %452 = icmp eq ptr %451, %36
  br i1 %452, label %453, label %449

453:                                              ; preds = %449, %446
  br label %454

454:                                              ; preds = %453, %444
  call void @llvm.lifetime.end.p0(i64 64, ptr %36) #5
  %455 = load i1, ptr %70, align 1
  br i1 %455, label %456, label %464

456:                                              ; preds = %454
  %457 = load ptr, ptr %34, align 8
  %458 = icmp eq ptr %33, %457
  br i1 %458, label %463, label %459

459:                                              ; preds = %459, %456
  %460 = phi ptr [ %457, %456 ], [ %461, %459 ]
  %461 = getelementptr inbounds %"class.std::vector.6", ptr %460, i64 -1
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %461) #5
  %462 = icmp eq ptr %461, %33
  br i1 %462, label %463, label %459

463:                                              ; preds = %459, %456
  br label %464

464:                                              ; preds = %463, %454
  call void @llvm.lifetime.end.p0(i64 120, ptr %33) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #5
  br label %465

465:                                              ; preds = %464, %275
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #5
  br label %466

466:                                              ; preds = %465, %271
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #5
  %467 = getelementptr inbounds [2 x %"class.std::vector.6"], ptr %12, i32 0, i32 0
  %468 = getelementptr inbounds %"class.std::vector.6", ptr %467, i64 2
  br label %469

469:                                              ; preds = %469, %466
  %470 = phi ptr [ %468, %466 ], [ %471, %469 ]
  %471 = getelementptr inbounds %"class.std::vector.6", ptr %470, i64 -1
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %471) #5
  %472 = icmp eq ptr %471, %467
  br i1 %472, label %473, label %469

473:                                              ; preds = %469
  br label %474

474:                                              ; preds = %473, %267
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  %475 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %22, i32 0, i32 0
  %476 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %475, i64 2
  br label %477

477:                                              ; preds = %477, %474
  %478 = phi ptr [ %476, %474 ], [ %479, %477 ]
  %479 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %478, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %479) #5
  %480 = icmp eq ptr %479, %475
  br i1 %480, label %481, label %477

481:                                              ; preds = %477
  br label %482

482:                                              ; preds = %481, %263
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #5
  br label %483

483:                                              ; preds = %482, %259
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #5
  %484 = load i1, ptr %26, align 1
  br i1 %484, label %485, label %493

485:                                              ; preds = %483
  %486 = load ptr, ptr %23, align 8
  %487 = icmp eq ptr %22, %486
  br i1 %487, label %492, label %488

488:                                              ; preds = %488, %485
  %489 = phi ptr [ %486, %485 ], [ %490, %488 ]
  %490 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %489, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %490) #5
  %491 = icmp eq ptr %490, %22
  br i1 %491, label %492, label %488

492:                                              ; preds = %488, %485
  br label %493

493:                                              ; preds = %492, %483
  call void @llvm.lifetime.end.p0(i64 64, ptr %22) #5
  br label %494

494:                                              ; preds = %493, %255
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #5
  %495 = getelementptr inbounds [2 x %"class.std::__cxx11::basic_string"], ptr %15, i32 0, i32 0
  %496 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %495, i64 2
  br label %497

497:                                              ; preds = %497, %494
  %498 = phi ptr [ %496, %494 ], [ %499, %497 ]
  %499 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %498, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %499) #5
  %500 = icmp eq ptr %499, %495
  br i1 %500, label %501, label %497

501:                                              ; preds = %497
  br label %502

502:                                              ; preds = %501, %251
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  br label %503

503:                                              ; preds = %502, %247
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  %504 = load i1, ptr %19, align 1
  br i1 %504, label %505, label %513

505:                                              ; preds = %503
  %506 = load ptr, ptr %16, align 8
  %507 = icmp eq ptr %15, %506
  br i1 %507, label %512, label %508

508:                                              ; preds = %508, %505
  %509 = phi ptr [ %506, %505 ], [ %510, %508 ]
  %510 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %509, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %510) #5
  %511 = icmp eq ptr %510, %15
  br i1 %511, label %512, label %508

512:                                              ; preds = %508, %505
  br label %513

513:                                              ; preds = %512, %503
  call void @llvm.lifetime.end.p0(i64 64, ptr %15) #5
  %514 = load i1, ptr %28, align 1
  br i1 %514, label %515, label %523

515:                                              ; preds = %513
  %516 = load ptr, ptr %13, align 8
  %517 = icmp eq ptr %12, %516
  br i1 %517, label %522, label %518

518:                                              ; preds = %518, %515
  %519 = phi ptr [ %516, %515 ], [ %520, %518 ]
  %520 = getelementptr inbounds %"class.std::vector.6", ptr %519, i64 -1
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %520) #5
  %521 = icmp eq ptr %520, %12
  br i1 %521, label %522, label %518

522:                                              ; preds = %518, %515
  br label %523

523:                                              ; preds = %522, %513
  call void @llvm.lifetime.end.p0(i64 48, ptr %12) #5
  br label %565

524:                                              ; preds = %560, %558, %234
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %7, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %8, align 4
  br label %564

528:                                              ; preds = %237
  %529 = load i32, ptr %72, align 4, !tbaa !20
  %530 = sext i32 %529 to i64
  %531 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  %532 = sub i64 %531, 1
  %533 = icmp eq i64 %530, %532
  br i1 %533, label %534, label %545

534:                                              ; preds = %528
  %535 = load i32, ptr %72, align 4, !tbaa !20
  %536 = sext i32 %535 to i64
  %537 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %536) #5
  %538 = load double, ptr %537, align 8, !tbaa !5
  %539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %538)
          to label %540 unwind label %541

540:                                              ; preds = %534
  br label %554

541:                                              ; preds = %551, %545, %534
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %7, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  br label %564

545:                                              ; preds = %528
  %546 = load i32, ptr %72, align 4, !tbaa !20
  %547 = sext i32 %546 to i64
  %548 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %547) #5
  %549 = load double, ptr %548, align 8, !tbaa !5
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %549)
          to label %551 unwind label %541

551:                                              ; preds = %545
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %550, ptr noundef @.str.6)
          to label %553 unwind label %541

553:                                              ; preds = %551
  br label %554

554:                                              ; preds = %553, %540
  br label %555

555:                                              ; preds = %554
  %556 = load i32, ptr %72, align 4, !tbaa !20
  %557 = add nsw i32 %556, 1
  store i32 %557, ptr %72, align 4, !tbaa !20
  br label %237, !llvm.loop !22

558:                                              ; preds = %242
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.7)
          to label %560 unwind label %524

560:                                              ; preds = %558
  %561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %559, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %562 unwind label %524

562:                                              ; preds = %560
  store i32 0, ptr %1, align 4
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %2) #5
  %563 = load i32, ptr %1, align 4
  ret i32 %563

564:                                              ; preds = %541, %524
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #5
  br label %565

565:                                              ; preds = %564, %523
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #5
  br label %566

566:                                              ; preds = %565, %243
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %2) #5
  br label %567

567:                                              ; preds = %566
  %568 = load ptr, ptr %7, align 8
  %569 = load i32, ptr %8, align 4
  %570 = insertvalue { ptr, i32 } poison, ptr %568, 0
  %571 = insertvalue { ptr, i32 } %570, i32 %569, 1
  resume { ptr, i32 } %571
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8Solution12calcEquationESt6vectorIS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EESaIS8_EES0_IdSaIdEESA_(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef, ptr noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EEC2ESt16initializer_listIS7_ERKS8_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

attributes #0 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSSt16initializer_listIdE", !11, i64 0, !12, i64 8}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!10, !12, i64 8}
!14 = !{!15, !11, i64 0}
!15 = !{!"_ZTSSt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE", !11, i64 0, !12, i64 8}
!16 = !{!15, !12, i64 8}
!17 = !{!18, !11, i64 0}
!18 = !{!"_ZTSSt16initializer_listISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEE", !11, i64 0, !12, i64 8}
!19 = !{!18, !12, i64 8}
!20 = !{!21, !21, i64 0}
!21 = !{!"int", !7, i64 0}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.mustprogress"}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%class.Solution = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::__cxx11::basic_string<char>>, std::allocator<std::vector<std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.12" = type { i8 }
%"class.std::allocator.8" = type { i8 }
%"class.std::allocator.2" = type { i8 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %class.Solution, align 1
  %2 = alloca %"class.std::vector", align 8
  %3 = alloca [2 x double], align 16
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca %"class.std::vector.0", align 8
  %7 = alloca [2 x %"class.std::vector.6"], align 8
  %8 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %9 = alloca %"class.std::allocator.12", align 1
  %10 = alloca %"class.std::allocator.12", align 1
  %11 = alloca %"class.std::allocator.8", align 1
  %12 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %13 = alloca %"class.std::allocator.12", align 1
  %14 = alloca %"class.std::allocator.12", align 1
  %15 = alloca %"class.std::allocator.8", align 1
  %16 = alloca %"class.std::allocator.2", align 1
  %17 = alloca %"class.std::vector", align 8
  %18 = alloca %"class.std::vector.0", align 8
  %19 = alloca [5 x %"class.std::vector.6"], align 8
  %20 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %21 = alloca %"class.std::allocator.12", align 1
  %22 = alloca %"class.std::allocator.12", align 1
  %23 = alloca %"class.std::allocator.8", align 1
  %24 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %25 = alloca %"class.std::allocator.12", align 1
  %26 = alloca %"class.std::allocator.12", align 1
  %27 = alloca %"class.std::allocator.8", align 1
  %28 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %29 = alloca %"class.std::allocator.12", align 1
  %30 = alloca %"class.std::allocator.12", align 1
  %31 = alloca %"class.std::allocator.8", align 1
  %32 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %33 = alloca %"class.std::allocator.12", align 1
  %34 = alloca %"class.std::allocator.12", align 1
  %35 = alloca %"class.std::allocator.8", align 1
  %36 = alloca [2 x %"class.std::__cxx11::basic_string"], align 8
  %37 = alloca %"class.std::allocator.12", align 1
  %38 = alloca %"class.std::allocator.12", align 1
  %39 = alloca %"class.std::allocator.8", align 1
  %40 = alloca %"class.std::allocator.2", align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #5
  store <2 x double> <double 2.000000e+00, double 3.000000e+00>, ptr %3, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #5
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #5
  invoke void @_ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr nonnull %3, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %41 unwind label %94

41:                                               ; preds = %0
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %42 unwind label %.thread263

42:                                               ; preds = %41
  %43 = getelementptr inbounds i8, ptr %8, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %44 unwind label %97

44:                                               ; preds = %42
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr nonnull %8, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %45 unwind label %99

45:                                               ; preds = %44
  %46 = getelementptr inbounds i8, ptr %7, i64 24
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %47 unwind label %.thread245

47:                                               ; preds = %45
  %48 = getelementptr inbounds i8, ptr %12, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %49 unwind label %102

49:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr nonnull %12, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %50 unwind label %104

50:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #5
  call void @_ZNSaISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #5
  invoke void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EEC2ESt16initializer_listIS7_ERKS8_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr nonnull %7, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %51 unwind label %106

51:                                               ; preds = %50
  invoke void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %2)
          to label %52 unwind label %108

52:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %53 unwind label %.thread239

53:                                               ; preds = %52
  %54 = getelementptr inbounds i8, ptr %20, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %55 unwind label %111

55:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr nonnull %20, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %56 unwind label %113

56:                                               ; preds = %55
  %57 = getelementptr inbounds i8, ptr %19, i64 24
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %58 unwind label %.thread219

58:                                               ; preds = %56
  %59 = getelementptr inbounds i8, ptr %24, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %60 unwind label %116

60:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr nonnull %24, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %61 unwind label %118

61:                                               ; preds = %60
  %62 = getelementptr inbounds i8, ptr %19, i64 48
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %63 unwind label %.thread209

63:                                               ; preds = %61
  %64 = getelementptr inbounds i8, ptr %28, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %65 unwind label %121

65:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr nonnull %28, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %66 unwind label %123

66:                                               ; preds = %65
  %67 = getelementptr inbounds i8, ptr %19, i64 72
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %68 unwind label %.thread199

68:                                               ; preds = %66
  %69 = getelementptr inbounds i8, ptr %32, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %70 unwind label %126

70:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %67, ptr nonnull %32, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %71 unwind label %128

71:                                               ; preds = %70
  %72 = getelementptr inbounds i8, ptr %19, i64 96
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %73 unwind label %.thread

73:                                               ; preds = %71
  %74 = getelementptr inbounds i8, ptr %36, i64 32
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %75 unwind label %131

75:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #5
  call void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #5
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr nonnull %36, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %76 unwind label %133

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #5
  call void @_ZNSaISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  invoke void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EEC2ESt16initializer_listIS7_ERKS8_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr nonnull %19, i64 5, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %77 unwind label %135

77:                                               ; preds = %76
  invoke void @_ZN8Solution12calcEquationESt6vectorIS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EESaIS8_EES0_IdSaIdEESA_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %5, ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull %6, ptr noundef nonnull %17, ptr noundef nonnull %18)
          to label %78 unwind label %137

78:                                               ; preds = %77
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  %79 = getelementptr inbounds i8, ptr %19, i64 96
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #5
  %80 = getelementptr inbounds i8, ptr %19, i64 72
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %80) #5
  %81 = getelementptr inbounds i8, ptr %19, i64 48
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %81) #5
  %82 = getelementptr inbounds i8, ptr %19, i64 24
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #5
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #5
  %83 = getelementptr inbounds i8, ptr %36, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %36) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #5
  %84 = getelementptr inbounds i8, ptr %32, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  %85 = getelementptr inbounds i8, ptr %28, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #5
  %86 = getelementptr inbounds i8, ptr %24, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %24) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  %87 = getelementptr inbounds i8, ptr %20, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %19) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #5
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #5
  %88 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #5
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #5
  %89 = getelementptr inbounds i8, ptr %12, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #5
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  %90 = getelementptr inbounds i8, ptr %8, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #5
  %91 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.5)
          to label %.preheader unwind label %164

.preheader:                                       ; preds = %78
  %92 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  %.not = icmp eq i64 %92, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %179, %.preheader
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.7)
          to label %182 unwind label %164

94:                                               ; preds = %0
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #5
  br label %187

.thread263:                                       ; preds = %41
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #5
  br label %.loopexit

97:                                               ; preds = %42
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit272

99:                                               ; preds = %44
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit272.loopexit

.thread245:                                       ; preds = %45
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  br label %.loopexit274

102:                                              ; preds = %47
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit275

104:                                              ; preds = %49
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit276

106:                                              ; preds = %50
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit276.loopexit

108:                                              ; preds = %51
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %154

.thread239:                                       ; preds = %52
  %110 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #5
  br label %.loopexit278

111:                                              ; preds = %53
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit281

113:                                              ; preds = %55
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit281.loopexit

.thread219:                                       ; preds = %56
  %115 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  br label %.loopexit283

116:                                              ; preds = %58
  %117 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit284

118:                                              ; preds = %60
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit284.loopexit

.thread209:                                       ; preds = %61
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #5
  br label %.loopexit286

121:                                              ; preds = %63
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit287

123:                                              ; preds = %65
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit287.loopexit

.thread199:                                       ; preds = %66
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  br label %.loopexit289

126:                                              ; preds = %68
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit290

128:                                              ; preds = %70
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit290.loopexit

.thread:                                          ; preds = %71
  %130 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #5
  br label %.loopexit292

131:                                              ; preds = %73
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit293

133:                                              ; preds = %75
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit294

135:                                              ; preds = %76
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit294.loopexit

137:                                              ; preds = %77
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #5
  br label %.loopexit294.loopexit

.loopexit294.loopexit:                            ; preds = %137, %135
  %.pn = phi { ptr, i32 } [ %138, %137 ], [ %136, %135 ]
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  %139 = getelementptr inbounds i8, ptr %19, i64 96
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %139) #5
  %140 = getelementptr inbounds i8, ptr %19, i64 72
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %140) #5
  %141 = getelementptr inbounds i8, ptr %19, i64 48
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %141) #5
  %142 = getelementptr inbounds i8, ptr %19, i64 24
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %142) #5
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #5
  br label %.loopexit294

.loopexit294:                                     ; preds = %.loopexit294.loopexit, %133
  %.pn.pn = phi { ptr, i32 } [ %134, %133 ], [ %.pn, %.loopexit294.loopexit ]
  %.068 = phi i1 [ true, %133 ], [ false, %.loopexit294.loopexit ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #5
  %143 = getelementptr inbounds i8, ptr %36, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  br label %.loopexit293

.loopexit293:                                     ; preds = %.loopexit294, %131
  %.pn.pn.pn = phi { ptr, i32 } [ %132, %131 ], [ %.pn.pn, %.loopexit294 ]
  %.069 = phi i1 [ true, %131 ], [ false, %.loopexit294 ]
  %.1 = phi i1 [ true, %131 ], [ %.068, %.loopexit294 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #5
  br i1 %.069, label %.preheader291.preheader, label %.loopexit292

.preheader291.preheader:                          ; preds = %.loopexit293
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  br label %.loopexit292

.loopexit292:                                     ; preds = %.preheader291.preheader, %.thread, %.loopexit293
  %.2198 = phi i1 [ true, %.thread ], [ %.1, %.loopexit293 ], [ %.1, %.preheader291.preheader ]
  %.pn.pn.pn.pn197 = phi { ptr, i32 } [ %130, %.thread ], [ %.pn.pn.pn, %.loopexit293 ], [ %.pn.pn.pn, %.preheader291.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %36) #5
  br label %.loopexit290.loopexit

.loopexit290.loopexit:                            ; preds = %.loopexit292, %128
  %.0141 = phi ptr [ %72, %.loopexit292 ], [ %67, %128 ]
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn197, %.loopexit292 ], [ %129, %128 ]
  %.3 = phi i1 [ %.2198, %.loopexit292 ], [ true, %128 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #5
  %144 = getelementptr inbounds i8, ptr %32, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  br label %.loopexit290

.loopexit290:                                     ; preds = %.loopexit290.loopexit, %126
  %.1142 = phi ptr [ %67, %126 ], [ %.0141, %.loopexit290.loopexit ]
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %127, %126 ], [ %.pn.pn.pn.pn.pn, %.loopexit290.loopexit ]
  %.087 = phi i1 [ true, %126 ], [ false, %.loopexit290.loopexit ]
  %.4 = phi i1 [ true, %126 ], [ %.3, %.loopexit290.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  br i1 %.087, label %.preheader288.preheader, label %.loopexit289

.preheader288.preheader:                          ; preds = %.loopexit290
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  br label %.loopexit289

.loopexit289:                                     ; preds = %.preheader288.preheader, %.thread199, %.loopexit290
  %.5208 = phi i1 [ true, %.thread199 ], [ %.4, %.loopexit290 ], [ %.4, %.preheader288.preheader ]
  %.pn.pn.pn.pn.pn.pn.pn207 = phi { ptr, i32 } [ %125, %.thread199 ], [ %.pn.pn.pn.pn.pn.pn, %.loopexit290 ], [ %.pn.pn.pn.pn.pn.pn, %.preheader288.preheader ]
  %.2143206 = phi ptr [ %67, %.thread199 ], [ %.1142, %.loopexit290 ], [ %.1142, %.preheader288.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #5
  br label %.loopexit287.loopexit

.loopexit287.loopexit:                            ; preds = %.loopexit289, %123
  %.3144 = phi ptr [ %.2143206, %.loopexit289 ], [ %62, %123 ]
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn207, %.loopexit289 ], [ %124, %123 ]
  %.6 = phi i1 [ %.5208, %.loopexit289 ], [ true, %123 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  %145 = getelementptr inbounds i8, ptr %28, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %.loopexit287

.loopexit287:                                     ; preds = %.loopexit287.loopexit, %121
  %.4145 = phi ptr [ %62, %121 ], [ %.3144, %.loopexit287.loopexit ]
  %.0120 = phi i1 [ true, %121 ], [ false, %.loopexit287.loopexit ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %122, %121 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit287.loopexit ]
  %.7 = phi i1 [ true, %121 ], [ %.6, %.loopexit287.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #5
  br i1 %.0120, label %.preheader285.preheader, label %.loopexit286

.preheader285.preheader:                          ; preds = %.loopexit287
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %.loopexit286

.loopexit286:                                     ; preds = %.preheader285.preheader, %.thread209, %.loopexit287
  %.8218 = phi i1 [ true, %.thread209 ], [ %.7, %.loopexit287 ], [ %.7, %.preheader285.preheader ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn217 = phi { ptr, i32 } [ %120, %.thread209 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit287 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.preheader285.preheader ]
  %.5146216 = phi ptr [ %62, %.thread209 ], [ %.4145, %.loopexit287 ], [ %.4145, %.preheader285.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #5
  br label %.loopexit284.loopexit

.loopexit284.loopexit:                            ; preds = %.loopexit286, %118
  %.6147 = phi ptr [ %.5146216, %.loopexit286 ], [ %57, %118 ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn217, %.loopexit286 ], [ %119, %118 ]
  %.9 = phi i1 [ %.8218, %.loopexit286 ], [ true, %118 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #5
  %146 = getelementptr inbounds i8, ptr %24, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  br label %.loopexit284

.loopexit284:                                     ; preds = %.loopexit284.loopexit, %116
  %.7148 = phi ptr [ %57, %116 ], [ %.6147, %.loopexit284.loopexit ]
  %147 = phi i1 [ false, %116 ], [ true, %.loopexit284.loopexit ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %117, %116 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit284.loopexit ]
  %.10 = phi i1 [ true, %116 ], [ %.9, %.loopexit284.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #5
  br i1 %147, label %.loopexit283, label %.preheader282.preheader

.preheader282.preheader:                          ; preds = %.loopexit284
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  br label %.loopexit283

.loopexit283:                                     ; preds = %.preheader282.preheader, %.thread219, %.loopexit284
  %.11228 = phi i1 [ true, %.thread219 ], [ %.10, %.loopexit284 ], [ %.10, %.preheader282.preheader ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn227 = phi { ptr, i32 } [ %115, %.thread219 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit284 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.preheader282.preheader ]
  %.8149226 = phi ptr [ %57, %.thread219 ], [ %.7148, %.loopexit284 ], [ %.7148, %.preheader282.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %24) #5
  br label %.loopexit281.loopexit

.loopexit281.loopexit:                            ; preds = %.loopexit283, %113
  %.9150 = phi ptr [ %.8149226, %.loopexit283 ], [ %19, %113 ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn227, %.loopexit283 ], [ %114, %113 ]
  %.12 = phi i1 [ %.11228, %.loopexit283 ], [ true, %113 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  %148 = getelementptr inbounds i8, ptr %20, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %.loopexit281

.loopexit281:                                     ; preds = %.loopexit281.loopexit, %111
  %.10151 = phi ptr [ %19, %111 ], [ %.9150, %.loopexit281.loopexit ]
  %149 = phi i1 [ false, %111 ], [ true, %.loopexit281.loopexit ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %112, %111 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit281.loopexit ]
  %.13 = phi i1 [ true, %111 ], [ %.12, %.loopexit281.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  br i1 %149, label %.loopexit280, label %.preheader279.preheader

.preheader279.preheader:                          ; preds = %.loopexit281
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %.loopexit280

.loopexit280:                                     ; preds = %.preheader279.preheader, %.loopexit281
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #5
  %150 = icmp ne ptr %19, %.10151
  %or.cond16.not = select i1 %.13, i1 %150, i1 false
  br i1 %or.cond16.not, label %.preheader277, label %.loopexit278

.preheader277:                                    ; preds = %.loopexit280, %.preheader277
  %151 = phi ptr [ %152, %.preheader277 ], [ %.10151, %.loopexit280 ]
  %152 = getelementptr inbounds i8, ptr %151, i64 -24
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %152) #5
  %153 = icmp eq ptr %152, %19
  br i1 %153, label %.loopexit278, label %.preheader277

.loopexit278:                                     ; preds = %.preheader277, %.thread239, %.loopexit280
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn237244 = phi { ptr, i32 } [ %110, %.thread239 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit280 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.preheader277 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %19) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #5
  br label %154

154:                                              ; preds = %.loopexit278, %108
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn237244, %.loopexit278 ], [ %109, %108 ]
  call void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #5
  br label %.loopexit276.loopexit

.loopexit276.loopexit:                            ; preds = %154, %106
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %154 ], [ %107, %106 ]
  call void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #5
  %155 = getelementptr inbounds i8, ptr %7, i64 24
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %155) #5
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  br label %.loopexit276

.loopexit276:                                     ; preds = %.loopexit276.loopexit, %104
  %.0135 = phi i1 [ true, %104 ], [ false, %.loopexit276.loopexit ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %105, %104 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit276.loopexit ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #5
  %156 = getelementptr inbounds i8, ptr %12, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %.loopexit275

.loopexit275:                                     ; preds = %.loopexit276, %102
  %.1136 = phi i1 [ true, %102 ], [ %.0135, %.loopexit276 ]
  %157 = phi i1 [ false, %102 ], [ true, %.loopexit276 ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %103, %102 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit276 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #5
  br i1 %157, label %.loopexit274, label %.preheader273.preheader

.preheader273.preheader:                          ; preds = %.loopexit275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %.loopexit274

.loopexit274:                                     ; preds = %.preheader273.preheader, %.thread245, %.loopexit275
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn252 = phi { ptr, i32 } [ %101, %.thread245 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit275 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.preheader273.preheader ]
  %.2137251 = phi i1 [ true, %.thread245 ], [ %.1136, %.loopexit275 ], [ %.1136, %.preheader273.preheader ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #5
  br label %.loopexit272.loopexit

.loopexit272.loopexit:                            ; preds = %.loopexit274, %99
  %.3138 = phi i1 [ %.2137251, %.loopexit274 ], [ true, %99 ]
  %.0117 = phi ptr [ %46, %.loopexit274 ], [ %7, %99 ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn252, %.loopexit274 ], [ %100, %99 ]
  call void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  %158 = getelementptr inbounds i8, ptr %8, i64 32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %.loopexit272

.loopexit272:                                     ; preds = %.loopexit272.loopexit, %97
  %.4139 = phi i1 [ true, %97 ], [ %.3138, %.loopexit272.loopexit ]
  %159 = phi i1 [ false, %97 ], [ true, %.loopexit272.loopexit ]
  %.1118 = phi ptr [ %7, %97 ], [ %.0117, %.loopexit272.loopexit ]
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %98, %97 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit272.loopexit ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  br i1 %159, label %.loopexit271, label %.preheader270.preheader

.preheader270.preheader:                          ; preds = %.loopexit272
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %.loopexit271

.loopexit271:                                     ; preds = %.preheader270.preheader, %.loopexit272
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #5
  %160 = icmp ne ptr %7, %.1118
  %or.cond25.not = select i1 %.4139, i1 %160, i1 false
  br i1 %or.cond25.not, label %.preheader269, label %.loopexit

.preheader269:                                    ; preds = %.loopexit271, %.preheader269
  %161 = phi ptr [ %162, %.preheader269 ], [ %.1118, %.loopexit271 ]
  %162 = getelementptr inbounds i8, ptr %161, i64 -24
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %162) #5
  %163 = icmp eq ptr %162, %7
  br i1 %163, label %.loopexit, label %.preheader269

.loopexit:                                        ; preds = %.preheader269, %.thread263, %.loopexit271
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn262268 = phi { ptr, i32 } [ %96, %.thread263 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit271 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.preheader269 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #5
  br label %186

164:                                              ; preds = %182, %._crit_edge, %78
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %185

.lr.ph:                                           ; preds = %.preheader, %179
  %indvars.iv = phi i64 [ %indvars.iv.next, %179 ], [ 0, %.preheader ]
  %166 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  %167 = add i64 %166, -1
  %168 = icmp eq i64 %167, %indvars.iv
  %169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #5
  %170 = load double, ptr %169, align 8, !tbaa !5
  br i1 %168, label %171, label %175

171:                                              ; preds = %.lr.ph
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %170)
          to label %179 unwind label %173

173:                                              ; preds = %177, %175, %171
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %185

175:                                              ; preds = %.lr.ph
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %170)
          to label %177 unwind label %173

177:                                              ; preds = %175
  %178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull @.str.6)
          to label %179 unwind label %173

179:                                              ; preds = %171, %177
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %180 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  %181 = icmp ugt i64 %180, %indvars.iv.next
  br i1 %181, label %.lr.ph, label %._crit_edge, !llvm.loop !9

182:                                              ; preds = %._crit_edge
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %184 unwind label %164

184:                                              ; preds = %182
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1) #5
  ret i32 0

185:                                              ; preds = %173, %164
  %.pn188 = phi { ptr, i32 } [ %174, %173 ], [ %165, %164 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #5
  br label %186

186:                                              ; preds = %185, %.loopexit
  %.pn188.pn = phi { ptr, i32 } [ %.pn188, %185 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn262268, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #5
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #5
  br label %187

187:                                              ; preds = %186, %94
  %.pn188.pn.pn = phi { ptr, i32 } [ %.pn188.pn, %186 ], [ %95, %94 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1) #5
  resume { ptr, i32 } %.pn188.pn.pn
}

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEEC2ESt16initializer_listIdERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8Solution12calcEquationESt6vectorIS0_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EESaIS8_EES0_IdSaIdEESA_(ptr dead_on_unwind noalias writable sret(%"class.std::vector") align 8, ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ESt16initializer_listIS5_ERKS6_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EEC2ESt16initializer_listIS7_ERKS8_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIS_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EESaIS7_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

attributes #0 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass