; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow (inputData)

; 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::__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] }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%class.tuple3.42 = type { i32, i32, double }
%"class.std::allocator.0" = type { i8 }
%"struct.std::pair.45" = type { i32, %class.tuple3.42 }
%class.InputData = type { %class.InputFile.base, %"class.std::basic_ifstream", %"class.std::basic_ifstream", %"class.std::basic_ifstream", %"class.std::basic_ifstream", i32, i32, i32, i32, i8, i8, i8, i8, %"class.std::vector.4", %"class.std::vector.9", %"class.std::vector.4", %"class.std::vector.4", %"class.std::multimap", %"class.std::multimap", %"class.std::set", %"class.std::set", %"class.std::vector.22", %"class.std::vector.27", %"class.std::vector.27", double, double, double, double, double, double }
%class.InputFile.base = type <{ %"class.std::vector", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8 }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.3 }
%union.anon.3 = type { i32 }
%"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::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl" }
%"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ThroatStruct *, std::allocator<ThroatStruct *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl" }
%"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<tuple3<PoreStruct *, int *, int *>, std::allocator<tuple3<PoreStruct *, int *, int *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::multimap" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<int, std::pair<const int, tuple3<int, int, double>>, std::_Select1st<std::pair<const int, tuple3<int, int, double>>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, tuple3<int, int, double>>, std::_Select1st<std::pair<const int, tuple3<int, int, double>>>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.17" }
%"class.std::_Rb_tree.17" = type { %"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<tuple3<int, int, double>, std::allocator<tuple3<int, int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.27" = type { %"struct.std::_Vector_base.28" }
%"struct.std::_Vector_base.28" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__._ZNK9InputData13getOutletDataESt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEiRiS7_ = external hidden unnamed_addr constant [14 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [47 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 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 #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK9InputData13getOutletDataESt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEiRiS7_(ptr noundef nonnull align 8 dereferenceable(2640) %0, ptr %1, i32 noundef %2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4) #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %class.tuple3.42, align 8
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i1, align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i1, align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i1, align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::allocator.0", align 1
  %29 = alloca i1, align 1
  %30 = alloca i1, align 1
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i1, align 1
  %34 = alloca i1, align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca i1, align 1
  %37 = alloca %"class.std::allocator.0", align 1
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca i1, align 1
  %45 = alloca %"class.std::allocator.0", align 1
  %46 = alloca i1, align 1
  %47 = alloca i1, align 1
  %48 = alloca i1, align 1
  %49 = alloca i1, align 1
  %50 = alloca i1, align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca i1, align 1
  %53 = alloca i32, align 4
  %54 = alloca i1, align 1
  %55 = alloca i1, align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca i1, align 1
  %59 = alloca %"class.std::allocator.0", align 1
  %60 = alloca i1, align 1
  %61 = alloca i1, align 1
  %62 = alloca i1, align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca i1, align 1
  %65 = alloca %"class.std::allocator.0", align 1
  %66 = alloca i1, align 1
  %67 = alloca i1, align 1
  %68 = alloca i1, align 1
  %69 = alloca i1, align 1
  %70 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %6, i32 0, i32 0
  store ptr %1, ptr %70, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store i32 %2, ptr %8, align 4, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %71 = load ptr, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #6
  %72 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  %73 = getelementptr inbounds %"struct.std::pair.45", ptr %72, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %11, ptr align 8 %73, i64 16, i1 false), !tbaa.struct !11
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE6secondEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
  %75 = load i32, ptr %74, align 4, !tbaa !9
  %76 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 6
  %77 = load i32, ptr %76, align 4, !tbaa !14
  %78 = load i32, ptr %8, align 4, !tbaa !9
  %79 = add nsw i32 %78, 1
  %80 = mul nsw i32 %77, %79
  %81 = add nsw i32 %75, %80
  %82 = load ptr, ptr %10, align 8, !tbaa !5
  store i32 %81, ptr %82, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #6
  %83 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
  %84 = load i32, ptr %83, align 4, !tbaa !9
  %85 = call noundef zeroext i1 @_ZNK9InputData12outletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640) %71, i32 noundef %84)
  %86 = zext i1 %85 to i8
  store i8 %86, ptr %12, align 1, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #6
  %87 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
  %88 = load i32, ptr %87, align 4, !tbaa !9
  %89 = call noundef zeroext i1 @_ZNK9InputData11inletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640) %71, i32 noundef %88)
  %90 = zext i1 %89 to i8
  store i8 %90, ptr %13, align 1, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16) %11)
  %92 = load i32, ptr %91, align 4, !tbaa !9
  store i32 %92, ptr %14, align 4, !tbaa !9
  %93 = load i32, ptr %8, align 4, !tbaa !9
  %94 = icmp sgt i32 %93, 0
  br i1 %94, label %95, label %116

95:                                               ; preds = %5
  %96 = load i8, ptr %12, align 1, !tbaa !62, !range !63, !noundef !64
  %97 = trunc i8 %96 to i1
  br i1 %97, label %98, label %116

