<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/112954>112954</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Building Rocm RCCL failed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
gitaumark
</td>
</tr>
</table>
<pre>
Followed these steps from https://github.com/rocm/rccl
```
$ git clone --recursive https://github.com/ROCm/rccl.git
$ cd rccl
$ mkdir build
$ cd build
$ cmake ..
$ make -j 16
```
and got this error
```
lld: /long_pathname_so_that_rpms_can_package_the_debug_info/src/external/llvm-project/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp:1788: void llvm::SIRegisterInfo::buildVGPRSpillLoadStore(llvm::SGPRSpillBuilder&, int, int, bool, bool) const: Assertion `FrameInfo.getStackID(Index) != TargetStackID::SGPRSpill' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /opt/rocm-6.2.0-14024/lib/llvm/bin/lld -flavor gnu -m elf64_amdgpu --no-undefined -shared -plugin-opt=-amdgpu-internalize-symbols -plugin-opt=mcpu=gfx908 --whole-archive -plugin-opt=-amdgpu-kernarg-preload-count=16 -o /tmp/bootstrap-gfx908-cc8658.out /tmp/bootstrap-gfx908-6821da.o /tmp/channel-gfx908-42c715.o /tmp/collectives-gfx908-1c56b5.o /tmp/debug-gfx908-b9c293.o /tmp/enqueue-gfx908-2527d3.o /tmp/group-gfx908-558f90.o /tmp/init-gfx908-e13e6d.o /tmp/init_nvtx-gfx908-257929.o /tmp/net-gfx908-0050b4.o /tmp/msccl-gfx908-2f2d8c.o /tmp/proxy-gfx908-63ef12.o /tmp/register-gfx908-212725.o /tmp/transport-gfx908-6f2e42.o /tmp/common-gfx908-cb555c.o /tmp/onerank-gfx908-e43ff3.o /tmp/connect-gfx908-a319c7.o /tmp/paths-gfx908-4b37f8.o /tmp/rings-gfx908-f4a30a.o /tmp/rome_models-gfx908-d193eb.o /tmp/search-gfx908-1ded35.o /tmp/topo-gfx908-9d7111.o /tmp/trees-gfx908-6932a2.o /tmp/tuning-gfx908-9a8ac8.o /tmp/xml-gfx908-820182.o /tmp/alt_rsmi-gfx908-afb55b.o /tmp/archinfo-gfx908-d42267.o /tmp/argcheck-gfx908-40025b.o /tmp/api_trace-gfx908-39527e.o /tmp/ibvsymbols-gfx908-9e9a4e.o /tmp/ibvwrap-gfx908-aeaf6a.o /tmp/ipcsocket-gfx908-1887f1.o /tmp/npkit-gfx908-81a376.o /tmp/nvmlwrap_stub-gfx908-44bbaa.o /tmp/param-gfx908-d6a28d.o /tmp/profiler-gfx908-cbb86f.o /tmp/rocm_smi_wrap-gfx908-43deec.o /tmp/rocmwrap-gfx908-861cd8.o /tmp/roctx-gfx908-8f6165.o /tmp/shmutils-gfx908-ee6892.o /tmp/signals-gfx908-f08f87.o /tmp/socket-gfx908-aa8011.o /tmp/strongstream-gfx908-cd082d.o /tmp/tuner-gfx908-5eb9b4.o /tmp/utils-gfx908-15b9b6.o /tmp/msccl_lifecycle-gfx908-549fe4.o /tmp/msccl_parser-gfx908-a468b5.o /tmp/msccl_setup-gfx908-c17f17.o /tmp/msccl_status-gfx908-9a64df.o /tmp/coll_net-gfx908-d0b1af.o /tmp/net_tmp-gfx908-72a553.o /tmp/net_ib-gfx908-ed4137.o /tmp/net_socket-gfx908-5ea1a2.o /tmp/nvls-gfx908-efe94f.o /tmp/p2p-gfx908-547433.o /tmp/shm-gfx908-c85f58.o /tmp/mscclpp_nccl-gfx908-24f561.o /tmp/all_gather_sum_i8-gfx908-2b137d.o /tmp/all_reduce_minmax_bf16-gfx908-680f2a.o /tmp/all_reduce_minmax_bf8-gfx908-bb581d.o /tmp/all_reduce_minmax_f16-gfx908-0c2121.o /tmp/all_reduce_minmax_f32-gfx908-ee8201.o /tmp/all_reduce_minmax_f64-gfx908-77821d.o /tmp/all_reduce_minmax_f8-gfx908-7422f8.o /tmp/all_reduce_minmax_u32-gfx908-1a36f4.o /tmp/all_reduce_minmax_u64-gfx908-73eb86.o /tmp/all_reduce_minmax_u8-gfx908-d514b8.o /tmp/all_reduce_premulsum_bf16-gfx908-4363d9.o /tmp/all_reduce_premulsum_bf8-gfx908-3e75b3.o /tmp/all_reduce_premulsum_f16-gfx908-391670.o /tmp/all_reduce_premulsum_f32-gfx908-09945a.o /tmp/all_reduce_premulsum_f64-gfx908-bca7ff.o /tmp/all_reduce_premulsum_f8-gfx908-026517.o /tmp/all_reduce_premulsum_u32-gfx908-d2f62b.o /tmp/all_reduce_premulsum_u64-gfx908-d5721c.o /tmp/all_reduce_premulsum_u8-gfx908-51933e.o /tmp/all_reduce_prod_bf16-gfx908-ebde02.o /tmp/all_reduce_prod_bf8-gfx908-77b350.o /tmp/all_reduce_prod_f16-gfx908-b8f94a.o /tmp/all_reduce_prod_f32-gfx908-d19496.o /tmp/all_reduce_prod_f64-gfx908-dbaafb.o /tmp/all_reduce_prod_f8-gfx908-d77d48.o /tmp/all_reduce_prod_u32-gfx908-4e56f8.o /tmp/all_reduce_prod_u64-gfx908-a9dcd8.o /tmp/all_reduce_prod_u8-gfx908-5fd0c9.o /tmp/all_reduce_sum_bf16-gfx908-316d21.o /tmp/all_reduce_sum_bf8-gfx908-6739ba.o /tmp/all_reduce_sum_f16-gfx908-292b49.o /tmp/all_reduce_sum_f32-gfx908-86a598.o /tmp/all_reduce_sum_f64-gfx908-17d783.o /tmp/all_reduce_sum_f8-gfx908-cd283b.o /tmp/all_reduce_sum_u32-gfx908-2cc5c9.o /tmp/all_reduce_sum_u64-gfx908-3b7e5b.o /tmp/all_reduce_sum_u8-gfx908-4098ec.o /tmp/all_reduce_sumpostdiv_i32-gfx908-65ac20.o /tmp/all_reduce_sumpostdiv_i64-gfx908-8280ee.o /tmp/all_reduce_sumpostdiv_i8-gfx908-93e905.o /tmp/all_reduce_sumpostdiv_u32-gfx908-576f20.o /tmp/all_reduce_sumpostdiv_u64-gfx908-f7c423.o /tmp/all_reduce_sumpostdiv_u8-gfx908-81d08b.o /tmp/alltoall_pivot_sum_i8-gfx908-830125.o /tmp/broadcast_sum_i8-gfx908-fd65ec.o /tmp/device_table-gfx908-13d601.o /tmp/host_table-gfx908-c36520.o /tmp/msccl_kernel_MinMax_bf16-gfx908-d6db98.o /tmp/msccl_kernel_MinMax_bf8-gfx908-1c2b15.o /tmp/msccl_kernel_MinMax_f16-gfx908-8817b5.o /tmp/msccl_kernel_MinMax_f32-gfx908-d51801.o /tmp/msccl_kernel_MinMax_f64-gfx908-2bde39.o /tmp/msccl_kernel_MinMax_f8-gfx908-e6f303.o /tmp/msccl_kernel_MinMax_i32-gfx908-ebd282.o /tmp/msccl_kernel_MinMax_i64-gfx908-8b46d1.o /tmp/msccl_kernel_MinMax_i8-gfx908-783206.o /tmp/msccl_kernel_MinMax_u32-gfx908-c529ab.o /tmp/msccl_kernel_MinMax_u64-gfx908-84e1e7.o /tmp/msccl_kernel_MinMax_u8-gfx908-543a27.o /tmp/msccl_kernel_Prod_bf16-gfx908-431d8d.o /tmp/msccl_kernel_Prod_bf8-gfx908-a0aad7.o /tmp/msccl_kernel_Prod_f16-gfx908-a74e92.o /tmp/msccl_kernel_Prod_f32-gfx908-655afe.o /tmp/msccl_kernel_Prod_f64-gfx908-8b3ded.o /tmp/msccl_kernel_Prod_f8-gfx908-79f6d0.o /tmp/msccl_kernel_Prod_i32-gfx908-ebf7b1.o /tmp/msccl_kernel_Prod_i64-gfx908-6a266c.o /tmp/msccl_kernel_Prod_i8-gfx908-b4674c.o /tmp/msccl_kernel_Prod_u32-gfx908-8431a4.o /tmp/msccl_kernel_Prod_u64-gfx908-0472ba.o /tmp/msccl_kernel_Prod_u8-gfx908-aed70f.o /tmp/msccl_kernel_Sum_bf16-gfx908-841f82.o /tmp/msccl_kernel_Sum_bf8-gfx908-dc9e61.o /tmp/msccl_kernel_Sum_f16-gfx908-c52c4b.o /tmp/msccl_kernel_Sum_f32-gfx908-496669.o /tmp/msccl_kernel_Sum_f64-gfx908-9bb093.o /tmp/msccl_kernel_Sum_f8-gfx908-d2c9ff.o /tmp/msccl_kernel_Sum_i32-gfx908-f1219f.o /tmp/msccl_kernel_Sum_i64-gfx908-5c44d9.o /tmp/msccl_kernel_Sum_i8-gfx908-e56651.o /tmp/msccl_kernel_Sum_u32-gfx908-44cd9f.o /tmp/msccl_kernel_Sum_u64-gfx908-028d5e.o /tmp/msccl_kernel_Sum_u8-gfx908-bc61cf.o /tmp/reduce_minmax_bf16-gfx908-af34d7.o /tmp/reduce_minmax_bf8-gfx908-912974.o /tmp/reduce_minmax_f16-gfx908-efaabf.o /tmp/reduce_minmax_f32-gfx908-16d8e8.o /tmp/reduce_minmax_f64-gfx908-4a376d.o /tmp/reduce_minmax_f8-gfx908-4e00db.o /tmp/reduce_minmax_u32-gfx908-54f6fb.o /tmp/reduce_minmax_u64-gfx908-d2d420.o /tmp/reduce_minmax_u8-gfx908-72361a.o /tmp/reduce_premulsum_bf16-gfx908-c1f5d5.o /tmp/reduce_premulsum_bf8-gfx908-c19d1d.o /tmp/reduce_premulsum_f16-gfx908-bb63aa.o /tmp/reduce_premulsum_f32-gfx908-22ead8.o /tmp/reduce_premulsum_f64-gfx908-b78da4.o /tmp/reduce_premulsum_f8-gfx908-ee22d3.o /tmp/reduce_premulsum_u32-gfx908-b44b36.o /tmp/reduce_premulsum_u64-gfx908-863be6.o /tmp/reduce_premulsum_u8-gfx908-571d12.o /tmp/reduce_prod_bf16-gfx908-58fab2.o /tmp/reduce_prod_bf8-gfx908-64fdfb.o /tmp/reduce_prod_f16-gfx908-79b320.o /tmp/reduce_prod_f32-gfx908-4387f5.o /tmp/reduce_prod_f64-gfx908-5412a8.o /tmp/reduce_prod_f8-gfx908-537a7d.o /tmp/reduce_prod_u32-gfx908-518ab2.o /tmp/reduce_prod_u64-gfx908-d7aa4a.o /tmp/reduce_prod_u8-gfx908-a9b0cf.o /tmp/reduce_scatter_minmax_bf16-gfx908-1d4e3d.o /tmp/reduce_scatter_minmax_bf8-gfx908-fb0edf.o /tmp/reduce_scatter_minmax_f16-gfx908-9f0636.o /tmp/reduce_scatter_minmax_f32-gfx908-5d5cae.o /tmp/reduce_scatter_minmax_f64-gfx908-d9baa8.o /tmp/reduce_scatter_minmax_f8-gfx908-03c1d4.o /tmp/reduce_scatter_minmax_u32-gfx908-37641d.o /tmp/reduce_scatter_minmax_u64-gfx908-2fefbc.o /tmp/reduce_scatter_minmax_u8-gfx908-6c1fdb.o /tmp/reduce_scatter_premulsum_bf16-gfx908-824093.o /tmp/reduce_scatter_premulsum_bf8-gfx908-41e0df.o /tmp/reduce_scatter_premulsum_f16-gfx908-219ffd.o /tmp/reduce_scatter_premulsum_f32-gfx908-31c961.o /tmp/reduce_scatter_premulsum_f64-gfx908-974ab2.o /tmp/reduce_scatter_premulsum_f8-gfx908-54bde7.o /tmp/reduce_scatter_premulsum_u32-gfx908-cf9e56.o /tmp/reduce_scatter_premulsum_u64-gfx908-e95edb.o /tmp/reduce_scatter_premulsum_u8-gfx908-2dafc1.o /tmp/reduce_scatter_prod_bf16-gfx908-d5ad30.o /tmp/reduce_scatter_prod_bf8-gfx908-fe1299.o /tmp/reduce_scatter_prod_f16-gfx908-539a24.o /tmp/reduce_scatter_prod_f32-gfx908-619f63.o /tmp/reduce_scatter_prod_f64-gfx908-29de21.o /tmp/reduce_scatter_prod_f8-gfx908-b67f68.o /tmp/reduce_scatter_prod_u32-gfx908-90b703.o /tmp/reduce_scatter_prod_u64-gfx908-e976ae.o /tmp/reduce_scatter_prod_u8-gfx908-cce8e9.o /tmp/reduce_scatter_sum_bf16-gfx908-54ce1f.o /tmp/reduce_scatter_sum_bf8-gfx908-84ed9f.o /tmp/reduce_scatter_sum_f16-gfx908-94492e.o /tmp/reduce_scatter_sum_f32-gfx908-a52a7e.o /tmp/reduce_scatter_sum_f64-gfx908-401eb4.o /tmp/reduce_scatter_sum_f8-gfx908-c950ba.o /tmp/reduce_scatter_sum_u32-gfx908-1d265d.o /tmp/reduce_scatter_sum_u64-gfx908-e9216f.o /tmp/reduce_scatter_sum_u8-gfx908-af2668.o /tmp/reduce_scatter_sumpostdiv_i32-gfx908-97e242.o /tmp/reduce_scatter_sumpostdiv_i64-gfx908-d10546.o /tmp/reduce_scatter_sumpostdiv_i8-gfx908-82f5cf.o /tmp/reduce_scatter_sumpostdiv_u32-gfx908-1983e4.o /tmp/reduce_scatter_sumpostdiv_u64-gfx908-b8d4c3.o /tmp/reduce_scatter_sumpostdiv_u8-gfx908-64fd04.o /tmp/reduce_sum_bf16-gfx908-f55dee.o /tmp/reduce_sum_bf8-gfx908-4e8a61.o /tmp/reduce_sum_f16-gfx908-a9027a.o /tmp/reduce_sum_f32-gfx908-d42d8b.o /tmp/reduce_sum_f64-gfx908-0a0b22.o /tmp/reduce_sum_f8-gfx908-c6af44.o /tmp/reduce_sum_u32-gfx908-edd022.o /tmp/reduce_sum_u64-gfx908-4232c0.o /tmp/reduce_sum_u8-gfx908-94e4d0.o /tmp/reduce_sumpostdiv_i32-gfx908-30e839.o /tmp/reduce_sumpostdiv_i64-gfx908-f81f49.o /tmp/reduce_sumpostdiv_i8-gfx908-0813e6.o /tmp/reduce_sumpostdiv_u32-gfx908-286fd6.o /tmp/reduce_sumpostdiv_u64-gfx908-dc09d7.o /tmp/reduce_sumpostdiv_u8-gfx908-808968.o /tmp/sendrecv_sum_i8-gfx908-0cd3bb.o /tmp/git_version-gfx908-25c8b9.o /tmp/libbc-libmscclpp_nccl.a-amdgcn-gfx908-a8cbfe.a /tmp/libbc-libclang_rt.builtins-x86_64.a-amdgcn-gfx908-b3f2a9.a --no-whole-archive
1. Running pass 'CallGraph Pass Manager' on module 'ld-temp.o'.
2. Running pass 'Prologue/Epilogue Insertion & Frame Finalization' on function '@_ZN12_GLOBAL__N_17runRingIa7FuncSumIaE11ProtoSimpleILi2ELi2ELi2ELi0ELi0EELi2EEEvP12ncclWorkElem'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 lld 0x0000564bcb709490 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 240
1 lld 0x0000564bcb7068af llvm::sys::RunSignalHandlers() + 47
2 lld 0x0000564bcb706a05
3 libc.so.6 0x00007fe7ff9e4520
4 libc.so.6 0x00007fe7ffa389fc pthread_kill + 300
5 libc.so.6 0x00007fe7ff9e4476 raise + 22
6 libc.so.6 0x00007fe7ff9ca7f3 abort + 211
7 libc.so.6 0x00007fe7ff9ca71b
8 libc.so.6 0x00007fe7ff9dbe96
9 lld 0x0000564bcbde07b8
10 lld 0x0000564bcbde189d
11 lld 0x0000564bcbde3d8d
12 lld 0x0000564bccf709a0 llvm::RegScavenger::spill(llvm::Register, llvm::TargetRegisterClass const&, int, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&) + 816
13 lld 0x0000564bccf7155c llvm::RegScavenger::scavengeRegisterBackwards(llvm::TargetRegisterClass const&, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, bool, int, bool) + 2140
14 lld 0x0000564bcbde617e
15 lld 0x0000564bcd214966
16 lld 0x0000564bcce00f97
17 lld 0x0000564bce99787e llvm::FPPassManager::runOnFunction(llvm::Function&) + 878
18 lld 0x0000564bcdfd74aa
19 lld 0x0000564bce998415 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1077
20 lld 0x0000564bccb10bfa
21 lld 0x0000564bccb11359 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&) + 857
22 lld 0x0000564bccb0438c llvm::lto::LTO::runRegularLTO(std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>) + 3564
23 lld 0x0000564bccb0487b 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&)>) + 763
24 lld 0x0000564bcb8dd56c lld::elf::BitcodeCompiler::compile() + 444
25 lld 0x0000564bcb83a64f void lld::elf::LinkerDriver::compileBitcodeFiles<llvm::object::ELFType<(llvm::endianness)1, true>>(bool) + 207
26 lld 0x0000564bcb854fdb lld::elf::LinkerDriver::link(llvm::opt::InputArgList&) + 10907
27 lld 0x0000564bcb857111 lld::elf::LinkerDriver::linkerMain(llvm::ArrayRef<char const*>) + 4865
28 lld 0x0000564bcb858ce2 lld::elf::link(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, bool, bool) + 5362
29 lld 0x0000564bcb7400ce lld::unsafeLldMain(llvm::ArrayRef<char const*>, llvm::raw_ostream&, llvm::raw_ostream&, llvm::ArrayRef<lld::DriverDef>, bool) + 750
30 lld 0x0000564bcb67e336 lld_main(int, char**, llvm::ToolContext const&) + 646
31 lld 0x0000564bcb5db99b main + 107
32 libc.so.6 0x00007fe7ff9cbd90
33 libc.so.6 0x00007fe7ff9cbe40 __libc_start_main + 128
34 lld 0x0000564bcb67dbe5 _start + 37
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzce0tz47yx9q_RbFhyEXdgMQuPx37jKk9elz1fvjrZsHBpSIx5UXjxzOTXn6JEkQRNSnNSWcVlWxLxNNDofroboEBd1-muAPi8YV827Osn3Tb7svq8Sxvd5rp6-2RK9-vzQ5ll5Q9wUbOHGqK6gUMd-arMo33THOoNud3ghw1-2KXNvjU3tsw3-KEq7fHF2mwTf93Et_1_Hve_p4-YRru0iWxWFhBttxXYtqrTd7jU9cufd-eub3ZpM_ZkXTQZD9Mof3NpFZk2zVyAml_J9RtENzcTwe7C9h8R4stqH__rwkW7somafVpHUFVlFcx0STDL3IbcRhv8kJXFLjnoZl_oHJK6TJq9bpLqkNeJ1UVy0PZN7yBp9pA4MO0uSQtfbvBDXdkNfoCfDVSFzrqOsvd8e6jKf4Bt-o_dS2o2-OG7rnbQXb399vWP5_-3wQ-vjy-wS-sGqsfClzf2cNiQWySk7NR6L1MXHTsgtxtyG2JP146W-9sfzy-vhzTLnkrtXpuygg2WE7lz85cODNUG8w2-i9KimbyYsszGVxXZsqibTonbuoaqScsi2vD4odI5HDXdQfPaaPv2-HWD5WPh4GcntcFoQ75Gp3me20MlNlhEXqcZuN6_z0_3t6_3Ud2aPG0iHZl2F1VwKKsmaspLvDubNjR4Wtct1Bv8EHV8SAubtQ66UIlspet9ZLR9ayptoR_-qGXk2ryz_OlSfBMdf56rclfpPNLVrs2haOqeK-Wh6SNqy2_wTbxFNMZ08HKvl0mL4wcXbX2m38sq2hVttM0jyDynic7d7tBG221RbtvCgU8LcNG23uuqez1k7S4ttt1Q5Ov2BN6mxYlm6b9gW__KTZnVM2RuD-2GfN35nyqW0Xb7Y19msNWV3XdBvNzrW9dntdseKshK7ba2bIuuHfFoW3bzbfJDN5-ybOqm0oftqfettZIzeVO2zQUQlxg5fTPpx-51UUB2BlBsBWIBoMwysE36DvUZhCzjJgAdg_DcbJTFikybofhnCy2cAZhh4QLArirbQUnGpFfxtDkt0ubcCogAd_PWpHhvfo79C4XVFFLAIB_HLDZ02pjX1g4GwB47aafNh6r8-WswIAGP8LS56rPA0AHCAgfGaSpd1F0EDZ14DBSHRs7zshhcaRhjgQ5lAZUu3gYbUOI9CTsoCrDDCJogZUUwC93sBwdSQ4SXwSzSYjc0e6pJHLCkKnNI8tJBNoAcUgTMFFRDx-yBJA4cCe1QHspzq3ICIRRaCUaGcUWwDizUtEVaDBRTWmobTOBnPrhQ4hjJQFhnTVLVeTqYxxvGAt2PMVn4QT9HMeYiROzsHuzgAxrHeNbHIU2OuewMIYphAQFVzXufKYaZgNJ0jvkxCVkN2vPAGenB1qV9GymNpBQ-MGZxeBsjRiJNBA-a3_OsGyOpm9YME6LGaB1yptL5YBGusXSzwPBpNjLfGiO5D2lj86TO02Q6IUocgJ3DpgjJkXVyhhjDW3qOeMCsep-3TToaFYBLFTCgW8npEeBj6WXg3tCiWss4pGfdVGWxq5sKRpNYF0vsZiwd7cHAqDDTBEoiZpThHxJRkqUe7C-bDTRiVHn4mLGSg67qcTRNuQyT8glVQzOmVouER2IB1OimHTmpOXV-XgSSSRJ1sUHazzJs0uTDQAJrxsgckA5kA0cREfP20AkMNAqTQPE-8bEHRQMVDngsIVRQQmYUGYwgmWfygxEOh6SYFgLqGUdhFsmSnW72UCV1myepHKAGEeHm0ApcayHJ0yLXPxPjER-rcOyxvoYfujeGSXSl-0nvscUIf1B8Bid4jJUuX16Bczo4VnRLiCvwQXVBMQ4LzUd0O-qCNOGeXoFPdCFgJL8CH3RxDFGzpsuhgrzNOrdOHUUJJ079hsgwCAHBDLkqMRmDKMRFfF1itFKsFGVr9JlIjIYyVgvvr0sM04gxZ2GeWBSYuM5hz7G5LjEq5ZjAyF6XGJRiSBECqwKlC3wHxkGML6NHngpD2LoTSjf1mJFe0XX7d-CJXZCiao2jJ_DEJEZrv27EDjzSWQhH1-lcuql3KDC-Gocn8KiFVm5Wfj-AR594F9u1CJmHE0HcrWamWSBxQZRZM_IshLDChl5SYuIPyTVTa5ObhQ0STsi1YA4DxjosyZrnZqGCrWUXbTbxBTEC2MV-5bggVRLW4qlu80NZNy59T9JRE860xWu0n4qMCkksY1gLwqnIoJcioGJ2XWJiISa4_x29JobywlJ8wVeDiByXxS6Wc9M2ZSd2SN_LZlbkJYlRuK8zVamd1fUc6R1noSMcvKcWkkabcVWHiONh3d2XdRNiLOEstMNpufYGVQFZ8i0tvs2WFo47oz6ubT5IyHEvjw1aWDaGApMRpERiaZ05E5hkQIZkONFFgdGV2Dgg6qrAMAXgnsTkGn5CezAOhxvERYEJ6Q3l7uoURgYISXC8sLQP8RPCW4aVNlcFJhpRQLCwkJ8JjHmaEo3X8c_z6kkJcuFubwk_dK9jrd2V7ie9a0FBrTvgeVZDOWPawxX41FvEwRXdJ6Vfee7WY-yIDrjjhVmnwgk-6sI15txegY8rfcoFvYKesEZSgvTCxjCAj7rEVOCwpC7AR5eCE7FfRb_OarukyF-IqdewujurgK9b8TWs75ZhS9ej4zWs8FRxztfTx2tY45UxsVpPHq9BlXfYKn_ZJhOqeISRuoIeFWGWUndZ7ZEowDhnl-03Xf1R664oMqUJlo6tR9trsOgwliMb3vNZ3fZqT2iYJFa3vAphJeg6dLrO91qbCxpMmIG4kyAvQEcjUE1EeJd5bYtLIY6dWUdOlzXUc38JOtkJYEfDyr-2rRWYcKQXkMtbWos8c-wKfFzWIuXQkhkWt7LGcKIvqzLxBsag3ZI3lrewQjq9xIil7SsAxuEXDJe2roZSQ_hl9KS6cGLgCnosuwK5-dcFy9tVJr02F5Djxoh6t0ii-TZVKEMWKTTfolIihV-mRFhYGUVYL3ssKKmMCC2WWRMWMIbkhUlPw0FoTZeZFRYtZeLFdFRb3TRQLaUl5CiQJW0_yIwrfBOD-41hJqMoH_NFks1FJtZxzGr4DZGJnZTRix6ai4x3eohFbimuZhITrxHB6WJSmItMlvQevLG_ITLS3CK_mFbPEsvpTWI6K-cXxMYcjiC-6M_FdNdVd3_JDotpjyCrwqXPutRkmSLocqQsSE0W_cbBUsH9KDTdi3gF7BJTF9MiKAa_6a_Rydhpby_bYpYmHdOOLCW1mcQYqoCwUtcEpomYKI0vBcQ8fXKkPL9MuTCNYuUAX5315P4_F55fCup5WlWxEfFVjQLnCX4x08zSrLUg4ZJR52HJqAV0KcBmASkpzFasC_hpdqVU4UsTmAWhZliLq_jJcjBGYC6RYnY3ULHYLJWrKXz6vYfDnF3KJB-CDSN-zTyTqugxv0ig5buDSgCml3LO8h1Ch2JGL-WPxbuEEnt2sXIv3ylEShK44piFu4VGOmovRcjiHcNu6RUvDjaju2fMwSK9ZnUHpF6uBSG9tYqxWORTSGtHsZOLSTikc6xjgxc9G9KYa0_X5jtxAjgXr3Y3sTrFBNvF5B3QVVGgbgW2QFMSgySLyWiRnl4iT6_Bx-WRRGRxtb9MRyy5d9fgk1CxsVrcES_fsI6lCsO4hsJVYN9nN6Bj64gJaLBLm-QdqjodDxlhZqUJ7JClxthtlprp1-E3-ngwzQ5yWlrj4UYvyNlMF7ukam5Mm2ZNWtTbn5InnH7owxCPtbrRp_N2wam405k_1J_5e2mLIi120UHXdbTB4k5n2R-VPuyj5-7KN13oHVQbLKKyiPLStRl0sMxtG8gPN-UGi_5gIV7p8bkqs3LXwgY_3B_S49vosRgOWWIeHU9ZRg_p8aSf7i734_m2sD1KbGic_P2vCCd_PP355fYpSf6aIFG1xUta7B61eGgL-9rmj_oeoeeqbMrXND9k8PiU4vvxLz7-HT_c378_I9w54P-X1dt9Bnk3yOyIZPQjbfZl20SnM0VRoXPoJiWhqNsKol9lG-31OxxPrfZHFNN_QRWlRddWRc-33_8SlVVUQ3M8kwnFe1qVRQ5FE73rKtrw-Onpb9-S1__59uXPp8e_378knciGx1FTRocyLY6nQtNmg9V4XjOKssxF8c84jmPGqbFGxIqqeHJ4tv5Vn948V2lxOpr6vdI2PClb6R9JeTpxMz0kq6IN_hJh2h8aRqfhTj_hoFxqvzToS1u8Hs8D_UUXLoOq3mB57pf2VsYXutUxO4FIFHW0v6nLG96DhAfhvQLKcK8gXcFoIpW30aHZV6Bd8pZm2VEDEveC7ELvVPCo0mkNJ2PgkwRflbBaeBJpU1bNSQKhk4i4JILMCSRXQc6A6k-BqzWLOYiFkb234g_kcICk6s-bI7TaB3HyDMLzPqwXsdJTgr3A7tXqdyi69HDy_um4swwwx5ObHbPGq6fT0ue2u6zLE6fj18FB7VHgm7b7tIDHom6qL21HqMcGKt2U1YbcLcO6DrzOatiQ-_9wZ_xMZHk-nY_IgrkQY_ayufqPZ0N80fbth65cHZjwmrH-o1Y6H4oPzsj32QAN6YCuMogjcS4vbG4ShxFV_GwxvtyHhTj2qk8QSMz7AKWEFDCZ9MNzV6bOVeqU1Nriz-KhrxyBLceLow_FOWzkskbOO0G17kFqGQRKSXqc8nmoDHba_uoz8KjhY37IBi0D3b4dS-tEMxSLc6L8ENHWoNj4Xim8EtHWIESYmirVnJ-i0PYNChcoMDTelYVPdwHJ6sad2s4FOWDU_c8D2AbchtwNwLZI_9lCcmhC8t1puwf3kGbw2ledSecOvG6zJnGQQQOX5cj96berxW1xfIrIfUwc33-kBUxmonqer0tM3PDx8mub57r61T_9MXKInR2F1zwRUyLtkieevv858OEFdm2mq-4Slv9dJj8ZijBOe0uRdUtJYa5Z6r_OPv9OiP03TPya0GtTpcXuBfzvk0xw0nNsrU5J5xjvorGfK2T-9OZL2tjSwV2ZH9LsXE7s6dN0AUvPLGZrIxDNqT8_zzYf5ikt3qD6WqXvszH68TvT1oHJS3N82Ovk4aeH778OnUuC9A2FS3VRQF1vsEKduZqqhd43WAalPD7nq5UqbCSj3pnfUj1Li7dAkeOzVt2bx-LQNrfV7ik9e6mva2oY_0OBN5IJdFqi_tbIUH3TaVhIb6tK_-oYQ-7sXldnltxOKEIl77cXeKXqG8mkBbygx4f5XhxvStqPm61LbfPnEzu9GeH9NgSvLESMoHFsYdS7LWrt4Slz_zc7_ft6Lw4wqHPy39fu4v18doL1C0zycQfDBRByZGuSnybSp4pO9U7p7jfIEGWZ3ZVFAz-baZ44DsRpvwola3sh5oxSJuqGOq_Fegm8upczTp31J-sgoHGUJF1zUje6apJxDNyvRMla3uLCGWDRSfBUUMXsKd9P7jNxiij9CT4jgRUWnAr6af-ZOqMIeIOQFt4gxWLgjEtnNddec_op_YxjTFGMJJKEEnqDGRMaCNHYIcQZ39AYcp1mN52Rb8pq9-n45OlnhLBi9FOmDWT18UFujAv4ER1bNxhv2NdP1efj_RHT7uoNjbO0buqxmyZtMvh8fFY3LXbRS2nz6OXu7ql_avZTW2Wf__2nYnv13j_j_w0AAP__AkbEAQ">