<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64462>64462</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
ICE on 'requires' for recursive function template
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
rollbear
</td>
</tr>
</table>
<pre>
The following invalid code ICEs clang++ 16.0.6. This is a reduction from a case I believe to be valid, and that was accepted by clang++-15 (https://godbolt.org/z/axxY8TGWz)
```c++
auto c(auto, auto ... fs){return [](auto) requires(c(fs...)){};}
auto f = c([]{})(5);
```
with the backtrace:
```
clang++-16 -std=c++2b err.cpp
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /usr/lib/llvm-16/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name err.cpp -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 -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/ -resource-dir /usr/lib/llvm-16/lib/clang/16 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/x86_64-linux-gnu/c++/12 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/backward -internal-isystem /usr/lib/llvm-16/lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++2b -fdeprecated-macro -fdebug-compilation-dir=/ -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/err-6f78a7.o -x c++ err.cpp
1. err.cpp:2:19: current parser token ')'
#0 0x00007f899cf08c16 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-16/bin/../lib/libLLVM-16.so.1+0xfc1c16)
#1 0x00007f899cf06e60 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-16/bin/../lib/libLLVM-16.so.1+0xfbfe60)
#2 0x00007f899cf093eb (/usr/lib/llvm-16/bin/../lib/libLLVM-16.so.1+0xfc23eb)
#3 0x00007f899b9ff4b0 (/lib/x86_64-linux-gnu/libc.so.6+0x3c4b0)
#4 0x00007f89a500b3ee clang::Sema::CheckParameterPacksForExpansion(clang::SourceLocation, clang::SourceRange, llvm::ArrayRef<std::pair<llvm::PointerUnion<clang::TemplateTypeParmType const*, clang::NamedDecl*>, clang::SourceLocation>>, clang::MultiLevelTemplateArgumentList const&, bool&, bool&, std::optional<unsigned int>&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1aa13ee)
#5 0x00007f89a4fa2571 (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1a38571)
#6 0x00007f89a4fa85ab (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1a3e5ab)
#7 0x00007f89a4fa1f82 clang::Sema::SubstConstraintExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1a37f82)
#8 0x00007f89a49cf387 (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1465387)
#9 0x00007f89a49ce279 (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1464279)
#10 0x00007f89a49c94df (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x145f4df)
#11 0x00007f89a49c8e8c clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x145ee8c)
#12 0x00007f89a49cb785 clang::Sema::CheckInstantiatedFunctionTemplateConstraints(clang::SourceLocation, clang::FunctionDecl*, llvm::ArrayRef<clang::TemplateArgument>, clang::ConstraintSatisfaction&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1461785)
#13 0x00007f89a4f415df clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x19d75df)
#14 0x00007f89a4f94ab7 (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x1a2aab7)
#15 0x00007f89a48966dd clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x132c6dd)
#16 0x00007f89a4f42a81 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x19d8a81)
#17 0x00007f89a4e1f5f0 clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, clang::OverloadCandidateParamOrder) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x18b55f0)
#18 0x00007f89a4e1ffc3 clang::Sema::AddMethodCandidate(clang::DeclAccessPair, clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, clang::OverloadCandidateParamOrder) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x18b5fc3)
#19 0x00007f89a4e36e67 clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x18cce67)
#20 0x00007f89a4b50681 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x15e6681)
#21 0x00007f89a4b687fd clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x15fe7fd)
#22 0x00007f89a417fa4c clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xc15a4c)
#23 0x00007f89a4180965 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xc16965)
#24 0x00007f89a417cbe1 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xc12be1)
#25 0x00007f89a414f26b clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xbe526b)
#26 0x00007f89a414c637 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xbe2637)
#27 0x00007f89a41fc557 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xc92557)
#28 0x00007f89a41fbf79 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xc91f79)
#29 0x00007f89a41fb217 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xc91217)
#30 0x00007f89a41f95be clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xc8f5be)
#31 0x00007f89a413933e clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0xbcf33e)
#32 0x00007f89a5d503b5 clang::FrontendAction::Execute() (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x27e63b5)
#33 0x00007f89a5ccac94 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x2760c94)
#34 0x00007f89a5dc9434 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-16/bin/../lib/libclang-cpp.so.16+0x285f434)
#35 0x000055dc45f3b116 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-16/bin/clang+0x15116)
#36 0x000055dc45f38280 (/usr/lib/llvm-16/bin/clang+0x12280)
#37 0x000055dc45f37f89 clang_main(int, char**) (/usr/lib/llvm-16/bin/clang+0x11f89)
#38 0x00007f899b9e6a90 (/lib/x86_64-linux-gnu/libc.so.6+0x23a90)
#39 0x00007f899b9e6b49 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23b49)
#40 0x000055dc45f348b5 _start (/usr/lib/llvm-16/bin/clang+0xe8b5)
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 16.0.6 (++20230710042020+7cbf1a259152-1~exp1~20230710162037.55)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/err-c1b700.cpp
clang: note: diagnostic msg: /tmp/err-c1b700.sh
clang: note: diagnostic msg:
********************
```
```
cat /tmp/err-c1b700.cpp
# 1 "err.cpp"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 451 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "err.cpp" 2
auto c(auto, auto ... fs){return [](auto) requires(c(fs...)){};}
auto f = c([]{})(5);
```
```
cat /tmp/err-c1b700.sh
# Crash reproducer for Ubuntu clang version 16.0.6 (++20230710042020+7cbf1a259152-1~exp1~20230710162037.55)
# Driver args: "--driver-mode=g++" "-std=c++2b" "err.cpp"
# Original command: "/usr/lib/llvm-16/bin/clang" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-emit-obj" "-mrelax-all" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "err.cpp" "-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" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-fcoverage-compilation-dir=/" "-resource-dir" "/usr/lib/llvm-16/lib/clang/16" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/x86_64-linux-gnu/c++/12" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/backward" "-internal-isystem" "/usr/lib/llvm-16/lib/clang/16/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include" "-internal-externc-isystem" "/usr/include/x86_64-linux-gnu" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-std=c++2b" "-fdeprecated-macro" "-fdebug-compilation-dir=/" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fno-implicit-modules" "-fcxx-exceptions" "-fexceptions" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "/tmp/err-6f78a7.o" "-x" "c++" "err.cpp"
"/usr/lib/llvm-16/bin/clang" "-cc1" "-triple" "x86_64-pc-linux-gnu" "-emit-obj" "-mrelax-all" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "err.cpp" "-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" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-fcoverage-compilation-dir=/" "-std=c++2b" "-fdeprecated-macro" "-fdebug-compilation-dir=/" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fno-implicit-modules" "-fcxx-exceptions" "-fexceptions" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c++" "err-c1b700.cpp"
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXFtz4zay_jX0C4oqErw_-EEjWRPX8ax9xk6y58kFgk0JGYrgAqBHsw_7208BJCWBkmV5VpkkVUlNWRJu3f31DSDRIVKyZQ1w7UQfnGh-RVq14uJa8KrKgYirnBffrp9WgEpeVfwrq5eI1S-kYgWivAB0O7uRiFakXjr4g4M_ID-eeJN4gp5WTCImEUECipYqxmtUCr5GBFEiAd2iHCoGL4AURzkgs6aDZ4jUBVIrotBXIhGhFBoFBcq_7VNx_Qg5OF0p1UgnmDp44eDFkhc5r9SEi6WDF_928IJsNv-XPn389d8Ozhxv7njT_m_sdf9ot1zXSlrFEXVwqr8YTnTDZDJBpdQLJB8EqFbUqINqOzBDAv7VMgHSwameX8rJZKJnmElOMncC83dHpUROMDe0-rW6YXpKGumP4MOI0332vzK1QmoFKCf0ixKEgsbg2HgLshi5UhVOMO-lxjkCISa0abrBD3c308cbJNt8zRQiKG-XSEDDhdIqGmHN1KrNJ5SvHbyoqpfhw20E_w2ocvCCSdlqSBZGo6ymVVuAYZsKIld7zOMZagQ0glOQEgokeSu6Zj2TSMkpI9oIRFsjSQVr1KRj-VER-gUV7brZIuBN0IPgS0HWiIhlu4ZaabaRgxetFJpNlg_M-rGDFzmrHbwwSCGXUh-5SrCmArRJ4-c4dBvqVqxuN-6ybpELa6Zcnv-G3LWAimxcUlXILZgkeQVuKQCQSysgwiVSuTmUXICrRYW62I0z1F9AsJKBMM2UiMJ9IVULbk3WIJG7Jqx2S1Z1DYOqOrqcEu1Q7poXUKGGUeQ2jLoVvECFcPeDSbdhgNx1Kcga3IazWoFwgrnhuFwTtXJBiJojtywbl_Jaa0M5wZzXyC1r7gre1gWrl64ei9w15bVUoqWKC5dUjEjNZtnWX1lduEoLJp1gjpGriFiCcmnTahDdOESuamswDUuoQWiG1xoEDTYQ5UpKqg5BtoFC86VpSPcrEbWOOW4BebtcgtALsXrpBPNlkSO3pPwFBFmCS_m6YVUHS8G0nNr0XAGdNem2122g-917y0J7igGrJpXL5DepYL2b29mLdvB-2pJSBy96a9mail4HDwNHf3pn0CT7AKQH_zCiR2b9IXzsE9VrE_rlKxHFKfpvKW63_slVOCXVeUMvIPCRsYeEYaO_0EMGXlfb6dnvJ3GYHtyygEYA1cHXXRMquGnK2-Vr7lZ2nlsxnUL8DLnlsm6pDnWS8doJ5uEET_wuvLB1UzHKlI5ibWViCd1sXNjolM94rRusH6QohGRL5M6fnz_OZs8_TX-5eZ7_Ov28wM-zxe3z9PGTE8x95HItm1o3Dl6AEG5cJilJJhy5G9QLZ2c-f4LMf0NjMMVOMPUznTdoKwTUCjVESBBI8S9QIwcnJlkn3Xzk4MBD3sbzPC8p0yyjpZdSP0YmMwZTJ5jKb7L78iBYrUzeeuqSX7obJMjXZy51RFw7ONYJkNVKbzD0RuF0_tqz0Irld3e_fHL9eCL5xHfwB29TUp_q0dmOYX_EcAyxd4zhz239yJY1qX4idVGBkIaZS_CUlxB7Fk94xFMWQH4J4XEAuUUo2CeUZ2UZ5l5PqFvniNNWLKd60dgsGtAwt5kP99YkkeflAUC_aTVAPsKadN9mK6BfHojOywrEA6Ff5IKLm01DauMmON2fZvLXXZ_ytVEcdH4m9dLsl3bqmwpBvn2G0glmxqt1W0O0o852gx66PcHPtfHN2d66T7BuKqLg6VsDD0Ss9Scy-d_B0xEP_yBrKOZAK90V3BzlcMt-cHM45FNbKXan9y4D2Wm_c7tjUg1kjT_knFeHX7cSchMrSOUEs7Y2B5vCuJAmGX-P0RouXdo0xpo6zfuE-AGApftoX_dhSXCU-BciFqRR4lvE4hGxNCLv95JXiEFEbE9JRsT8MsXHrfqxzaWamT0iYbW62TTCtuSuZWw-Z2v_UtoLkjLFloypJWNGyyBNLkMsjKMgTSxi2YgY4ORCkoVxiJNsd9bFge-NiGVhUV6IWFSGRWkR80fEUkjpiQC4M5VHopgsCVUHwW8bW6zgczTMjQxtN6GLN7s5j2tSVb-APsbcrpvqcOowKf7-OPV6iN7reQ2Ay9l6GAGk1FISHikpT9LohJJua6lIrcz5e9HWhsNB-h3_8h0pa1hlyBhn6HMM92EK-QFQxn7SPZvZQhnYoTH0o6I8DuWC1UyuxmLMhwdjNnpjmI8CddKIzcJQHIXNmKeVHN9Qz9ie5VaqHYO9HLd1yfsJZ3K6g-hesCWrSTUjVTUVSye4sVy-y_b765Y9o8_CmIse0Gk6M3JeSO1ZkUSjMBfaas9Ckl8oWxBMSJ5YxOyNRZrFcVEctzHR1r8ytXpsy5JRBv0h47HpDhknvfNVUF84K34HUANM46Kw5BztaUJMUv-4nJ1xj21bnu1DJ-KKDuOdDZ-dZo7ueS_kQ2fb_FuM_m9LKr2D73R4WfdISepbmrQ3jOCXUekd1-S0KD6BWvFtoJqRumAFUfA9ytStU0pBygd9zhnlh3_-8zNQLorvMoRjUNrNxhQ6ShWRkpXsmHe904zuX0BUnBRbWB5BjUxj-Dw1yxw070UB4mJqT_MoKj1L7elY7SUN3lD7K-o-qcg_Gf4_HveSBhbu9nECghji5DjuH1pWFTq9PvH7_Deg6r40YHVwWhmCct00tv3j57dT6eRTa14LvBP38YqXAo9SiK3siu3jUR558WtZZwve4bH2T4bWa0zYIeNCmEYQx3b8x_YpMI_TpHxlxzKl6r7-C2N6KQxLSEprN4TtQ5qflCS0TtIP5mH03vcHLlXJNpo1kJLx2mwDNzaoU5NFP4NsK3UcCDxDSrRwwR0C9SMSWidQbB-b_NTL4uikcDMi1U4yW6b9wXqc-f0_rC4OTX68CdufqmOgnv6oTDoaT72YsqkfZ7F1isThSNc0B_8kHFNzZUNvU84BZSTZpcTAOdhubx9U_LDEcX5SDJ3miTAONi0ViOE3F9O6mColWN4qkId7g27QaX2a79t9pd7KvfZ4Zn_WggvznOa2ZuqCSs8hwnFuoRWP0KJxkLyJ1kfB2-ZQ06xe6t7HBuiheDvAZrxWsBkf9zug9uE-_vxqFwvH0feHAIjjwM7c9inDL2kUvQ3gvdidzMrb_r3oEdc5icd5I04qpdvd6j5zAeRiXpnhKLJhSkcw5WWSneuVFlqsZodPqn4XsMb29buB5Zf2w3KcjcHC_mmbutl0JrQH2o8B6GIQYN-yl8AbQZBFOZyE4Ik35ol4d67el_2-If9q4UGJ8bPJPpCZ3diRp-y7_eEncy_gdt1wMaSviz3PpWkZ5WDJbm9c_SALgkPZp49Po52qZvfYofxCoY-WQWDzaW0OoyLygtzaPy2EjvR10W33hg0e0NYctC_FGE4gDnJrK2O9VScRpYRmof2Uft2wCkT3UqG7trjlbXrsUbgtyuXUj5PYo1locW-_vy9oFgahve83fO6EeNnmxPSUkJdzWJxGZRjYXA_7rigqaBiVQe77MaLUf14TveorzwZX5OAFmd2GZ-iFs-Js5jsAuvOMv3fTRLMYj1hMceq9b0mMU-tp0_at9LCk1lmnq0Hu4c3GinQnm_fL4ZeplR-s18RZnkFMsndeGsEByWxBsvGaeZih52c97VkqIpSR571U8tDiPPRGcIVpHqFu_XdhAumexw82j8ydL_2lrfVZGymOoPMVRPl6TepCdz7CUp9ZSHcTnLSVIU25AHOBF4oTC5sWVPbRYFgVlYRVUKCiNTSluaWkF20lIPfFtAEgtueoPYWf87ZWbb9sfzmtv7ne4WEuwHk48BLf80LsYc_BHxKalz7BUeZH2PX_A5vG_88wyI-xFySTaAfPk7kEq7k_cpG4H7ISQApkbvHqgQ2XbNN1mehRVVDMmbCuL2uV2CjVXOlIigpGljWXilG0lqZnMID_4t_etfP-fvj06Wk6-wk9_XSDFvd3d_e_3v7jI1rc3t08oqd70_zh54_o883D_ecnZ7iV_XDsfncqtU--esd7O0AAMjeeoUBEbZc8R_79W4DUzxPP2136-875cvVe-C-lhGOlAOP7_kSdFtrBAfKRg_Fw1RHjUYcTzPKWVcpl5rIWxsh_c0SwGxFGb48ZRgxuXLEazqY15ncnyND1l6njOKK8kyanZZ6Z2gnjTUVLQaCSC_QjwpkmPhfsBQQiYtmXVGDXLUybqURwgvlyuNKNTe_oQnHffMz2htf_-xlDDzgrM3XEKPWHr10FR__rWPjtxw3VHMPvXU3H0LJf2bEl9Ep9x3iOVeWx1zmu9dhStyo-DsDacmhVf_QdDaPDkG0lSN-A9zu6qpDtakdqQ4a-vQqRbdO4TmTbMa4W2RI4UjOynXRQObJV37Z-ZKdCNw633X0tSf-7ryjZkuzKkQZDOKO6ZKuaYzUmW25PV5oMw_brTfq2dxQvdGuMqxHG6_yORRh_AANvVKP8CUDZVqacy8v5VSpnr2hXrPxAUF6vXjlgYlRgMmbmlMrPXem_JX0qLR1Wu-x1vFrzsh2zV_nSt_nZtvNYFcx-8BzXwuyijlURsyN22NRXxwy_T9fIDKP4DqnDeplh0Kb_Qq3kPs7if6frv9P1Xy5d_x0J3nTy_TPkdsc-nFyuiuugyIKMXMG1H2c-xl7mRVera_CjLC4SIEmM05TSuAiyGPwoJqWXeCm9YtfmrJF6kZcEkRdNIgCIPS_BmOA8oaETerAmrJpoA5lwsbwyFeXXcRjG-KoiOVTS_F8LMK7hKzKdmsFofiWujS_n7VI6oVcxqeRuFcVUBde3sxvETSHf7tCXmMOUANoKyV4ADbctkerfI1-1orr-_kJ4w_n_BwAA___GjZM5">