98:                                               ; preds = %95
  %99 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 23
  %100 = load i32, ptr %14, align 4, !tbaa !9
  %101 = sub nsw i32 %100, 1
  %102 = sext i32 %101 to i64
  %103 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %99, i64 noundef %102) #6
  %104 = load i32, ptr %103, align 4, !tbaa !9
  %105 = load i32, ptr %8, align 4, !tbaa !9
  %106 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 7
  %107 = load i32, ptr %106, align 8, !tbaa !65
  %108 = mul nsw i32 %105, %107
  %109 = add nsw i32 %104, %108
  %110 = load i32, ptr %8, align 4, !tbaa !9
  %111 = sub nsw i32 %110, 1
  %112 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 5
  %113 = load i32, ptr %112, align 8, !tbaa !66
  %114 = mul nsw i32 %111, %113
  %115 = sub nsw i32 %109, %114
  store i32 %115, ptr %14, align 4, !tbaa !9
  br label %437

116:                                              ; preds = %95, %5
  %117 = load i8, ptr %13, align 1, !tbaa !62, !range !63, !noundef !64
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %436

119:                                              ; preds = %116
  %120 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 23
  %121 = load i32, ptr %14, align 4, !tbaa !9
  %122 = sub nsw i32 %121, 1
  %123 = sext i32 %122 to i64
  %124 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef %123) #6
  %125 = load i32, ptr %124, align 4, !tbaa !9
  %126 = icmp ne i32 %125, -99
  store i1 false, ptr %17, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %21, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %25, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %47, align 1
  store i1 false, ptr %48, align 1
  store i1 false, ptr %49, align 1
  store i1 false, ptr %50, align 1
  store i1 false, ptr %52, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  store i1 false, ptr %54, align 1
  store i1 false, ptr %55, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %60, align 1
  store i1 false, ptr %61, align 1
  store i1 false, ptr %62, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %66, align 1
  store i1 false, ptr %67, align 1
  store i1 false, ptr %68, align 1
  store i1 false, ptr %69, align 1
  br i1 %126, label %143, label %127

127:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #6
  store i1 true, ptr %19, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #6
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #6
  store i1 true, ptr %23, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #6
  store i1 true, ptr %25, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #6
  store i1 true, ptr %27, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #6
  store i1 true, ptr %29, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  store i1 true, ptr %30, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %128 unwind label %265

128:                                              ; preds = %127
  store i1 true, ptr %33, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.62)
          to label %129 unwind label %269

129:                                              ; preds = %128
  store i1 true, ptr %34, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #6
  store i1 true, ptr %36, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #6
  store i1 true, ptr %38, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  store i1 true, ptr %39, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @__FUNCTION__._ZNK9InputData13getOutletDataESt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEiRiS7_, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %130 unwind label %273

130:                                              ; preds = %129
  store i1 true, ptr %40, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %131 unwind label %277

131:                                              ; preds = %130
  store i1 true, ptr %41, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.63)
          to label %132 unwind label %281

132:                                              ; preds = %131
  store i1 true, ptr %42, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #6
  store i1 true, ptr %44, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #6
  store i1 true, ptr %46, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  store i1 true, ptr %47, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %133 unwind label %285

133:                                              ; preds = %132
  store i1 true, ptr %48, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %134 unwind label %289

134:                                              ; preds = %133
  store i1 true, ptr %49, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.65)
          to label %135 unwind label %293

135:                                              ; preds = %134
  store i1 true, ptr %50, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #6
  store i1 true, ptr %52, align 1
  store i32 704, ptr %53, align 4, !tbaa !9
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %136 unwind label %297

136:                                              ; preds = %135
  store i1 true, ptr %54, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %137 unwind label %301

137:                                              ; preds = %136
  store i1 true, ptr %55, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #6
  store i1 true, ptr %58, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #6
  store i1 true, ptr %60, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  store i1 true, ptr %61, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.66, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %138 unwind label %305

138:                                              ; preds = %137
  store i1 true, ptr %62, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #6
  store i1 true, ptr %64, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #6
  store i1 true, ptr %66, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  store i1 true, ptr %67, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %139 unwind label %309

139:                                              ; preds = %138
  store i1 true, ptr %68, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %140 unwind label %313

140:                                              ; preds = %139
  store i1 true, ptr %69, align 1
  %141 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %15, ptr noundef %56, i32 noundef 0)
          to label %142 unwind label %317

142:                                              ; preds = %140
  br label %143

143:                                              ; preds = %142, %119
  %144 = phi i1 [ true, %119 ], [ %141, %142 ]
  %145 = xor i1 %144, true
  %146 = load i1, ptr %69, align 1
  br i1 %146, label %147, label %148

147:                                              ; preds = %143
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  br label %148

148:                                              ; preds = %147, %143
  %149 = load i1, ptr %68, align 1
  br i1 %149, label %150, label %151

