<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63871>63871</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang with assertion on crashed when openmp's 5.1 dispatch construct is used
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
andrewkallai
</td>
</tr>
</table>
<pre>
testcase:
```
# 1 "<built-in>"
void a(){
#pragma omp dispatch
a();
}
```
https://godbolt.org/z/G5vqKvW1r
Program arguments: clang -fopenmp -c -emit-llvm -Xclang -disable-llvm-passes
Stack dump:
```
#0 0x00000000020c39e7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/Unix/Signals.inc:602:13
#1 0x00000000020c1b50 llvm::sys::RunSignalHandlers() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/Signals.cpp:105:18
#2 0x00000000020c30fd llvm::sys::CleanupOnSignal(unsigned long) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/Unix/Signals.inc:0:3
#3 0x0000000002047a48 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:73:5
#4 0x0000000002047a48 CrashRecoverySignalHandler(int) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:390:51
#5 0x00007f5ad38fc8c0 __restore_rt (/lib64/libpthread.so.0+0x168c0)
#6 0x00007f5ad235ccbb raise (/lib64/libc.so.6+0x4acbb)
#7 0x00007f5ad235e355 abort (/lib64/libc.so.6+0x4c355)
#8 0x000000000204d881 (/autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230713/bin/clang-17+0x204d881)
#9 0x0000000002318878 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CGStmt.cpp:324:5
#10 0x00000000023240cc clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CGStmt.cpp:505:22
#11 0x000000000238c630 clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:0:5
#12 0x000000000238d244 clang::CodeGen::CodeGenFunction::getLangOpts() const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenFunction.h:2003:51
#13 0x000000000238d244 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp:1467:7
#14 0x00000000023b34dd clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:5656:3
#15 0x00000000023ab9cd clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:0:12
#16 0x000000000239e0e0 __gnu_cxx::__normal_iterator<clang::CXXRecordDecl const* const*, std::vector<clang::CXXRecordDecl const*, std::allocator<clang::CXXRecordDecl const*>>>::__normal_iterator(clang::CXXRecordDecl const* const* const&) /usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/bits/stl_iterator.h:783:20
#17 0x000000000239e0e0 std::vector<clang::CXXRecordDecl const*, std::allocator<clang::CXXRecordDecl const*>>::begin() const /usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/bits/stl_vector.h:573:16
#18 0x000000000239e0e0 std::vector<clang::CXXRecordDecl const*, std::allocator<clang::CXXRecordDecl const*>>::empty() const /usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/bits/stl_vector.h:760:16
#19 0x000000000239e0e0 clang::CodeGen::CodeGenModule::EmitDeferred() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:3053:26
#20 0x000000000239bc8b clang::CodeGen::CodeGenModule::Release() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:760:3
#21 0x00000000030b5ff8 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/ModuleBuilder.cpp:291:11
#22 0x00000000030b281e clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:313:13
#23 0x0000000003e50fe4 __gnu_cxx::__normal_iterator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>*, std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>::__normal_iterator(std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>* const&) /usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/bits/stl_iterator.h:783:20
#24 0x0000000003e50fe4 std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>::begin() /usr/lib64/gcc/x86_64-suse-linux/7/../../../../include/c++/7/bits/stl_vector.h:564:16
#25 0x0000000003e50fe4 void clang::finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>(std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>&, clang::Sema const&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/include/clang/Sema/TemplateInstCallback.h:54:16
#26 0x0000000003e50fe4 clang::ParseAST(clang::Sema&, bool, bool) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Parse/ParseAST.cpp:183:3
#27 0x00000000029f2f81 clang::FrontendAction::Execute() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1062:10
#28 0x000000000296b87f llvm::Error::getPtr() const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/include/llvm/Support/Error.h:272:42
#29 0x000000000296b87f llvm::Error::operator bool() /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/include/llvm/Support/Error.h:235:16
#30 0x000000000296b87f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1049:23
#31 0x0000000002ab4d62 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:272:25
#32 0x0000000000af2e3d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/tools/driver/cc1_main.cpp:249:15
#33 0x0000000000aeec5a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/tools/driver/driver.cpp:366:12
#34 0x0000000002810389 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_1::operator()() const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Driver/Job.cpp:440:30
#35 0x0000000002810389 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_1>(long) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#36 0x0000000002047788 llvm::function_ref<void ()>::operator()() const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#37 0x0000000002047788 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:426:3
#38 0x000000000280fc80 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Driver/Job.cpp:440:7
#39 0x00000000027d5ee3 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Driver/Compilation.cpp:199:15
#40 0x00000000027d62c7 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Driver/Compilation.cpp:253:13
#41 0x00000000027f2ac9 llvm::SmallVectorBase<unsigned int>::empty() const /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/llvm/include/llvm/ADT/SmallVector.h:94:46
#42 0x00000000027f2ac9 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/lib/Driver/Driver.cpp:1896:23
#43 0x0000000000aee0bc clang_main(int, char**, llvm::ToolContext const&) /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/llvm-project/clang/tools/driver/driver.cpp:542:21
#44 0x0000000000afd831 main /lustre/orion/csc372/scratch/cabarcasf/ums012/llvm17_git/build_frontier/tools/clang/tools/driver/clang-driver.cpp:15:3
#45 0x00007f5ad234729d __libc_start_main (/lib64/libc.so.6+0x3529d)
#46 0x0000000000aeabaa _start /home/abuild/rpmbuild/BUILD/glibc-2.31/csu/../sysdeps/x86_64/start.S:122:0
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 8b4a27f410ba42b2e19651ddafc60cd878d0963c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```
script:
```
# Crash reproducer for clang version 17.0.0 (https://github.com/llvm/llvm-project.git 8b4a27f410ba42b2e19651ddafc60cd878d0963c)
# Driver args: "-fopenmp" "-c" "-emit-llvm" "-Xclang" "-disable-llvm-passes" "/autofs/nccs-svm1_home1/andrewka/sollve_vv/tests/4.5/dispatch_construct.c"
# Original command: "/autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230713/bin/clang-17" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc" "-emit-llvm-uselists" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "dispatch_construct.c" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debugger-tuning=gdb" "-fcoverage-compilation-dir=/ccs/home/andrewka/sollve_vv" "-resource-dir" "/autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230713/lib/clang/17" "-c-isystem" "/sw/frontier/ums/ums012/llvm/17.0.0-20230713/include" "-cxx-isystem" "/sw/frontier/ums/ums012/llvm/17.0.0-20230713/include" "-internal-isystem" "/autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230713/lib/clang/17/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-fdebug-compilation-dir=/ccs/home/andrewka/sollve_vv" "-ferror-limit" "19" "-fopenmp" "-fgnuc-version=4.2.1" "-fcolor-diagnostics" "-disable-llvm-passes" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "dispatch_construct.bc" "-x" "c" "/autofs/nccs-svm1_home1/andrewka/sollve_vv/tests/4.5/dispatch_construct.c"
"/autofs/nccs-svm1_sw/frontier/ums/ums012/llvm/17.0.0-20230713/bin/clang-17" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc" "-emit-llvm-uselists" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "dispatch_construct.c" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-funwind-tables=2" "-target-cpu" "x86-64" "-tune-cpu" "generic" "-debugger-tuning=gdb" "-fcoverage-compilation-dir=/ccs/home/andrewka/sollve_vv" "-c-isystem" "/sw/frontier/ums/ums012/llvm/17.0.0-20230713/include" "-cxx-isystem" "/sw/frontier/ums/ums012/llvm/17.0.0-20230713/include" "-fdebug-compilation-dir=/ccs/home/andrewka/sollve_vv" "-ferror-limit" "19" "-fopenmp" "-fgnuc-version=4.2.1" "-fcolor-diagnostics" "-disable-llvm-passes" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c" "dispatch_construct-a9bf45.c"
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXMty2za4fhp6w6GGBO8LL2QpStOTTjOx22bHAUGQxgkIsADoyH36MwBJ8WLJtZNGdk-T0UQU7v_33wHQUEpSMYwvrfDKCrcXsFW3XFxCVgj85TOkFJKLnBf3lwpLhaDElr-23K3lrq3I7T_dT-Dbnm0BYPmbvCVUOYRZ_htdYOrvOClsaIHEAqkVX3WFtm3bFvAbAasa2rxu7ILIBip029cPHfy-gxVvj85-q1Qj9dLAzgK7ihc5p2rFRWWB3V8W2L0N7_78n7s_PNE1_yB4JWBtQ1G1NWZKd7URhayynZI3mNWN7SDbwTVRDqV3te186qsLImFOsSl1Gigllt2Y1wqiz3bR1s0jELm2u3eHf8BFfopjWw-l-_hreS-7hw-CMGVGvBEQYQskYyMBv2RcKoFhbYHIAhubMGWB1LbAjra6wgI7LghnFtghifwYWGAnkTC4gh2CORQIytICu7aWrqer9fBenFVE9T-cRvD_xWj4qb9IboHddds0XOji3xjZ6wJSMUjlijBk-evIBZa_9vyefxbwvQXJXh66x0j-2LJuqJ8gKygWsmP9uakayEGN5qPnhvr_ZCQHLDnolsUxcjYUQ9Y2v_ZEWSBpmVG1wqacVa-FX67lryfM8ufUBTEMEtsCCWSc3de8lTaDNZaNkcm0p1RAefsRI36Hxf2GM4X36l3d0K6246ZpY4HESOrGfmkoji2553jsW_46HBEJjiEy6z-T2oHG10SSn2ouh95IVNgTFZchLPykRAly7SwTWCoucCaUbZRPTxIF3XejbgWGxUrylWuBK3fvRQlytRAcRo2mowI_RCjPbQGJxA-HQ3qgyAwUQJTns4HixUDYD0Mb5vzYuqYDIT8MZwMlC-YVSeL1Q8BW8VJaYMcQko68q71MfrHArhScKaIZqdmxZIoFdl68cleuA1zgu7HnW2CXE8Nb7R8cLzZL6eeaLSadLcb3kiROOqfT6xEv8FvMZj92LUNKy44pfFMTda1qZYFk0k-X2IgzqSyw1to1WqO1EPD-Iy4tfzPpsFZKjB20j_5-0tpNO4jrQCLYbd7qZQ8CCoJR6bTLmLtJHwQuQs-HasPrhres0DP9QdQtb9U14g2ewzdtNaBivGrOOdXfp-ZdV9XvkLb4mvLvqvBPgjA0jmoItjSGc7_rJyjy3edjOJRc8eL-UbF7Afrna-6BcOeSBBYoFCAInodChdV7yKpfGzVEJIboFyf3VvPbdf2JadcE-99M8FvMsIAK68o5y99SnkO6xYjOzcyhf2d_Ts72dmj4jpV8omuvRXa8IIp1CDCiOff-fu4HRfF3aP7Ci5biUYU61IaptrgkjHRoPQXbrtwYmpfVs46swdxEYTRGjhqpcI4UzFP0lUj9_0BI2yFvYo6jOT4pdrEOuSrWZmi_7yjJMsZFDWlGlNZALuZ-e_Ppkw7wRKExOJjemeuXquja3mH0xP6zbpBSjp46sw4d-s_x1c_97OOrX5qDVopJoFchZIHdPomyKHBkK7FDCWt1OhNbYLdaPfyPMERbbcB2yAJX5mPa5kTb8Z1U4zqNKY0T3xjUkWPxMY69CMC6RY4rHWbOHdAZQOroNBCFJjfyohGi5FVBhOtG3b8sRHHkLiBKj0H0TLu4xSUWAhffeUfkOebNd0OjLyOlYBG0pzlK8udQ-hFTDCV-RUR23BydHJjF1L6bh2X599sj3cCdqVnui9wIyCSF2tn9xsgisVtf3_SJ_AtFSR0YVy2hBRY9JiD1tISPEScAC1BA4uEp368g-oxZseFMtjUW_x7y-6f1NET0PX-yv6nJnwXcPg7dEgdPcewHe9cy8meLs0YtDN4NrhsKFX7HpIJMEQPTBlKaQ_R5ZjELXMKWqqzAFCv8nFE663kqdnhNSzzhIF7REv8-GnpFi32FARcIjmnSD6n8R6RyGUKeP3iMgnlkBMJj7DbHhBMSS8IgJX_hKag_JOHb7NPEEP2A8hug7LaJp1uiuIZn3daaqGBfopdggd2UiGHtnRoutTA6poUTmj5AIfH6-max-WummW2Td9_nitLMsobv9fXNsINnnMokOpsn8WkJysSbkrcTOsRkxXq6773HqFXnTUSGdUweZ3Gn50bmYH3iLufJdxrlSVxOtsXeCMHFYQv7gxJn2b3uD8lGwewLxoNKs65u9zrWJAXjJhlIn0wSb7pQohe7c9wUeBpNfjhXsMWVj56mxfkToVh09gbhmQz2YjnTvYXInjM3mkjpctkHOQ1SA8MIwPwgCuZBEYEpAD2p44B32uQ_IPsBTufc6x0IvzHStju55CFJNpINxnOo-bURF5YA-4WNkJfV0MRkx89sb-HioHZjz8vAxkRMZ8JCcU51aFcIcmdOyAcCBrIN770J2f6cbIxRCO0BvY3XwTkh_rqGlP5ugpJuq-QIBtF8-1-P0e8TnNX3PgCjexj2CaJofgCwuEiSeK6fpFM16MfpZH3jbXhdQ1YsPdJROTnENbzRQgg1bhNMlSCsMi0fxFdZhvZ7z-vzAygJyqRp3iM_a6wLMiWgju_76kfCtaH-sL_QWer1wQd1XSwQZN7cpvd3_s5_2LodWPkzz3s-BoHZAhzdrh8e46NJW0bIy_6wLxOGP6Z2uMnYJ2Ooj8qyks3jz_-2HOjs5EyXwh748_X2Rnv1m_fDWS2kb_ZKQGk8exAuFDpa3gyLk-R5MvACAv91tC8OM_34cdKP3UXr9_hbdg1LTO9nIvw4VK_qLl0A5ufeiytmiVuixP1Pm_WXttXj7Y3Fjbu4CDH2T_LGxHLwQRY4MGwWiy466gazq2NPa7qeZdAvBN-E7iGETxdRXOAucIwAip-L4888l6dB_Jnn74mc3797LCo8iGYDiZbK_l7xU3Gf7t-8MvRBuDhgCub5U1wCiNLj4FyZ9zM2h9vVGpVHD8dfwsWMyzWuJQ205o75cgCOkXuCsdvJ8ywnO5I_nhLSMwrbubLVg3htpymJl6TRPDUPHqRnbt7fsx3y0oFW4zTWDy4Yv87kKwxM-j2eUQfBIv0uEt-zNYn_3ErzltAim1wfH9Z4Ons2N8ZnK_fCWXQRhPOb8EEM0sLOMkpy7dGhUFlPxOlb8X4I0uJwEV0PGi24DnMI7W44DcctrzUY0BBkgZ1o6uHx6rd377cW2FV6CgesfM-g1Q5HQvJeFriRh4MkcwwEhVpdmwASmFDSrGNQHhv3e3r961dlv9Fio16NSkgoLuwvRN3aeE-0mBXY9vxAE91KbDt3tuK2xNgmk52jdDKNfYeFJJzZ3dV93XHxvhhRt22-QryexIQTwVtVRNlJHkAQl4Hn5jAAOcBeGoVeUcASRS4qkjgp3DTy0WHuGygqrONeuz9Va9lnxr-w7mDNqVjbtzMvVtg1LzDVrRsuyf7oC2QSCdKYSPrUG3gmcrUFbgQvWoSFXXJhvyQIelGdFbKhqMx7dhYAw0t2FgDmJxoeDi_cDQWfeu3pfh17-a6rOv5GhxZlLaLD64xaHjmldzi7u9MaiaU5qgxWodbL_tXDzBgy0SK1QtbkRr39qyAVYZAOstkT831fJukBQt7wqARpKO5_nZSsJZ5O_hBjp5WYEgPBHN5SYHyYmWIoHCiVk-OSC-zk3XWeoV7bH6ckFDsM1kOvE1B2HQSmvZo6ncx3FQ05NGkIcii-O1SBaQWRTkMOy6tLAWvsNJwwpT3wFtKhl1PWUN06WAjGD0Vl4yDOlIBIWf5WW4q-gnFH8JYVhFWO7neY4EACFw6kBI4y55Qt-0JY4SiNmrT87WGhyui-g5p2ZJSj7WFf3TI8qawww2Ikv8B5W1VY6GYmZ9tWRX6Y02SlsMIOGoMYp9CBydbsyMqJCT8q9t04AkveCoRN18d06GsFuQtFBuc3EWWHyHupcD3O-rVTHELMfuT9_ruNbcSLQfpwgu8K2dOX0d_m4AjSr-j21ZdAjrU9NTne64cj_H92h27Vi26l0ZtvVIvSxCMOJbUO6kyZlx4q516rrFiLnN6vWv42WIGVN9FTyoVTEFgxLhVBD6zsQyfmlLAohCQHf7fNsrebTfbT-vc32faP9ccdyDa7d9n6-hfL3x6m4qet7mj19_0DOpPD_OEZf3jGf6dn_Hc6qP-s9Vsatoca5sA0L4NwGs0PmdNFcekXqZ_CC3zpRUnqh3ESxBe3l1FU5kmMy9CPirBMEUAR8ErPd5MYFiDAF-Sy50XgJW7gxqvECwKE3ThIQIjTPLACF9eQ0JWmdMVFdUGkbPFl5Cexd0Fhjqk0f3UFAIa_2KZSLzDcXojLzjC1lbQC1xiicRRFFMWXXU5nsmKNodAMtzmzkU4Adb58i5k9MCyWdrjyDn9bxT4gYxNptxIXF62gl89LB7UE6iVryTIk_V8AAAD__-B-srM">