<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/60191>60191</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [OpenMP] linker failure when std::complex is used in kernels with amdgpu
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            jdoerfert,
            jhuber6
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ye-luo
      </td>
    </tr>
</table>

<pre>
    The issue only appears on AMD only. first bad commit 572a757fa78722fddeb9b651120607f8eee5d13f.
```
commit 572a757fa78722fddeb9b651120607f8eee5d13f (refs/bisect/bad)
Author: Alexandros Lamprineas <alexandros.lamprineas@arm.com>
Date:   Wed Jan 11 11:50:32 2023 +0000

    [IPSCCP] Enable specialization of functions.
    
    Re-enable the optimization after having fixed the compilation error
    found in SPEC/CINT2017rate/502.gcc_r when both LTO and PGO are in use
    (see https://reviews.llvm.org/D141474).
    
 Differential Revision: https://reviews.llvm.org/D140210
```
It is also possible this commit just exposed a bug.

Reproducer
```bash
$ git clone https://github.com/QMCPACK/qmcpack.git
$ mkdir qmcpack/build_clang_offload_cplx; cd qmcpack/build_clang_offload_cplx
$ cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DQMC_MPI=OFF -DENABLE_OFFLOAD=ON -DOFFLOAD_TARGET=amdgcn-amd-amdhsa -DOFFLOAD_ARCH=gfx90a -DQMC_COMPLEX=ON ..
$ make -j32 test_wavefunction_sposet
clang-linker-wrapper: /home/yeluo/opt/llvm-clang/llvm-project/llvm/lib/Analysis/InlineCost.cpp:2617: llvm::InlineResult {anonymous}::CallAnalyzer::analyze(): Assertion `CAI != CandidateCall.arg_end()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /soft/llvm/master-nightly/bin/clang-linker-wrapper --host-triple=x86_64-unknown-linux-gnu --linker-path=/usr/bin/ld -- -pie -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o test_wavefunction_sposet /usr/lib/x86_64-linux-gnu/Scrt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/9/crtfastmath.o -L/soft/llvm/main-20230121/bin/../lib/x86_64-unknown-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/lib -L/usr/lib CMakeFiles/test_wavefunction_sposet.dir/test_spo_collection_input_spline.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_spo_collection_input_LCAO_xml.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_spo_collection_input_MSD_LCAO_h5.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_einset.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_einset_spinor.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_CompositeSPOSet.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_hybridrep.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_pw.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_pyscf_complex_MO.cpp.o CMakeFiles/test_wavefunction_sposet.dir/test_MO_spinor.cpp.o -rpath /soft/spack/opt/spack/linux-ubuntu20.04-zen2/gcc-9.4.0/openblas-0.3.20-bce4367eljcnzafqnnnew7ob27b3645t/lib:/usr/lib/x86_64-linux-gnu/hdf5/serial:/soft/spack/opt/spack/linux-ubuntu20.04-zen2/gcc-9.4.0/fftw-3.3.10-f3d2ekpr3qoethtjkmwog5n72g3yhack/lib ../../Message/libcatch_main.a ../libqmcwfs.a ../libqmcwfs_omptarget.a ../../Particle/libqmcparticle_omptarget.a ../../Platforms/libplatform_runtime.a ../../Utilities/for_testing/libutilities_for_test.a ../../Containers/tests/libcontainer_testing.a ../../Platforms/OMPTarget/libplatform_omptarget_LA.a ../../Particle/libqmcparticle.a ../../Particle/libqmcparticle_omptarget.a ../../Utilities/libqmcutil.a ../../Utilities/libqmcrng.a ../../Platforms/CPU/libplatform_cpu_LA.a /soft/spack/opt/spack/linux-ubuntu20.04-zen2/gcc-9.4.0/openblas-0.3.20-bce4367eljcnzafqnnnew7ob27b3645t/lib/libopenblas.so -lm -ldl ../../Numerics/libqmcnumerics.a ../../io/hdf/libqmcio_hdf.a ../../Message/libmessage.a /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so /usr/lib/x86_64-linux-gnu/libpthread.so /usr/lib/x86_64-linux-gnu/libsz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libdl.so -lm ../../io/OhmmsData/libqmcio_xml.a ../../Utilities/libcxx_helpers.a /usr/lib/x86_64-linux-gnu/libxml2.so ../../einspline/libeinspline.a /soft/spack/opt/spack/linux-ubuntu20.04-zen2/gcc-9.4.0/fftw-3.3.10-f3d2ekpr3qoethtjkmwog5n72g3yhack/lib/libfftw3.so ../../Utilities/for_testing/libutilities_for_test.a ../../Containers/libcontainers.a ../../Platforms/libplatform_runtime.a ../../Platforms/Host/libplatform_host_runtime.a ../../Platforms/OMPTarget/libplatform_omptarget_runtime.a -lstdc++ -lm -lomp -lomptarget -rpath /soft/llvm/main-20230121/lib -L/soft/llvm/main-20230121/lib -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/x86_64-linux-gnu/crtn.o
 #0 0x00005606cfcceccf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x165accf)
 #1 0x00005606cfccc954 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f5b7729c420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f5b76d3900b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f5b76d18859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f5b76d18729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f5b76d18729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f5b76d29fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x00005606d12a6631 (anonymous namespace)::CallAnalyzer::analyze() (.part.0) InlineCost.cpp:0:0
 #9 0x00005606d12a6cf5 llvm::getInlineCost(llvm::CallBase&, llvm::Function*, llvm::InlineParams const&, llvm::TargetTransformInfo&, llvm::function_ref<llvm::AssumptionCache& (llvm::Function&)>, llvm::function_ref<llvm::TargetLibraryInfo const& (llvm::Function&)>, llvm::function_ref<llvm::BlockFrequencyInfo& (llvm::Function&)>, llvm::ProfileSummaryInfo*, llvm::OptimizationRemarkEmitter*) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x2c32cf5)