150:                                              ; preds = %148
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %151

151:                                              ; preds = %150, %148
  %152 = load i1, ptr %67, align 1
  br i1 %152, label %153, label %154

153:                                              ; preds = %151
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  br label %154

154:                                              ; preds = %153, %151
  %155 = load i1, ptr %66, align 1
  br i1 %155, label %156, label %157

156:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #6
  br label %157

157:                                              ; preds = %156, %154
  %158 = load i1, ptr %64, align 1
  br i1 %158, label %159, label %160

159:                                              ; preds = %157
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  br label %160

160:                                              ; preds = %159, %157
  %161 = load i1, ptr %62, align 1
  br i1 %161, label %162, label %163

162:                                              ; preds = %160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %163

163:                                              ; preds = %162, %160
  %164 = load i1, ptr %61, align 1
  br i1 %164, label %165, label %166

165:                                              ; preds = %163
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  br label %166

166:                                              ; preds = %165, %163
  %167 = load i1, ptr %60, align 1
  br i1 %167, label %168, label %169

168:                                              ; preds = %166
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  br label %169

169:                                              ; preds = %168, %166
  %170 = load i1, ptr %58, align 1
  br i1 %170, label %171, label %172

171:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  br label %172

172:                                              ; preds = %171, %169
  %173 = load i1, ptr %55, align 1
  br i1 %173, label %174, label %175

174:                                              ; preds = %172
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %175

175:                                              ; preds = %174, %172
  %176 = load i1, ptr %54, align 1
  br i1 %176, label %177, label %178

177:                                              ; preds = %175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %178

178:                                              ; preds = %177, %175
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  %179 = load i1, ptr %52, align 1
  br i1 %179, label %180, label %181

180:                                              ; preds = %178
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  br label %181

181:                                              ; preds = %180, %178
  %182 = load i1, ptr %50, align 1
  br i1 %182, label %183, label %184

183:                                              ; preds = %181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %184

184:                                              ; preds = %183, %181
  %185 = load i1, ptr %49, align 1
  br i1 %185, label %186, label %187

186:                                              ; preds = %184
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %187

187:                                              ; preds = %186, %184
  %188 = load i1, ptr %48, align 1
  br i1 %188, label %189, label %190

189:                                              ; preds = %187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %190

190:                                              ; preds = %189, %187
  %191 = load i1, ptr %47, align 1
  br i1 %191, label %192, label %193

192:                                              ; preds = %190
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  br label %193

193:                                              ; preds = %192, %190
  %194 = load i1, ptr %46, align 1
  br i1 %194, label %195, label %196

195:                                              ; preds = %193
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  br label %196

196:                                              ; preds = %195, %193
  %197 = load i1, ptr %44, align 1
  br i1 %197, label %198, label %199

198:                                              ; preds = %196
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #6
  br label %199

199:                                              ; preds = %198, %196
  %200 = load i1, ptr %42, align 1
  br i1 %200, label %201, label %202

201:                                              ; preds = %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %202

202:                                              ; preds = %201, %199
  %203 = load i1, ptr %41, align 1
  br i1 %203, label %204, label %205

204:                                              ; preds = %202
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %205

205:                                              ; preds = %204, %202
  %206 = load i1, ptr %40, align 1
  br i1 %206, label %207, label %208

207:                                              ; preds = %205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %208

208:                                              ; preds = %207, %205
  %209 = load i1, ptr %39, align 1
  br i1 %209, label %210, label %211

210:                                              ; preds = %208
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  br label %211

211:                                              ; preds = %210, %208
  %212 = load i1, ptr %38, align 1
  br i1 %212, label %213, label %214

213:                                              ; preds = %211
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #6
  br label %214

214:                                              ; preds = %213, %211
  %215 = load i1, ptr %36, align 1
  br i1 %215, label %216, label %217

216:                                              ; preds = %214
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  br label %217

217:                                              ; preds = %216, %214
  %218 = load i1, ptr %34, align 1
  br i1 %218, label %219, label %220

219:                                              ; preds = %217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %220

220:                                              ; preds = %219, %217
  %221 = load i1, ptr %33, align 1
  br i1 %221, label %222, label %223

222:                                              ; preds = %220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %223

223:                                              ; preds = %222, %220
  %224 = load i1, ptr %30, align 1
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  br label %226

226:                                              ; preds = %225, %223
  %227 = load i1, ptr %29, align 1
  br i1 %227, label %228, label %229

228:                                              ; preds = %226
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  br label %229

229:                                              ; preds = %228, %226
  %230 = load i1, ptr %27, align 1
  br i1 %230, label %231, label %232

231:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #6
  br label %232

232:                                              ; preds = %231, %229
  %233 = load i1, ptr %25, align 1
  br i1 %233, label %234, label %235

234:                                              ; preds = %232
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %235

235:                                              ; preds = %234, %232
  %236 = load i1, ptr %23, align 1
  br i1 %236, label %237, label %238

237:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %238

