<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/80954>80954</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm crash: Assertion `Idx >= 0 && "Invalid basic block argument!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shao-hua-li
</td>
</tr>
</table>
<pre>
llvm crashes in `loop-idiom` pass.
Bisected to 1c6e6432ca0b6832e06b93a4bcf22ead1899c14d, which was committed by @nikic
Compiler explorer: https://godbolt.org/z/nxhnoE1Mb
**% cat reduced.ll**
```llvm
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define void @m(i8 %0, i64 %1, i32 %a.promoted) {
entry:
%conv13 = sext i8 %0 to i64
%add14 = add i64 %1, -1
br label %for.cond5thread-pre-split.lr.ph.split.us.us
for.cond5thread-pre-split.lr.ph.split.us.us: ; preds = %for.cond2.loopexit.us.us, %entry
%inc.i1417.us = phi i32 [ %a.promoted, %entry ], [ %inc.i.us20, %for.cond2.loopexit.us.us ]
%add161516.us = phi i64 [ 0, %entry ], [ %add16.us24, %for.cond2.loopexit.us.us ]
br label %for.body7.us.us
for.body7.us.us: ; preds = %for.body7.us.us, %for.cond5thread-pre-split.lr.ph.split.us.us
%2 = phi i64 [ %add9.us.us, %for.body7.us.us ], [ 0, %for.cond5thread-pre-split.lr.ph.split.us.us ]
%arrayidx8.us.us = getelementptr [1 x [5 x i8]], ptr null, i64 0, i64 %add161516.us, i64 %2
store i8 0, ptr %arrayidx8.us.us, align 1
%add9.us.us = add i64 %2, 1
%tobool6.not.us.us = icmp eq i64 %add9.us.us, 0
br i1 %tobool6.not.us.us, label %for.cond2.loopexit.us.us, label %for.body7.us.us
for.cond2.loopexit.us.us: ; preds = %for.body7.us.us
%inc.i.us20 = add nsw i32 %inc.i1417.us, 1
%conv.i.us21 = sext i32 %inc.i1417.us to i64
%add15.us22 = add i64 %add14, %conv.i.us21
%sub.us23 = add i64 %add15.us22, %conv13
%add16.us24 = add i64 %sub.us23, %add161516.us
br label %for.cond5thread-pre-split.lr.ph.split.us.us
}
```
**% opt -disable-output -passes=loop-idiom reduced.ll**
```console
opt: /tmp/tmpxmdtc3mt/tmpn8inmjh2/llvm/include/llvm/IR/Instructions.h:2910: llvm::Value* llvm::PHINode::getIncomingValueForBlock(const llvm::BasicBlock*) const: Assertion `Idx >= 0 && "Invalid basic block argument!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/opt -disable-output -passes=loop-idiom reduced.ll
#0 0x00007fc24b876eaf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x914eaf)
#1 0x00007fc24b874414 SignalHandler(int) Signals.cpp:0:0
#2 0x00007fc24ab77090 (/lib/x86_64-linux-gnu/libc.so.6+0x43090)
#3 0x00007fc24ab7700b raise /build/glibc-wuryBv/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#4 0x00007fc24ab56859 abort /build/glibc-wuryBv/glibc-2.31/stdlib/abort.c:81:7
#5 0x00007fc24ab56729 get_sysdep_segment_value /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:509:8
#6 0x00007fc24ab56729 _nl_load_domain /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:970:34
#7 0x00007fc24ab67fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#8 0x00007fc24d68155f llvm::Loop::getCanonicalInductionVariable() const (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x271f55f)
#9 0x00007fc24ca39df5 llvm::SCEVExpander::visitAddRecExpr(llvm::SCEVAddRecExpr const*) (.part.0) ScalarEvolutionExpander.cpp:0:0
#10 0x00007fc24ca36745 llvm::SCEVVisitor<llvm::SCEVExpander, llvm::Value*>::visit(llvm::SCEV const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad4745)
#11 0x00007fc24ca3711b llvm::SCEVExpander::expand(llvm::SCEV const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad511b)
#12 0x00007fc24ca37380 llvm::SCEVExpander::expandCodeForImpl(llvm::SCEV const*, llvm::Type*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad5380)
#13 0x00007fc24ca399ec llvm::SCEVExpander::expandAddToGEP(llvm::SCEV const*, llvm::Type*, llvm::Value*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad79ec)
#14 0x00007fc24ca3ab97 llvm::SCEVExpander::expandIVInc(llvm::PHINode*, llvm::Value*, llvm::Loop const*, llvm::Type*, llvm::Type*, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad8b97)
#15 0x00007fc24ca3bb6e llvm::SCEVExpander::getAddRecExprPHILiterally(llvm::SCEVAddRecExpr const*, llvm::Loop const*, llvm::Type*, llvm::Type*, llvm::Type*&, bool&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad9b6e)
#16 0x00007fc24ca3c5d4 llvm::SCEVExpander::expandAddRecExprLiterally(llvm::SCEVAddRecExpr const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ada5d4)
#17 0x00007fc24ca36745 llvm::SCEVVisitor<llvm::SCEVExpander, llvm::Value*>::visit(llvm::SCEV const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad4745)
#18 0x00007fc24ca3711b llvm::SCEVExpander::expand(llvm::SCEV const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad511b)
#19 0x00007fc24ca37380 llvm::SCEVExpander::expandCodeForImpl(llvm::SCEV const*, llvm::Type*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ad5380)
#20 0x00007fc24ce4bc8c (anonymous namespace)::LoopIdiomRecognize::processLoopStridedStore(llvm::Value*, llvm::SCEV const*, llvm::MaybeAlign, llvm::Value*, llvm::Instruction*, llvm::SmallPtrSetImpl<llvm::Instruction*>&, llvm::SCEVAddRecExpr const*, llvm::SCEV const*, bool, bool) LoopIdiomRecognize.cpp:0:0
#21 0x00007fc24ce539b7 (anonymous namespace)::LoopIdiomRecognize::processLoopStores(llvm::SmallVectorImpl<llvm::StoreInst*>&, llvm::SCEV const*, (anonymous namespace)::LoopIdiomRecognize::ForMemset) LoopIdiomRecognize.cpp:0:0
#22 0x00007fc24ce5494c (anonymous namespace)::LoopIdiomRecognize::runOnCountableLoop() LoopIdiomRecognize.cpp:0:0
#23 0x00007fc24ce561fd llvm::LoopIdiomRecognizePass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1ef41fd)
#24 0x00007fc24e6ee6c6 llvm::detail::PassModel<llvm::Loop, llvm::LoopIdiomRecognizePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x378c6c6)
#25 0x00007fc24ce7544f std::optional<llvm::PreservedAnalyses> llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runSinglePass<llvm::Loop, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>>(llvm::Loop&, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&, llvm::PassInstrumentation&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1f1344f)
#26 0x00007fc24ce756f6 llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runWithoutLoopNestPasses(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1f136f6)
#27 0x00007fc24ce76b0d llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1f14b0d)
#28 0x00007fc24ce77d62 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x1f15d62)
#29 0x00007fc24e6eb0c6 llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x37890c6)
#30 0x00007fc24ba8a40d llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0xb2840d)
#31 0x00007fc24e6e41a6 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x37821a6)
#32 0x00007fc24ba88c9d llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0xb26c9d)
#33 0x00007fc24e6eb026 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0x3789026)
#34 0x00007fc24ba86c1d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/../lib/libLLVM-18git.so+0xb24c1d)
#35 0x000055608ac0cc95 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/opt+0x25c95)
#36 0x000055608ac00876 main (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/opt+0x19876)
#37 0x00007fc24ab58083 __libc_start_main /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:342:3
#38 0x000055608ac0151e _start (/zdata/shaoli/compilers/ccbuilder-compilers/clang-1c6e6432ca0b6832e06b93a4bcf22ead1899c14d/bin/opt+0x1a51e)
[1] 1629345 abort -disable-output -passes=loop-idiom reduced.ll
```
The IR is reduced from the following C code:
```C
int a, b;
long d, h, j;
short e;
char f;
static char *g = &f;
static long *i = &d;
char k[1][5];
long l() {
long c = a++;
return c;
}
void m() {
for (; b;)
for (;; j = l() + *g + *i - 1 + j) {
e = 0;
for (; *i + e; e = 1)
for (; h; h = h + 1)
k[j][h] = 4;
}
}
int main() {}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXFtz4yi-_zTKC2WXhO4PebCd-EzqdHZTnT45jykEyKYbgRZQYs-n3wLJtiQ73U5vZifTky63LAn-F378b8giSGu2EpReevHci68uUGPWUl3qNZKTdYMmnF0UkmwvOX-qAFZIr6kGTAAv8bmU9YQRJisv8UGNtJ56_pXnz9rjnGmKDSXASBDghCZRCDHyiyQLIfWTIg9RVOASQopIkOU5DiLiwQV4XjO8Bs9IAyyrihnLotgCL_IF-8Yw6MtYyKpmnCpANzWXiiovnIG1MbX2wpkHlx5criQpJDdTqVYeXP7uwaXYrIW8Dm6LPicPtp8YYGSAoqTBlEw57-63fRK__Vgw2lsGqRU1gCCDONrKxgAvvAIehHRSeeGMTmqY-l44C6E72MtgeGnPksgdJmx3UmaWKIDZRGT2JNnRJNHkPoCZB-FAvlGs5nQne5Mlj0k0acQ3IZ_FhDPRbCYr0eyp2iOhJRMUPElGLLqVBzOWAQ_Gvp0GlkT2PHDnIbTnaForWUlDiQdz4KXzlg8VRm0t3u4K2J5YiqcgdPpoujGg42tNwY7x0BEREkSuHyJkIHMS7LoVCnBUUG6bSqmmWAoSm7WiiExqRSe65sxMuZrW62l73uhpo_tDfQ1ZOANeOAe1okR3iO7Fwqk1errZd4YL29wicBgVE3jKgihIp03Lol6zFsR4PgbywAB48ZW7bjs5JtNGQ7_r9JISjq4V3iGaBHGQDGRbYOM58L8jzxFaedH58o7mxsaK9DT-_aZwBn747-Qk9JkMtTzbIiwRPEKmBSA_Yt0T2MdrPCdnSO_DZqUphbaMbLJda3gFVtRQTisqTG2UlROAjf2KwQawzNK3GthW0djg1Ppp32H789-73Xk-0EYqav3R3zE61sW2IM5WAgRDV817uvb8FVqCflcjCyl5MhXS9CgYrmpA_9VTtAe337MoFpxkYrsdBYJTHnmuRZ6k_45p_tAiRxHAOe8eLKGfd4G0Hx_62HWRs6UMeuHzmOx0KI0tIRzPjwuyncH2-PdodVPYW-EpypZnjzwIR9HGBY0x6Y5lRzgwyzcJ7OnVKCufTueyNmBCmEYFpxPZmLoxYGKLFaq98OpQw_wo52MptOS0vStr4_IEXJqqbo-bihgcVqa9EhkT1dc19ODSFQtwyQTmDaGHGzef7UFooxpsmBR6uvbCGcwDm_qB6xTOvHD2gHhDPdi_dffbzT8koe3FipobgWXFxMp1XUo15xJ_82BmdTY9ujnSDHeNM5vDXQcrbqY1VVYLW9jdkA3wwms7oT7wYOLBxJYVN-IJcUZAYbmAwrIBSK0aG688GNjqAqagRIxT0lWCd5-uZ_fXQDdFxQxAoGhWQNFaKmPtd1SoMbNuiimW1QEj-zWplfxKsQWWad1Q7cElQIKADlFg1rStTEGB8DejEKad-HuD8DdAmqrelyf-1PPzOyVXClV77XU3mb_bOs6DS1v9cubBJe7qSysT46JhnFA1GdzlSKwm59e3y4IJDy5_xip3Thf6wN_4vu-nJYZRkaUJRWVvlvVWd2aimDAOgy8WFA9mh04KPT9KbRRFlZvhBWB2FnPg2eryv4jEdGrnmRXt8dOnh9tJkK2YmWrpwbm_yYOIotKD-WH8wWj8URRE4J6tBOK_IUE4VbaUbYfT3tZTXFsb8N3_PSPYZ4SKNPVzvwOg1airpHsVtG3AUy2nidMuCv3cHygXHvH0C6AQ09RamAPOGrtlM3lu1Hb-tL-E0zCwmDuVd9DorSa0tgA3gm3aG09OD9HYS8d6ir1wFtuVxSGVhNFQkzjJ4hygwjrfuZoY0uLgqJyQzApJD0LisZAU5raOeWz1ftR0ZT3s8cmGpnPlMmHs-LlEpNIrjFrRsZ9bBQ6yk1OyHwV_tISPRFbILlT_E5F5u3iLDjLTocwkLUnyOpMJw5IkA5PJ-jxJkgVx3PfnT1LW-1C_QEIKhhG_EaTNGw9IMRtGnBJdSH93XgzToIzjoRvn_WFjFOakjHvDvl9cP1xvaiSIW9Z74eyJaWZmhHym-HpTq0E8s70PTV1ia5OcB7NpjZSZ-i4gYMSRun6SvLHo7SQcBwgbaPyRikkajVV8sEpJ5YWLF1S3BelRMnfpdT-mo5GM9X9XcxkgEqVRvJ9LC1QwAioNguK7c0nd1V9u4HEQFIOBw_HAw8w_Y-ALSWyhdlPV_HsY9E3ny7am7xiYMPMHwIRj784pPgOYGSFf5P9c370alZNe9j6xSnOKB1hFI6xQkadnYHXzcCPwAKjdwuBlQBajxPIaWHs37dL8naKbFXk6QDceoVsUCf0uuivayzJ3v918YoYqxPn2vIzzRhCfuJkcoE_eKfp5kdAB-skIfRyT6Lw40CH7SvTfJSooJtEAlfSjsDivsMj-roXFuDr-KCxaYOCwJqdRgTNsFbcLo20lGw0Eqqiu3ROP_BCGbwiT1WeK5Uqw37tnZ7WSmGptm--NYoSSeyPV8EnJ6dz5HTxv0bagM85W4pwk3HsCeCykQpzfGXVPjZvQfigY0YXXXXp4ZYI6GkebXg4Z_hi6k0slOFwB0DjMi_RNpkUqqoembFF5oNh0Zj4IkLb7TTeaFzAZDPcnNVxKdUsrTc1rIIIjiKI8-mnLVY34p1jIRhi79nePCNr1_7nKhCNlkqAko8JlyOYOab2XPZiQVvoI6ZlAfKuZvkUCregwjbUE4zrp3iBBkCI7ys9UN9xoy_nETP6AYtj37vb_aoKMTZrvs3CiZRSUZBDnBosCmlCa4KQ3JkINYrwr-5HWt5JQfgbKJyZ10OdOUU3VE-1ApfoPnta3mdNd1fNhmm9tmmGa4QQnA9McrqhoGkdRCbQh7ZBkbZMSGhrjsVmF132rsxZ81nS8fwO8Z2LFu3B5Qrk9To1g_2roY22Ggxg79kIKTGvzl4WlP2RCS9Rw80gop4b-0sPef14IRx9m8Dcyg79QBlqMonK7zqioMKhda7zLLBWUQRhF5SBLJeMslZTJL5py_p-ZtWyM5fUPqs1d-yLBRyH01iaWlMNCKB2ZWFL45Bc1sQ9remtrigp_uOLLRtaUkgT2xrRshHvc80VaJKxtzQiq3SPiU3O06_6qedoTdfi_S-BiksABcPloqVz4r1wqH7BanAX4W62Y-3C_5Gu_6DyGaZb7w3Xl6MU2lKHorHB6evY-cD-JewGzaBh3hu_T0YRGAXoL9_nDpuvD-97C-2CAht4HR96X4bzvfbeSNJx-kbvB_TABtQSvAq4jebewFTDB-dB5wqPcA1_nPDuYFmdi_VbWf8D6Jdv_BSfQZR04tPtoZPcJDs7JOqfm7QPvI4eJcDB0mN3D4zhO_AxhH-O8_-qDapy137GaciaGP8XeG8XE6jMtT3nLEW5f3N7IW4TXjs_4V2_X-okVCqntjShl-5P5uJeU_J_u9fwl4yeY_EfNLwxnphTa2ruD5-cWE96smDjKgLI2j0bKLsi08v6XCfK9Xg9UsZJRtes3_NX33O__vr3J2rTvE8c4H7wosn8ZfGdWfpYmoHsD_M_RMcizdBhpRi-Px5mfheDxkbMCP2qDlHl8zSvrWDc7D2xPXaPj415eDyO3y_ggPhtBFMQBBa3gPw8kFAe9F8bieeDFVyBIYB5Gcbdbof33U9tlTm4O-7Km4OYzYHrXHZRKVm4fUSk5l89MrMAC4G6L1ZDRor1mwgDkPMELu33QXIoVcN60toev-wa9tqOg-2u8RgqUh2aDDMPA3fXgbNXtLkyOejgBHpyxXQ8yZPmtg8-L57H9GijGu_cD9tu2W3a43bfnwbn97CgAUNQ0SgC8v7Xfb-f2i1dH3EAplbOicN5isn_VH_TbbPNXJ3OvEJx3w25PGJiAwF18HUmw_9pN7n5P0yH_Dh84d3h33YOBMiOCtTu4fmtHeNwbOGi_ttCurYHa3tFBicNmxN2JtQ_rzD2cjjYsXpDLkORhji7oZZD6KczDPIUX68sswzjJcExhUKIgT-O0xEUS5mFREkQCeMEuoQ8jH_qpnwV5GExLGhY4iMIkLFMKc-pFPq0Q41ObAKZSrS7c3rnLzM_j6MLtutTuTz5AKOgzcI0ehF58daHc33qYFM1Ke5HPmTb6wMUww2nvj0H8IXsHLxrFL39-c6Ab478DAAD__2sLNQk">