#10 0x00005606d0a9012d llvm::FunctionSpecializer::getSpecializationBonus(llvm::Argument*, llvm::Constant*, llvm::LoopInfo const&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x241c12d)
#11 0x00005606d0a96b6f llvm::FunctionSpecializer::findSpecializations(llvm::Function*, llvm::InstructionCost, llvm::SmallVectorImpl<llvm::Spec>&, llvm::DenseMap<llvm::Function*, std::pair<unsigned int, unsigned int>, llvm::DenseMapInfo<llvm::Function*, void>, llvm::detail::DenseMapPair<llvm::Function*, std::pair<unsigned int, unsigned int>>>&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x2422b6f)
#12 0x00005606d0a97364 llvm::FunctionSpecializer::run() (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x2423364)
#13 0x00005606d0a6bd3b runIPSCCP(llvm::Module&, llvm::DataLayout const&, llvm::AnalysisManager<llvm::Function>*, std::function<llvm::TargetLibraryInfo const& (llvm::Function&)>, std::function<llvm::TargetTransformInfo& (llvm::Function&)>, std::function<llvm::AssumptionCache& (llvm::Function&)>, llvm::function_ref<llvm::AnalysisResultsForFn (llvm::Function&)>, bool) SCCP.cpp:0:0
#14 0x00005606d0a6d6f3 llvm::IPSCCPPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x23f96f3)
#15 0x00005606cfb612c6 llvm::detail::PassModel<llvm::Module, llvm::IPSCCPPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x14ed2c6)
#16 0x00005606d025b3ae runNewPMPasses(llvm::lto::Config const&, llvm::Module&, llvm::TargetMachine*, unsigned int, bool, llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*) LTOBackend.cpp:0:0
#17 0x00005606d025da78 llvm::lto::opt(llvm::lto::Config const&, llvm::TargetMachine*, unsigned int, llvm::Module&, bool, llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*, std::vector<unsigned char, std::allocator<unsigned char>> const&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1be9a78)
#18 0x00005606d025ea84 llvm::lto::backend(llvm::lto::Config const&, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1beaa84)
#19 0x00005606d0253cc3 llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1bdfcc3)
#20 0x00005606d02542e5 llvm::lto::LTO::run(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, std::function<llvm::Expected<std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>> (unsigned int, llvm::StringRef, llvm::Twine const&)>) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1be02e5)
#21 0x00005606ceb88046 (anonymous namespace)::linkBitcodeFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::SmallVectorImpl<llvm::StringRef>&, llvm::opt::ArgList const&) (.constprop.0) ClangLinkerWrapper.cpp:0:0
#22 0x00005606ceb8beba llvm::Error (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int)::'lambda'(auto&)::operator()<llvm::SmallVector<llvm::object::OffloadFile, 3u>>(auto&) const ClangLinkerWrapper.cpp:0:0
#23 0x00005606ceb915ef (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int) ClangLinkerWrapper.cpp:0:0
#24 0x00005606ceae205c main (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x46e05c)
#25 0x00007f5b76d1a083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#26 0x00005606ceb7990e _start (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x50590e)
 #0 0x00005606cfcceccf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x165accf)
 #1 0x00005606cfccc954 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f5b7729c420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f5b76d3900b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f5b76d18859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f5b76d18729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f5b76d18729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f5b76d29fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x00005606d12a6631 (anonymous namespace)::CallAnalyzer::analyze() (.part.0) InlineCost.cpp:0:0
 #9 0x00005606d12a6cf5 llvm::getInlineCost(llvm::CallBase&, llvm::Function*, llvm::InlineParams const&, llvm::TargetTransformInfo&, llvm::function_ref<llvm::AssumptionCache& (llvm::Function&)>, llvm::function_ref<llvm::TargetLibraryInfo const& (llvm::Function&)>, llvm::function_ref<llvm::BlockFrequencyInfo& (llvm::Function&)>, llvm::ProfileSummaryInfo*, llvm::OptimizationRemarkEmitter*) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x2c32cf5)