238:                                              ; preds = %237, %235
  %239 = load i1, ptr %21, align 1
  br i1 %239, label %240, label %241

240:                                              ; preds = %238
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %241

241:                                              ; preds = %240, %238
  %242 = load i1, ptr %19, align 1
  br i1 %242, label %243, label %244

243:                                              ; preds = %241
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %244

244:                                              ; preds = %243, %241
  %245 = load i1, ptr %17, align 1
  br i1 %245, label %246, label %247

246:                                              ; preds = %244
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %247

247:                                              ; preds = %246, %244
  %248 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 23
  %249 = load i32, ptr %14, align 4, !tbaa !9
  %250 = sub nsw i32 %249, 1
  %251 = sext i32 %250 to i64
  %252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %251) #6
  %253 = load i32, ptr %252, align 4, !tbaa !9
  %254 = load i32, ptr %8, align 4, !tbaa !9
  %255 = add nsw i32 %254, 1
  %256 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 7
  %257 = load i32, ptr %256, align 8, !tbaa !65
  %258 = mul nsw i32 %255, %257
  %259 = add nsw i32 %253, %258
  %260 = load i32, ptr %8, align 4, !tbaa !9
  %261 = getelementptr inbounds %class.InputData, ptr %71, i32 0, i32 5
  %262 = load i32, ptr %261, align 8, !tbaa !66
  %263 = mul nsw i32 %260, %262
  %264 = sub nsw i32 %259, %263
  store i32 %264, ptr %14, align 4, !tbaa !9
  br label %436

265:                                              ; preds = %127
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %31, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %32, align 4
  br label %411

269:                                              ; preds = %128
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %31, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %32, align 4
  br label %407

273:                                              ; preds = %129
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %31, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %32, align 4
  br label %394

277:                                              ; preds = %130
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %31, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %32, align 4
  br label %390

281:                                              ; preds = %131
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %31, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %32, align 4
  br label %386

285:                                              ; preds = %132
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %31, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %32, align 4
  br label %373

289:                                              ; preds = %133
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %31, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %32, align 4
  br label %369

293:                                              ; preds = %134
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %31, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %32, align 4
  br label %365

297:                                              ; preds = %135
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %31, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %32, align 4
  br label %358

301:                                              ; preds = %136
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %31, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %32, align 4
  br label %354

305:                                              ; preds = %137
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %31, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %32, align 4
  br label %341

309:                                              ; preds = %138
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %31, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %32, align 4
  br label %328

313:                                              ; preds = %139
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %31, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %32, align 4
  br label %324

317:                                              ; preds = %140
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %31, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %32, align 4
  %321 = load i1, ptr %69, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %317
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  br label %323

323:                                              ; preds = %322, %317
  br label %324

324:                                              ; preds = %323, %313
  %325 = load i1, ptr %68, align 1
  br i1 %325, label %326, label %327

326:                                              ; preds = %324
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %327

327:                                              ; preds = %326, %324
  br label %328

328:                                              ; preds = %327, %309
  %329 = load i1, ptr %67, align 1
  br i1 %329, label %330, label %331

330:                                              ; preds = %328
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  br label %331

331:                                              ; preds = %330, %328
  %332 = load i1, ptr %66, align 1
  br i1 %332, label %333, label %334

333:                                              ; preds = %331
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #6
  br label %334

334:                                              ; preds = %333, %331
  %335 = load i1, ptr %64, align 1
  br i1 %335, label %336, label %337

336:                                              ; preds = %334
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  br label %337

337:                                              ; preds = %336, %334
  %338 = load i1, ptr %62, align 1
  br i1 %338, label %339, label %340

339:                                              ; preds = %337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %340

340:                                              ; preds = %339, %337
  br label %341

341:                                              ; preds = %340, %305
  %342 = load i1, ptr %61, align 1
  br i1 %342, label %343, label %344

343:                                              ; preds = %341
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  br label %344

344:                                              ; preds = %343, %341
  %345 = load i1, ptr %60, align 1
  br i1 %345, label %346, label %347

346:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  br label %347

347:                                              ; preds = %346, %344
  %348 = load i1, ptr %58, align 1
  br i1 %348, label %349, label %350

349:                                              ; preds = %347
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  br label %350

350:                                              ; preds = %349, %347
  %351 = load i1, ptr %55, align 1
  br i1 %351, label %352, label %353

352:                                              ; preds = %350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %353

353:                                              ; preds = %352, %350
  br label %354

354:                                              ; preds = %353, %301
  %355 = load i1, ptr %54, align 1
  br i1 %355, label %356, label %357

356:                                              ; preds = %354
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %357

357:                                              ; preds = %356, %354
  br label %358

358:                                              ; preds = %357, %297
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  %359 = load i1, ptr %52, align 1
  br i1 %359, label %360, label %361

360:                                              ; preds = %358
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  br label %361

361:                                              ; preds = %360, %358
  %362 = load i1, ptr %50, align 1
  br i1 %362, label %363, label %364

363:                                              ; preds = %361
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %364

364:                                              ; preds = %363, %361
  br label %365

365:                                              ; preds = %364, %293
  %366 = load i1, ptr %49, align 1
  br i1 %366, label %367, label %368

367:                                              ; preds = %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %368

368:                                              ; preds = %367, %365
  br label %369

369:                                              ; preds = %368, %289
  %370 = load i1, ptr %48, align 1
  br i1 %370, label %371, label %372

371:                                              ; preds = %369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %372

372:                                              ; preds = %371, %369
  br label %373

373:                                              ; preds = %372, %285
  %374 = load i1, ptr %47, align 1
  br i1 %374, label %375, label %376

375:                                              ; preds = %373
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  br label %376

376:                                              ; preds = %375, %373
  %377 = load i1, ptr %46, align 1
  br i1 %377, label %378, label %379

378:                                              ; preds = %376
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #6
  br label %379

379:                                              ; preds = %378, %376
  %380 = load i1, ptr %44, align 1
  br i1 %380, label %381, label %382

381:                                              ; preds = %379
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #6
  br label %382

382:                                              ; preds = %381, %379
  %383 = load i1, ptr %42, align 1
  br i1 %383, label %384, label %385

384:                                              ; preds = %382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %385

385:                                              ; preds = %384, %382
  br label %386

386:                                              ; preds = %385, %281
  %387 = load i1, ptr %41, align 1
  br i1 %387, label %388, label %389

388:                                              ; preds = %386
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %389

389:                                              ; preds = %388, %386
  br label %390

390:                                              ; preds = %389, %277
  %391 = load i1, ptr %40, align 1
  br i1 %391, label %392, label %393

392:                                              ; preds = %390
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %393

393:                                              ; preds = %392, %390
  br label %394

394:                                              ; preds = %393, %273
  %395 = load i1, ptr %39, align 1
  br i1 %395, label %396, label %397

396:                                              ; preds = %394
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  br label %397

397:                                              ; preds = %396, %394
  %398 = load i1, ptr %38, align 1
  br i1 %398, label %399, label %400

399:                                              ; preds = %397
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #6
  br label %400

400:                                              ; preds = %399, %397
  %401 = load i1, ptr %36, align 1
  br i1 %401, label %402, label %403

402:                                              ; preds = %400
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  br label %403

403:                                              ; preds = %402, %400
  %404 = load i1, ptr %34, align 1
  br i1 %404, label %405, label %406

405:                                              ; preds = %403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %406

406:                                              ; preds = %405, %403
  br label %407

407:                                              ; preds = %406, %269
  %408 = load i1, ptr %33, align 1
  br i1 %408, label %409, label %410

409:                                              ; preds = %407
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %410

410:                                              ; preds = %409, %407
  br label %411

411:                                              ; preds = %410, %265
  %412 = load i1, ptr %30, align 1
  br i1 %412, label %413, label %414

413:                                              ; preds = %411
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  br label %414

414:                                              ; preds = %413, %411
  %415 = load i1, ptr %29, align 1
  br i1 %415, label %416, label %417

416:                                              ; preds = %414
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  br label %417

417:                                              ; preds = %416, %414
  %418 = load i1, ptr %27, align 1
  br i1 %418, label %419, label %420

419:                                              ; preds = %417
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #6
  br label %420

420:                                              ; preds = %419, %417
  %421 = load i1, ptr %25, align 1
  br i1 %421, label %422, label %423

422:                                              ; preds = %420
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %423

423:                                              ; preds = %422, %420
  %424 = load i1, ptr %23, align 1
  br i1 %424, label %425, label %426

425:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %426

426:                                              ; preds = %425, %423
  %427 = load i1, ptr %21, align 1
  br i1 %427, label %428, label %429

428:                                              ; preds = %426
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %429

429:                                              ; preds = %428, %426
  %430 = load i1, ptr %19, align 1
  br i1 %430, label %431, label %432

431:                                              ; preds = %429
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %432

432:                                              ; preds = %431, %429
  %433 = load i1, ptr %17, align 1
  br i1 %433, label %434, label %435

434:                                              ; preds = %432
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %435

435:                                              ; preds = %434, %432
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #6
  br label %440

436:                                              ; preds = %247, %116
  br label %437

437:                                              ; preds = %436, %98
  %438 = load i32, ptr %14, align 4, !tbaa !9
  %439 = load ptr, ptr %9, align 8, !tbaa !5
  store i32 %438, ptr %439, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #6
  ret void