#10 0x00005606d0a9012d llvm::FunctionSpecializer::getSpecializationBonus(llvm::Argument*, llvm::Constant*, llvm::LoopInfo const&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x241c12d)
#11 0x00005606d0a96b6f llvm::FunctionSpecializer::findSpecializations(llvm::Function*, llvm::InstructionCost, llvm::SmallVectorImpl<llvm::Spec>&, llvm::DenseMap<llvm::Function*, std::pair<unsigned int, unsigned int>, llvm::DenseMapInfo<llvm::Function*, void>, llvm::detail::DenseMapPair<llvm::Function*, std::pair<unsigned int, unsigned int>>>&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x2422b6f)
#12 0x00005606d0a97364 llvm::FunctionSpecializer::run() (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x2423364)
#13 0x00005606d0a6bd3b runIPSCCP(llvm::Module&, llvm::DataLayout const&, llvm::AnalysisManager<llvm::Function>*, std::function<llvm::TargetLibraryInfo const& (llvm::Function&)>, std::function<llvm::TargetTransformInfo& (llvm::Function&)>, std::function<llvm::AssumptionCache& (llvm::Function&)>, llvm::function_ref<llvm::AnalysisResultsForFn (llvm::Function&)>, bool) SCCP.cpp:0:0
#14 0x00005606d0a6d6f3 llvm::IPSCCPPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x23f96f3)
#15 0x00005606cfb612c6 llvm::detail::PassModel<llvm::Module, llvm::IPSCCPPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x14ed2c6)
#16 0x00005606d025b3ae runNewPMPasses(llvm::lto::Config const&, llvm::Module&, llvm::TargetMachine*, unsigned int, bool, llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*) LTOBackend.cpp:0:0
#17 0x00005606d025da78 llvm::lto::opt(llvm::lto::Config const&, llvm::TargetMachine*, unsigned int, llvm::Module&, bool, llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*, std::vector<unsigned char, std::allocator<unsigned char>> const&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1be9a78)
#18 0x00005606d025ea84 llvm::lto::backend(llvm::lto::Config const&, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, unsigned int, llvm::Module&, llvm::ModuleSummaryIndex&) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1beaa84)
#19 0x00005606d0253cc3 llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1bdfcc3)
#20 0x00005606d02542e5 llvm::lto::LTO::run(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, std::function<llvm::Expected<std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>> (unsigned int, llvm::StringRef, llvm::Twine const&)>) (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x1be02e5)
#21 0x00005606ceb88046 (anonymous namespace)::linkBitcodeFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::SmallVectorImpl<llvm::StringRef>&, llvm::opt::ArgList const&) (.constprop.0) ClangLinkerWrapper.cpp:0:0
#22 0x00005606ceb8beba llvm::Error (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int)::'lambda'(auto&)::operator()<llvm::SmallVector<llvm::object::OffloadFile, 3u>>(auto&) const ClangLinkerWrapper.cpp:0:0
#23 0x00005606ceb915ef (anonymous namespace)::linkAndWrapDeviceFiles(llvm::SmallVectorImpl<llvm::object::OffloadFile>&, llvm::opt::InputArgList const&, char**, int) ClangLinkerWrapper.cpp:0:0
#24 0x00005606ceae205c main (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x46e05c)
#25 0x00007f5b76d1a083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#26 0x00005606ceb7990e _start (/soft/llvm/master-nightly/bin/clang-linker-wrapper+0x50590e)
clang-16: error: unable to execute command: Aborted (core dumped)
clang-16: error: linker command failed due to signal (use -v to see invocation)
```
When setting `-DQMC_COMPLEX=OFF`, this issue goes away.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsPFtT4zyyv8a8qOyy5cRJHngICdnlLAxZYM_3vblkqZ1okCWPJHOZX39KtnNxEiDDsOfynVQxIZL63q3WpRkRY_hCApx7_QsP4-9Mgc5BWw9jD09cz7LKQCeu3Z-ekcoulT5_BV9U6ixT7PX8YQmIG1MBUlK8IlKWQLRBSqLxzbTuC1DOtbEoIwxRVRTcov4Ak0F_kJPBcIBxzhhkoyzpRxEOk3CQDwGgz6I4D7xw6oVjLwnbn7r5i0SQh4cacuPhWcYNUOu-EObhUUNuXCvlxWM0FvBCJNPKoGtSlJpLIAZ58YSsBwKxHvB6IdFFQFXhxZcNqSmx4Agh9Acw9B9EoihCUeTF437oxeMYIxziGHn4IgzDVpvmEyGEvP7F1fx-Mpl7_Sm6lCQTgEwJlBPBfxLLlUQqR3klqftugi3M9bc78KHBtEtAqrS8WOGS3IJGS_LE5QLl_AVYDUNVUXLRgIDWSm-I5aqSDHGJ7ueXEw_PJlffHnAYDbRTE8_6IQ4WlKYaPS9BokzZJbp-uEVEMjT_2y0iGhxyZWBLUjw0AGhpbWm8eOzhmYdnGp44PJtAiKciUHrh4dk06kW9Qc_Do301pzzPQYO0nAh0B0_ccCWd2Y-hGuIoPBhVVxZxg4gwCpXKGN7YkJtVzH6vjEXwUioDDBGUVYtg24F3UGrFKgp6h3pGzLLtwj204BZRoeSuCRbcLqusDiY8--fNZD6e_MPDsx8FLQl9DBbcbmgUj4xr1A65YK64YCkVRC5SledCEZbSUrx48QWi7BjANWlakEdA_nRyM_7HZTpJJ7c386vryzsvntZom6E__9wb9PCFhy-QP_3nzSS9mV958fR2NkP-9PLb-OL6Mr2dza5vx1PX_Q3507aZPozv_nb54MVTUrAFlT4pmPu3NGQLaHw3-bsXTxf5yygkLQvH__ryz4ZeEGwZqFbie4yRBWPTZ_IEq1mTGufA1pi11L7g8hG0_6xd7qrzgIdnS1W4EH8FUSkPz1TpsoaLJL9VtWmUWn1vMoprul888_BsLIl4NdylnCspuISJMjagZenFY5xEA8ekRojHXjxuQO7AVMIib3BBpJKvhaqMN5g2EBMiRE3zZy2gF49J0_Lw0OUxl7uMAV1PYi8JJ-Mr5OHIi6doQiTjjFhwNAKiFylI1qLhAcoJF8Ba282vL8f3l8hUmQv4OsaRhlJpi6x6L2BXyndNUi8LzgZ1RuCSioo1eYlqYpYoI_TRakKhZX9vCX1ErCqcmZquMPDC0VyrhSYFInpRFSCtaX1kVL5l-YIYC9qXfLG04rVO9tLDs0M-Rr6_VMb6VvNSgBdPX4ZJmvT8Sj5K9SwddPXiL2SF_BVmSezSi6cenlVGr4kLhnwf-SUH5P9EGoRWjjYxS9_Y15p0QwWWfq5JAf6SaeQXCESeNkyRz14lKThtOaEmiJJeTb4V5WWY-EkvMCrAyFdvRjVai9eEYavWWh0Pz-6ptlGgjoCk2vJ9wAWlh8FHDUoGCy7vfx0vJ8YWxC4DhfzrA77l0ndLZxjhaG39INiV_4ADr48WpIE9bI_tsRVb57td6m_i7YCiyQ15hBkX9fx4y58B43o1bEqVUiUENABclpXrdJnDJZZAfRHJ68n4Nn0pxJcSvbmfNoSX_c_SBS5dz29hp6bkUunPEpmoolSGW7if395_Xpbla6Y501B-lkD5_GnMV0Pz1O34BLykN7efpXNz2zWlr11-3MrJpt1xNOvmqtVMiyqrpK1wGIQ9_ydI3ExKfxT0grBGAZkJYvwwiAMc-hmFXpwMQHyn8ifJf0gp4XmgMjzI4qTXt-3cq9elD1LakuV9Jw5oTkSD8fvy5rl99uMgDqLQz2OG4bHU8Q8Fdmm_PxbPatGXA7yIX5crmhmqM0j9cQPGkAU0_ZRYukxdrgsIWmWZHwV9zs1eR6qK0hK9ALsaqj_mRFtOBaxBy7bjLXhBbK50YRqEsm2mupKWF9CB_ZflglteB0mudOoigTdbIZ5Vq8F0NdTBnShpCZegVxHWMqSr_hW1N6W7vZk_1PLvSLrWK70eH2eK3zLYthEaBKf5ByD6Hb0m83_taETLqtHlf3I61Z8r3MAo5IsC-YKJLTW-VQVoTjd6yrajoyxXzcxbQ3GVLlnegelMg6JpNAb4pRldA7ouJ_DHyM7odqmBsKPhzc-jQY-HZGJl4B2r3S6LwkyJJdu2c2vzO-FGX17SJYgStDnKgoJnL4XAToINTbdc1luLBmDd_Kqg_PWc2Xw6vLgr6pdlpe1sZD6dJLdh_67MbrZyx44P8T5OdRsKvjCW0dXJu56jqiibzwZ4f3F-Y1O93qUeASYWlKam-Y180U4j5Au6M_aLxwCQ7MDh4fDpRAaqvRDycByi8CUMw7CfhAnNKQVK860jtnk1zZe55tLWB80Hd_L08HADpMlzqozVQAoPJx6eIC6th0eoPi5__rjp4YvwJUr6hNJ8fevohI52hKajfg_d84Uk4u9EMuFQh60MTbdpLxHC-t-aEG4JDfJ-NhjgEe3hEKWpBmOVhlTbVoXjUqGbok7iXg-HHXnjbTYJi0dhmCFNuAG0ul1yPnYzyb__efVzcLFu4iB2wWNqLVZBb14Ng9KFfCX5S9PxtMohHp7VpAPqxeN-5MXjaCNJrytJNBz2R4hkqtb0OEksa6xRY9VMho7JYMOkv8tkgEfITb9G7tTAogBp0yciqqMtwKWtFypFWGEWlDSs--HICbDhnRzinUqR1pd2TLlZ-XssR4P6Srq34Tno8sSjnCVHBA51IZPUIRPHOUs6ITPcCnEWYZIkceRoru-4kCQFuMUDmousj2-7HHrgtmkuTkdo74JtZ26MdiWgeX8rMyzAbih00oET44IYaHPBZmDWHow8PO4ONITmRJPCIKqkI7iD2yT2B02kcTn9SuZqD2Z98NKQe_FkMzA2pipKNzQhdOkEQx2JN4LVTogvj6TbCHXNM030qxNpLfzX0L8Qij7ONPyoQNLXVudfIj3XKucC7quiaEXcM_7tVq3jDgqiHy8Lbq3LoeOvSuKYxpi6HedoddkcR9srDwvJKIwwOxAs96tCziqmF2DvO8WdCyUr0zHKuL3w3NN14txDDgxcK1V2HPhlmvciGmHW0Tza0TzJkvwYzXMuWVd180Ys7M0vY3VVjzWzdXvwviBC_CdQq_RVUYpOADpudUztzLQpSAM3pOwA77A3ljX9JeHaiyeVrEumrNkcTFCnvRu3KwZ1xL7D5ElxtofMwBIuuoTmjRBfJm3z85VxgnGW5J04wTtxMoiT3jFxoiu5yfhfIVkcJ72OZHFXsiRjcYZ0Jdsy7HZQ3ihWif21wJ3OrsmrquwbCX9VCrohkizgDd85F3Tdl6-HvipPH0N6d136bbL_rhVrZdWmaGZmSs_kEZQzpUS9mZ5M5vu7BRcRvZ2IYEkeb2egOjDmxJjtEP0wSt4Lghbla2dhnI-SPO7Eer9z2MiSCNPkjWTj9LtRDMQhQbsZeWOPnfUaDOgnYI3mYD5jD_fzv9jIUQ8YpknHyEknfHA_iwm4hPINnuc3zkzQXeqEVesVPeeLN3LIGwo3c_aG0GV9UzPey-_riN8ntt5JMXjZW2f3QVaC1Tup64fbC0IfQbLDc2iwYwRGBkN0QOf64uiXjXGM1m-Y7uuNsZX_nuqtx_aSS5dEd0CIEIqSQ1B1tH_5pi3KYEQGw06EDnecA2TYO-ScrPHw0Q56fx24fCmBWmBePFkDVpL_qCAtbXeq1gsFm7ndfnsVs0WcQU4qYVMGAiy8j7fa3ThTvh0gD89cwrbl26XiyJB6P5S-0pOEDLubl9GOJ2NK40OevH64XefRO1hUgmjXhYd_LZd9laFZTmln5cThjqF7GPofGfovZ97PzPC_guIfId1bzeXiDvL_zhiFEEPnFgJ3rpIhGw7DXvLRPZsjfcEtVWxV_B8ed5xWWf0XXs21S_N3hI7AoRP2u6fytekOILrNweoS5Jobu7s4BnW71KpsrgEnzlrXtbH-aGx1cHOC8Y6hMsjIFttLrZU-xnBjyRyfKTxx-u8z39oKV7Ks7L4pJu0mY9zuRppiQYPi4YEgRcaIhwdOocqqVSg2pEHXe5H2TwgnB4U_SnA8QXG1ukrYYtQIerRr4q5rRlEf8v_rrjha-V5HeQI47FPU3vL_fsroJRD2aSdj7FY3SDiMUZoKntHUWKJt-is1BmqqVVWn-VoP1nTqakPcw-5zwz7pOnswGoWAGsZfonE_7I9C6NQiTjXCU43wVCM81QhPNcJTjfBUIzzVCE81wlON8FQjPNUITzXCU43wVCM81QhPNcJTjfBUIzzVCE81wlON8FQjbAP3VCM81QhPNcJTjfD_QY2wgYsSLx63L2HFY1S1r2kpBC9AK1s_mFUQyepHdzKlLTAnDFUa6rdrgL1PsH3mpaXSPsCDWFXzaGpf9WpiAPlPdR8A4vLJnQrqu4rRweer_liCRAas5XKBvCTceyJpNnOweNI8atU82bZQYBB5Jq_BGTuP2SgekTM4j5JBL45Hw8HobHkejqJ8EEEexTgEGibRkIaDfgI9loTJgMRn_Hz1n0Mxxr14FGBCRsOEZIwNRmEMPa8XQkG4WD_EdVYzP0_CaBSdCZKBMPX7c_3pmT53QH5WLYzXCwU3dvN-15nlVtQv1d2WIG_qV9JaYzojVhqad8jWq3_7zgXiBlWmXpfRI2gJwqBnbpeIFGxRVmeVFueff9uo1uK_AgAA__-k8s1D">