440:                                              ; preds = %435
  %441 = load ptr, ptr %31, align 8
  %442 = load i32, ptr %32, align 4
  %443 = insertvalue { ptr, i32 } poison, ptr %441, 0
  %444 = insertvalue { ptr, i32 } %443, i32 %442, 1
  resume { ptr, i32 } %444
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE6secondEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9InputData12outletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640), i32 noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9InputData11inletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640), i32 noundef) #5 align 2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { 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 #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { inlinehint 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 #6 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{i64 0, i64 4, !9, i64 4, i64 4, !9, i64 8, i64 8, !12}
!12 = !{!13, !13, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!15, !10, i64 2212}
!15 = !{!"_ZTS9InputData", !16, i64 0, !25, i64 128, !25, i64 648, !25, i64 1168, !25, i64 1688, !10, i64 2208, !10, i64 2212, !10, i64 2216, !10, i64 2220, !24, i64 2224, !24, i64 2225, !24, i64 2226, !24, i64 2227, !33, i64 2232, !37, i64 2256, !33, i64 2280, !33, i64 2304, !41, i64 2328, !41, i64 2376, !49, i64 2424, !49, i64 2472, !54, i64 2520, !58, i64 2544, !58, i64 2568, !13, i64 2592, !13, i64 2600, !13, i64 2608, !13, i64 2616, !13, i64 2624, !13, i64 2632}
!16 = !{!"_ZTS9InputFile", !17, i64 0, !21, i64 24, !21, i64 56, !21, i64 88, !24, i64 120, !24, i64 121}
!17 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE", !26, i64 0, !27, i64 16}
!26 = !{!"_ZTSSi", !23, i64 8}
!27 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !28, i64 0, !7, i64 64, !30, i64 104, !31, i64 120, !32, i64 124, !32, i64 132, !32, i64 140, !6, i64 152, !23, i64 160, !24, i64 168, !24, i64 169, !24, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !24, i64 192, !6, i64 200, !6, i64 208, !23, i64 216, !6, i64 224, !6, i64 232}
!28 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !29, i64 56}
!29 = !{!"_ZTSSt6locale", !6, i64 0}
!30 = !{!"_ZTSSt12__basic_fileIcE", !6, i64 0, !24, i64 8}
!31 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!32 = !{!"_ZTS11__mbstate_t", !10, i64 0, !7, i64 4}
!33 = !{!"_ZTSSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt6vectorIP12ThroatStructSaIS1_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseIP12ThroatStructSaIS1_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTSSt8multimapIi6tuple3IiidESt4lessIiESaISt4pairIKiS1_EEE", !42, i64 0}
!42 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE", !43, i64 0}
!43 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !44, i64 0, !46, i64 8}
!44 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !45, i64 0}
!45 = !{!"_ZTSSt4lessIiE"}
!46 = !{!"_ZTSSt15_Rb_tree_header", !47, i64 0, !23, i64 32}
!47 = !{!"_ZTSSt18_Rb_tree_node_base", !48, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!48 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!49 = !{!"_ZTSSt3setISt4pairIiiESt4lessIS1_ESaIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !51, i64 0}
!51 = !{!"_ZTSNSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !52, i64 0, !46, i64 8}
!52 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairIiiEEE", !53, i64 0}
!53 = !{!"_ZTSSt4lessISt4pairIiiEE"}
!54 = !{!"_ZTSSt6vectorI6tuple3IiidESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseI6tuple3IiidESaIS1_EE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!58 = !{!"_ZTSSt6vectorIiSaIiEE", !59, i64 0}
!59 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!62 = !{!24, !24, i64 0}
!63 = !{i8 0, i8 2}
!64 = !{}
!65 = !{!15, !10, i64 2216}
!66 = !{!15, !10, i64 2208}


; 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::__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] }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%class.tuple3.42 = type { i32, i32, double }
%"class.std::allocator.0" = type { i8 }

@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__._ZNK9InputData13getOutletDataESt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEiRiS7_ = external hidden unnamed_addr constant [14 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [47 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 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 #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK9InputData13getOutletDataESt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEiRiS7_(ptr noundef nonnull align 8 dereferenceable(2640) %0, ptr %1, i32 noundef %2, ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %3, ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %4) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %7 = alloca %class.tuple3.42, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.0", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.0", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.0", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.0", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.0", align 1
  store ptr %1, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #6
  %27 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #6
  %28 = getelementptr inbounds i8, ptr %27, i64 8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(16) %28, i64 16, i1 false), !tbaa.struct !5
  %29 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE6secondEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %30 = load i32, ptr %29, align 4, !tbaa !6
  %31 = getelementptr inbounds i8, ptr %0, i64 2212
  %32 = load i32, ptr %31, align 4, !tbaa !12
  %33 = add nsw i32 %2, 1
  %34 = mul nsw i32 %32, %33
  %35 = add nsw i32 %34, %30
  store i32 %35, ptr %4, align 4, !tbaa !6
  %36 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %37 = load i32, ptr %36, align 4, !tbaa !6
  %38 = call noundef zeroext i1 @_ZNK9InputData12outletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640) %0, i32 noundef %37)
  %39 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %40 = load i32, ptr %39, align 4, !tbaa !6
  %41 = call noundef zeroext i1 @_ZNK9InputData11inletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640) %0, i32 noundef %40)
  %42 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  %43 = load i32, ptr %42, align 4, !tbaa !6
  %44 = icmp sgt i32 %2, 0
  %brmerge.not = and i1 %44, %38
  br i1 %brmerge.not, label %45, label %58

45:                                               ; preds = %5
  %46 = getelementptr inbounds i8, ptr %0, i64 2568
  %47 = add nsw i32 %43, -1
  %48 = sext i32 %47 to i64
  %49 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %48) #6
  %50 = load i32, ptr %49, align 4, !tbaa !6
  %51 = getelementptr inbounds i8, ptr %0, i64 2216
  %52 = load i32, ptr %51, align 8, !tbaa !61
  %53 = mul nsw i32 %52, %2
  %54 = add nsw i32 %53, %50
  %.neg = sub nsw i32 1, %2
  %55 = getelementptr inbounds i8, ptr %0, i64 2208
  %56 = load i32, ptr %55, align 8, !tbaa !62
  %.neg184 = mul i32 %.neg, %56
  %57 = add i32 %54, %.neg184
  br label %132

58:                                               ; preds = %5
  br i1 %41, label %59, label %132

59:                                               ; preds = %58
  %60 = getelementptr inbounds i8, ptr %0, i64 2568
  %61 = add nsw i32 %43, -1
  %62 = sext i32 %61 to i64
  %63 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %62) #6
  %64 = load i32, ptr %63, align 4, !tbaa !6
  %.not = icmp eq i32 %64, -99
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  br i1 %.not, label %65, label %80

65:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %66 unwind label %91

66:                                               ; preds = %65
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.62)
          to label %67 unwind label %93

67:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @__FUNCTION__._ZNK9InputData13getOutletDataESt17_Rb_tree_iteratorISt4pairIKi6tuple3IiidEEEiRiS7_, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %68 unwind label %95

68:                                               ; preds = %67
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %69 unwind label %97

69:                                               ; preds = %68
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.63)
          to label %70 unwind label %99

70:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %71 unwind label %101

71:                                               ; preds = %70
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %72 unwind label %103

72:                                               ; preds = %71
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.65)
          to label %73 unwind label %105

73:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  store i32 704, ptr %21, align 4, !tbaa !6
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %74 unwind label %107

74:                                               ; preds = %73
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %75 unwind label %109

75:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.66, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %76 unwind label %111

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %77 unwind label %113

77:                                               ; preds = %76
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %78 unwind label %115

78:                                               ; preds = %77
  %79 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %8, ptr noundef nonnull %22, i32 noundef 0)
          to label %.critedge160 unwind label %117

80:                                               ; preds = %59
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  br label %.critedge181

.critedge160:                                     ; preds = %78
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %.critedge181

.critedge181:                                     ; preds = %80, %.critedge160
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %62) #6
  %82 = load i32, ptr %81, align 4, !tbaa !6
  %83 = getelementptr inbounds i8, ptr %0, i64 2216
  %84 = load i32, ptr %83, align 8, !tbaa !61
  %85 = mul nsw i32 %84, %33
  %86 = add nsw i32 %85, %82
  %87 = getelementptr inbounds i8, ptr %0, i64 2208
  %88 = load i32, ptr %87, align 8, !tbaa !62
  %89 = mul nsw i32 %88, %2
  %90 = sub i32 %86, %89
  br label %132

91:                                               ; preds = %65
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %131

93:                                               ; preds = %66
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %130

95:                                               ; preds = %67
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %129

97:                                               ; preds = %68
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %128

99:                                               ; preds = %69
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %127

101:                                              ; preds = %70
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %126

103:                                              ; preds = %71
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %125

105:                                              ; preds = %72
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %124

107:                                              ; preds = %73
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %123

109:                                              ; preds = %74
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %122

111:                                              ; preds = %75
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %121

113:                                              ; preds = %76
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %120

115:                                              ; preds = %77
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %119

117:                                              ; preds = %78
  %118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %119

119:                                              ; preds = %115, %117
  %.pn = phi { ptr, i32 } [ %118, %117 ], [ %116, %115 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %120

120:                                              ; preds = %113, %119
  %.pn.pn = phi { ptr, i32 } [ %.pn, %119 ], [ %114, %113 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %121

121:                                              ; preds = %111, %120
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %120 ], [ %112, %111 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %122

122:                                              ; preds = %109, %121
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %121 ], [ %110, %109 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %123

123:                                              ; preds = %122, %107
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %122 ], [ %108, %107 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %124

124:                                              ; preds = %105, %123
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %123 ], [ %106, %105 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %125

125:                                              ; preds = %103, %124
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %124 ], [ %104, %103 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %126

126:                                              ; preds = %101, %125
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %125 ], [ %102, %101 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %127

127:                                              ; preds = %99, %126
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %126 ], [ %100, %99 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %128

128:                                              ; preds = %97, %127
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %127 ], [ %98, %97 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %129

129:                                              ; preds = %95, %128
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %128 ], [ %96, %95 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %130

130:                                              ; preds = %93, %129
  %.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, %129 ], [ %94, %93 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %131

131:                                              ; preds = %91, %130
  %.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, %130 ], [ %92, %91 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #6
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

132:                                              ; preds = %58, %.critedge181, %45
  %.0131 = phi i32 [ %57, %45 ], [ %90, %.critedge181 ], [ %43, %58 ]
  store i32 %.0131, ptr %3, align 4, !tbaa !6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #6
  ret void
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE6secondEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9InputData12outletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640), i32 noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK6tuple3IiidE5firstEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9InputData11inletThroatEi(ptr noundef nonnull align 8 dereferenceable(2640), i32 noundef) local_unnamed_addr #5 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { 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 #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { inlinehint 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 #6 = { 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 = !{i64 0, i64 4, !6, i64 4, i64 4, !6, i64 8, i64 8, !10}
!6 = !{!7, !7, i64 0}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !11, i64 0}
!11 = !{!"double", !8, i64 0}
!12 = !{!13, !7, i64 2212}
!13 = !{!"_ZTS9InputData", !14, i64 0, !24, i64 128, !24, i64 648, !24, i64 1168, !24, i64 1688, !7, i64 2208, !7, i64 2212, !7, i64 2216, !7, i64 2220, !23, i64 2224, !23, i64 2225, !23, i64 2226, !23, i64 2227, !32, i64 2232, !36, i64 2256, !32, i64 2280, !32, i64 2304, !40, i64 2328, !40, i64 2376, !48, i64 2424, !48, i64 2472, !53, i64 2520, !57, i64 2544, !57, i64 2568, !11, i64 2592, !11, i64 2600, !11, i64 2608, !11, i64 2616, !11, i64 2624, !11, i64 2632}
!14 = !{!"_ZTS9InputFile", !15, i64 0, !20, i64 24, !20, i64 56, !20, i64 88, !23, i64 120, !23, i64 121}
!15 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!19 = !{!"any pointer", !8, i64 0}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !22, i64 8, !8, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !19, i64 0}
!22 = !{!"long", !8, i64 0}
!23 = !{!"bool", !8, i64 0}
!24 = !{!"_ZTSSt14basic_ifstreamIcSt11char_traitsIcEE", !25, i64 0, !26, i64 16}
!25 = !{!"_ZTSSi", !22, i64 8}
!26 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !27, i64 0, !8, i64 64, !29, i64 104, !30, i64 120, !31, i64 124, !31, i64 132, !31, i64 140, !19, i64 152, !22, i64 160, !23, i64 168, !23, i64 169, !23, i64 170, !8, i64 171, !19, i64 176, !19, i64 184, !23, i64 192, !19, i64 200, !19, i64 208, !22, i64 216, !19, i64 224, !19, i64 232}
!27 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !28, i64 56}
!28 = !{!"_ZTSSt6locale", !19, i64 0}
!29 = !{!"_ZTSSt12__basic_fileIcE", !19, i64 0, !23, i64 8}
!30 = !{!"_ZTSSt13_Ios_Openmode", !8, i64 0}
!31 = !{!"_ZTS11__mbstate_t", !7, i64 0, !8, i64 4}
!32 = !{!"_ZTSSt6vectorI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseI6tuple3IP10PoreStructPiS3_ESaIS4_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!36 = !{!"_ZTSSt6vectorIP12ThroatStructSaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseIP12ThroatStructSaIS1_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIP12ThroatStructSaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!40 = !{!"_ZTSSt8multimapIi6tuple3IiidESt4lessIiESaISt4pairIKiS1_EEE", !41, i64 0}
!41 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE", !42, i64 0}
!42 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKi6tuple3IiidEESt10_Select1stIS4_ESt4lessIiESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !43, i64 0, !45, i64 8}
!43 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !44, i64 0}
!44 = !{!"_ZTSSt4lessIiE"}
!45 = !{!"_ZTSSt15_Rb_tree_header", !46, i64 0, !22, i64 32}
!46 = !{!"_ZTSSt18_Rb_tree_node_base", !47, i64 0, !19, i64 8, !19, i64 16, !19, i64 24}
!47 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!48 = !{!"_ZTSSt3setISt4pairIiiESt4lessIS1_ESaIS1_EE", !49, i64 0}
!49 = !{!"_ZTSSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !50, i64 0}
!50 = !{!"_ZTSNSt8_Rb_treeISt4pairIiiES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !51, i64 0, !45, i64 8}
!51 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairIiiEEE", !52, i64 0}
!52 = !{!"_ZTSSt4lessISt4pairIiiEE"}
!53 = !{!"_ZTSSt6vectorI6tuple3IiidESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseI6tuple3IiidESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseI6tuple3IiidESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!57 = !{!"_ZTSSt6vectorIiSaIiEE", !58, i64 0}
!58 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!61 = !{!13, !7, i64 2216}
!62 = !{!13, !7, i64 2208}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass