<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/138428>138428</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Crash due to lambdas in decltype (?)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dankmeme01
</td>
</tr>
</table>
<pre>
Managed to reduce the code to the following:
```cpp
template <typename F>
auto test(F&& f) {}
int main() {
auto _x = []() -> decltype(test([] {})) {};
}
```
```
$ clang++ /tmp/test.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: /opt/llvm/bin/clang-19 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name test.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 -debugger-tuning=gdb -fdebug-compilation-dir=/home/dankpc/programming/geode3/sdk -fcoverage-compilation-dir=/home/dankpc/programming/geode3/sdk -resource-dir /opt/llvm/lib/clang/19 -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15 -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/x86_64-redhat-linux -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/backward -internal-isystem /opt/llvm/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/15/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/test-db0ac7.o -x c++ /tmp/test.cpp
1. /tmp/test.cpp:5:42: current parser token ')'
2. /tmp/test.cpp:4:12: parsing function body 'main'
3. /tmp/test.cpp:4:12: in compound statement ('{}')
4. /tmp/test.cpp:5:15: lambda expression parsing
5. /tmp/test.cpp:2:6: instantiating function definition 'test<(lambda at /tmp/test.cpp:5:37)>'
6. /tmp/test.cpp:2:6: LLVM IR generation of declaration 'test'
7. /tmp/test.cpp:2:6: Mangling declaration 'test'
#0 0x000000000322b3b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/llvm/bin/clang-19+0x322b3b8)
#1 0x0000000003228707 SignalHandler(int) Signals.cpp:0:0
#2 0x00007fc6a6d39c30 __restore_rt (/lib64/libc.so.6+0x19c30)
#3 0x0000000006a4ef44 (anonymous namespace)::CXXNameMangler::mangleFunctionEncoding(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#4 0x0000000006a44521 (anonymous namespace)::CXXNameMangler::mangleLocalName(clang::GlobalDecl, llvm::SmallVector<llvm::StringRef, 4u> const*) ItaniumMangle.cpp:0:0
#5 0x0000000006a4751d (anonymous namespace)::CXXNameMangler::mangleType(clang::QualType) ItaniumMangle.cpp:0:0
#6 0x0000000006a56a20 (anonymous namespace)::CXXNameMangler::mangleTemplateArg(clang::TemplateArgument, bool) ItaniumMangle.cpp:0:0
#7 0x0000000006a53e2d (anonymous namespace)::CXXNameMangler::mangleTemplateArgs(clang::TemplateName, clang::TemplateArgumentList const&) ItaniumMangle.cpp:0:0
#8 0x0000000006a4ed17 (anonymous namespace)::CXXNameMangler::mangleFunctionEncoding(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#9 0x0000000006a51442 (anonymous namespace)::ItaniumMangleContextImpl::mangleCXXName(clang::GlobalDecl, llvm::raw_ostream&) ItaniumMangle.cpp:0:0
#10 0x0000000003617c97 getMangledNameImpl(clang::CodeGen::CodeGenModule&, clang::GlobalDecl, clang::NamedDecl const*, bool) CodeGenModule.cpp:0:0
#11 0x000000000361da24 clang::CodeGen::CodeGenModule::getMangledName(clang::GlobalDecl) (/opt/llvm/bin/clang-19+0x361da24)
#12 0x0000000003639472 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/opt/llvm/bin/clang-19+0x3639472)
#13 0x00000000036429bb clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
#14 0x0000000003b2ddf0 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
#15 0x0000000003b1ef70 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/llvm/bin/clang-19+0x3b1ef70)
#16 0x0000000006276c90 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/opt/llvm/bin/clang-19+0x6276c90)
#17 0x000000000574f032 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/llvm/bin/clang-19+0x574f032)
#18 0x0000000006104227 clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/opt/llvm/bin/clang-19+0x6104227)
#19 0x0000000005b1332a clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*, bool) (/opt/llvm/bin/clang-19+0x5b1332a)
#20 0x0000000005f91058 FinishOverloadedCallExpr(clang::Sema&, clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, clang::OverloadCandidateSet*, clang::OverloadCandidate**, clang::OverloadingResult, bool) SemaOverload.cpp:0:0
#21 0x0000000005f92523 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/llvm/bin/clang-19+0x5f92523)
#22 0x0000000005bb6021 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/opt/llvm/bin/clang-19+0x5bb6021)
#23 0x0000000005bb855b clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/opt/llvm/bin/clang-19+0x5bb855b)
#24 0x000000000565785c clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/opt/llvm/bin/clang-19+0x565785c)
#25 0x00000000056502e1 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/llvm/bin/clang-19+0x56502e1)
#26 0x0000000005652b99 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/llvm/bin/clang-19+0x5652b99)
#27 0x0000000005652d5a clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/llvm/bin/clang-19+0x5652d5a)
#28 0x000000000565752e clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/llvm/bin/clang-19+0x565752e)
#29 0x0000000005630c10 clang::Parser::ParseDecltypeSpecifier(clang::DeclSpec&) (/opt/llvm/bin/clang-19+0x5630c10)
#30 0x000000000566dd67 clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&, clang::OpaquePtr<clang::QualType>, bool, bool, bool*, bool, clang::IdentifierInfo const**, bool, bool) (/opt/llvm/bin/clang-19+0x566dd67)
#31 0x00000000055c870c clang::Parser::TryAnnotateCXXScopeToken(bool) (/opt/llvm/bin/clang-19+0x55c870c)
#32 0x000000000561029b clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/opt/llvm/bin/clang-19+0x561029b)
#33 0x00000000056120df clang::Parser::ParseSpecifierQualifierList(clang::DeclSpec&, clang::ImplicitTypenameContext, clang::AccessSpecifier, clang::Parser::DeclSpecContext) (/opt/llvm/bin/clang-19+0x56120df)
#34 0x00000000056125c4 clang::Parser::ParseTypeName(clang::SourceRange*, clang::DeclaratorContext, clang::AccessSpecifier, clang::Decl**, clang::ParsedAttributes*) (/opt/llvm/bin/clang-19+0x56125c4)
#35 0x0000000005673f63 clang::Parser::ParseLambdaExpressionAfterIntroducer(clang::LambdaIntroducer&) (/opt/llvm/bin/clang-19+0x5673f63)
#36 0x0000000005674c0b clang::Parser::ParseLambdaExpression() (/opt/llvm/bin/clang-19+0x5674c0b)
#37 0x000000000565256d clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/llvm/bin/clang-19+0x565256d)
#38 0x0000000005652b99 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/llvm/bin/clang-19+0x5652b99)
#39 0x0000000005652d5a clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/llvm/bin/clang-19+0x5652d5a)
#40 0x000000000560600d clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/opt/llvm/bin/clang-19+0x560600d)
#41 0x000000000561e886 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/llvm/bin/clang-19+0x561e886)
#42 0x00000000056202cf clang::Parser::ParseSimpleDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, bool, clang::Parser::ForRangeInit*, clang::SourceLocation*) (/opt/llvm/bin/clang-19+0x56202cf)
#43 0x0000000005620773 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/opt/llvm/bin/clang-19+0x5620773)
#44 0x00000000056d433b clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/opt/llvm/bin/clang-19+0x56d433b)
#45 0x00000000056d4d05 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/llvm/bin/clang-19+0x56d4d05)
#46 0x00000000056d603a clang::Parser::ParseCompoundStatementBody(bool) (/opt/llvm/bin/clang-19+0x56d603a)
#47 0x00000000056d6bf7 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/llvm/bin/clang-19+0x56d6bf7)
#48 0x00000000055cfeb2 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/llvm/bin/clang-19+0x55cfeb2)
#49 0x000000000561ed7f clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/llvm/bin/clang-19+0x561ed7f)
#50 0x00000000055c92b7 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/llvm/bin/clang-19+0x55c92b7)
#51 0x00000000055ca100 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/llvm/bin/clang-19+0x55ca100)
#52 0x00000000055d347d clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/llvm/bin/clang-19+0x55d347d)
#53 0x00000000055d4555 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/llvm/bin/clang-19+0x55d4555)
#54 0x00000000055c328c clang::ParseAST(clang::Sema&, bool, bool) (/opt/llvm/bin/clang-19+0x55c328c)
#55 0x0000000003e009c9 clang::FrontendAction::Execute() (/opt/llvm/bin/clang-19+0x3e009c9)
#56 0x0000000003d7fb32 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/llvm/bin/clang-19+0x3d7fb32)
#57 0x0000000003ed1401 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/llvm/bin/clang-19+0x3ed1401)
#58 0x000000000058e0ad cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/llvm/bin/clang-19+0x58e0ad)
#59 0x0000000000587004 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#60 0x00000000005899cb clang_main(int, char**, llvm::ToolContext const&) (/opt/llvm/bin/clang-19+0x5899cb)
#61 0x000000000044b45f main (/opt/llvm/bin/clang-19+0x44b45f)
#62 0x00007fc6a6d235f5 __libc_start_call_main (/lib64/libc.so.6+0x35f5)
#63 0x00007fc6a6d236a8 __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x36a8)
#64 0x0000000000586a45 _start (/opt/llvm/bin/clang-19+0x586a45)
clang++: error: unable to execute command: Segmentation fault (core dumped)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 19.1.7 (https://github.com/llvm/llvm-project.git cd708029e0b2869e80abe31ddb175f7c35361f90)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/llvm/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/test-43376c.cpp
clang++: note: diagnostic msg: /tmp/test-43376c.sh
clang++: note: diagnostic msg:
********************
```
Compile script:
```
# Crash reproducer for clang version 19.1.7 (https://github.com/llvm/llvm-project.git cd708029e0b2869e80abe31ddb175f7c35361f90)
# Driver args: "--driver-mode=g++" "/tmp/test.cpp"
# Original command: "/opt/llvm/bin/clang-19" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-dumpdir" "a-" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "test.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" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/home/dankpc/programming/geode3/sdk" "-fcoverage-compilation-dir=/home/dankpc/programming/geode3/sdk" "-resource-dir" "/opt/llvm/lib/clang/19" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/x86_64-redhat-linux" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/backward" "-internal-isystem" "/opt/llvm/lib/clang/19/include" "-internal-isystem" "/usr/local/include" "-internal-isystem" "/usr/lib/gcc/x86_64-redhat-linux/15/../../../../x86_64-redhat-linux/include" "-internal-externc-isystem" "/include" "-internal-externc-isystem" "/usr/include" "-fdeprecated-macro" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-o" "/tmp/test-db0ac7.o" "-x" "c++" "/tmp/test.cpp"
"/opt/llvm/bin/clang-19" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-emit-obj" "-dumpdir" "a-" "-disable-free" "-clear-ast-before-backend" "-disable-llvm-verifier" "-discard-value-names" "-main-file-name" "test.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" "-debugger-tuning=gdb" "-fdebug-compilation-dir=/home/dankpc/programming/geode3/sdk" "-fcoverage-compilation-dir=/home/dankpc/programming/geode3/sdk" "-fdeprecated-macro" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-fskip-odr-check-in-gmf" "-fcxx-exceptions" "-fexceptions" "-fcolor-diagnostics" "-faddrsig" "-D__GCC_HAVE_DWARF2_CFI_ASM=1" "-x" "c++" "test-43376c.cpp"
```
Preprocessed source:
```
# 1 "<built-in>"
# 1 "/tmp/test.cpp"
template <typename F>
auto test(F&& f) {}
int main() {
auto _x = []() -> decltype(test([] {})) {};
}
```
Tested this with the latest Clang on godbolt.org (20.1.0) and the crash persists in that version too: https://godbolt.org/z/v7v1oPdxT
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsfFt3mzq39q-hNxp4gDjZF7lw7bgr40vf9GuyDnceQhKOVkFiC5Gm-9fvIQmMwRjbPazTuzrSxAZp6pmPpDmnBJqoqtiOU3rjRG-daP0G1epZyBuC-KeCFtTz36SCfLl5jzjaUQKUAJKSGlOgninAglB9SX_ORJ6Lz4zvnGDpeOYn9uwPLkvHWypalDlSFDjBSn0pKUcFBRsnuHW8Jaq1FFopB843DowdGIPMgQvgJG-dZG3lMa5AgRh34Ly95S0BAMDU3r4CJ1gDq0ZTxHWCW0AoznV7Dpw3LdgyrWy4OGgo0DKbFlv4A230ZxgCnCO-c-BbB74FDtyootS_aaVmVt0P97fLx1tQ1WnBFEAgrXdA0lJIpRl7VqqsNFNw48DNjqnnOp1hUThwk-cv7R-3lOJ3ipUDN6yqalo5cAMQJ4BxnNek6QSJqmeQIvxJSYSpA1eglLSUAtOqogRUopb2sq6JqkpghhQlQNYcVFiyUs0cb_moEP4ESF2UtgO9meMtPkixk6gASO7qgnKlIWttRak6pKnuko3hw_UXwMXYB66SrMwpeJ3H2zh0a_6Ji8_czRmvX90dr4FLC6Zckf4OXN0mYRIgF7iEVSjNqZtJSoGLc4qkiyrlpjQTkrpaS8pJV86w9EIlyxiV5jJGkrgvKK-pq0dYBVw9ZtyM5fYCaPsIuIWkucBIMcHdQhCag5Jh4JYMuzl9oTmA9gur3JJR4BaZRAV1S8G4otIJ1ijPgZsVSD27VEougJtlpYsF1z2hnGAtOHAzLlwpak4Y37m6LHALLHilZI2VkC7KGao0zqzmnxknrtKaVU6whsBVSO6ocnFZayrdOASuqjk1F3aUU6kBE5rWux2V-paZgOsdSYGbmesuFkXJcqslYRq2AzfPoqAO3OhpXmIHbkrb0YWuDjc7KggNHLipyCfgZli8UIl29NtFSWpHo659NI5ylrbjyIEbPZIMzxzlLqu-VIoWukpdyX3ZHdYNNmNMUvKMlB1iun7kwM1sdvyrmTu6KTt9TeE_tLFxOX80BD2ZPiNJxtud7JpO7CRogVF-YdGv12-8-HGb9FV_wIdtX1TIAtwXzQgtJcXagroFwlJPeiqlkG7OtKXX4zbb8Rprs1QxwZ1gHc7gzAduVn1ipSuIdPEzxZ9cxt1dkekJ9vrq0ldMSz2ztCXofcEiF9IlDO24qBTD-hoiRFZsB9z1dvtutdr-tPzldrv-dflxA7erzd12-fjeCdY-cEXfObkk9RBOZgK4rwBPuC9fm__jG8EycoJlCLUfwLWUlCtQIllRCZT4RDlwYGI8auJ4S3hKRugES9_I0HUZ34Gs5ljrC3S0oYVYR6-lBOelMA60adJGFlQKKap9FTBBQNJ6eQPLW4ZTevn6F8hRkRIE6GspaaV7sEXpeMvoVHWNI7ZYKoW4Ykj19CI0Y5yZjw5MTCASrBw4bxpDaqQXLKjAIA9uLRvxWQD397-8B3cfrXswthqIzERBqPnaAjACk7MC3yO-y7UyJ2UABwYe8F699l8AYRqkc2DMR7B0gmX1pbIfPkjGlQk2nmy4Mu8KSfR5KyolKSpMELgCjCsTnemunIo6HPjWe21atR2tMfkDTPPES8Aj23GU_4Q4yal04Lxpwl6uGuU9899KgY2UJMMxikmwwIEHtltJKyUk3cpmpGkbFof2L55VYhYbUL4u3kEKDiHFKKRZGOr6iAv-pRB1BUzUUhpqFpaW1W-__QcV1PSDjjv0tcJ82TTD65ZjQYzDnVsjbcq8y0WK8jXFuVbwTiHO6sJKGVEzHCALI-h_PbJ7bfv1vdOQVgfD47FAef4L1QGRE6wOrivJ-O4jzXTxsNbxvImdHLi8RKdooFMS-eTrdXqyq4gDdf5_jXJ79TyWuI8lihH0vgFLs5paykGnH9wwIbsmLhXioiGQDCAGFH4LXR2SahyjHR8rMAH_nlWq7fL4Eh3mwwlG_OSvMcEWA3b9MITnkPVkrgRX9FXdFWV-iLFBf9lEG5rYadjahvYNe-wneJGAHVW2AtFNG0S95leC0HeU9768F6TOaWPYT0I9uKFFE339YM53g7kndQS3P8BN0H7Vfg6iudRXcarjL_ROFoJ1BRog7AMMFmECrwF4WzBlgXwPcKb5DlzQBxfCRZpeC-5JlPd6HW2hHEK0V5YNvlmJpJp5l3Rqz0kFKSQkO29ErUwdDAnZTR4bAUxjfCdFXRrvswAW09ua5YTKEWhRH5pPs8Q7ZOyt3btYCV7VRWtlrgVxYW_a1rve7PsemMR40cP2SAvUGJx9-Lq3fet96NrH9miW8vfNDspg7naVm55uJ-7w76U6Nag7nXrOKkrCzAvguE6y5r8y9fxYZxnDjDbh56MdJNMadYazjeS3kmZOsHoRjFjkNja_VI0GaKdG31_5XghhMq7G2my8fqSqlvw4FBkhfFKzK9m3wDrYPWcWpX4QQHQCtl240p8r-pAdj_C9kW9Ad4wvpURfPhq2T2uiue9p-pD-vrrTy_kMYXrCeXR_pyoO_M2F_Wup2BMFe-4zyha-F83BhnFWPT-8UJkLRChZoTy_fS3lYDhqDo_c5SMWuu-HPWyrD6_-zCWtRP5Cyb0Qn-pyvNTUuH9fm_3I8c5oxR31wqRtGAfRsrFCnDCCFH2k6oJSpsipUmbtUNV5LwrWtLYFju049AcdBiMYjI9s4wvOduI_qbu-znQ3JHZzAvaNRxp70J-g-DsQ-7ejzJLSURYMKJtHUTpO2RKrB_43puwKijQJHUW92DCKo2Qe4cMWPph9yoPPH0SlMvZ6u9_oMxHCa5-zpfGqjRUZ1ROugJI1vS4MsPA68NEAvAepPwl-hSrVIe9jPiysy5nv_49xcjwgh97lsKoOMnT1R2Xs7LDqNX1lFerUjQfqwnSx-LHq_hE6ai06HZOhjiRCkzouzbP4gvKLNB0gvwYmiQ4ClPlw2kSQTsL8seB08x24fpgZBx72vUlw6-Zp_2NJsXkofLye0reavY9LUZl296j6e91RHBMSJ5OoHszDHJSvfvvN2OAT6A5vH0_NhxL9T00_KNk3Q_s9SGtvx1dZyxNT4Y5QrgySO56Jg1D5W3yXJaSjqx9RRXieeCcN85P8suRc6GHTsvEkPlE91K5EYdvpUPSDjtj34CI9O5Saxx37_qomhtNJG2M-k3ZnUxN9XH6JMa2qg3FxUlrbZrMbOFHyHilq214qJe9ZNRJP3xVlzjBTT80bOXupl_e2YbLjORjwDD2STTKzV1qPZPPBQr2M6JMKfC96ryBCq9oREQ6JiHA4SYRW4Xiv0UZNHxHfjYRu7RgV8mv03q9yh2K7UcPSWtHqSkdoVO2IGMQ2SZDFwSQR9-ahaOdnlpnSBkpJQWo8NJq28OHdq0y7QdNhHQQmSYi9aSsxxNq-nXZp87qBrvmjmCGKyT8qDNQKdeoOY49_YBgYLP4WYWA4iGm82POmR96BezTzszNFS94zHUM7bgtd6zIPHgKerLUR0tjJO87UlZ1m9O3Y8Ae2m87n8Vk2zEb9cU8xvjvtvs4Z8GNL_K2RxnAVPmr7v51QQ1lH6CD6gh7EZ6ICVpT54SA7NZDGeRtqOcraeV6PS5wxJEeMneP-ckYNZx2jwZDRJJn2qn89Lr8fM0nS-fBwEHiRMAimffhj-87YgxxatZ4hO_W-yqEeqmj7PYC1WZOdn7C60mXUnw_ULqL-cmoNeR210ZBa4kVfQe1fhctreCBe1PEwCBNJ7AXTTn3VvJ-45-OtIF-uX9TaljocyRBHmk3vRLSPCYc4xlYF00w3m8nXjSaNr0M_H2wMZDSFF6E_9Uj6wN3-uCjjxLL6io0JrWfHwmIYa5Bk2jX-G2scxRok6Txj5A2G1QKm05NCE_MgDwbXXfM--EjY_Y1-7mwnHa3YrxhXWtGOhuG2G_K983unjYHusXFyqn13Mobj41vI0Op2ZPTjz4gEYTK9vLl9tUPgZNT0owi4XEWjRKdiMFAxjKJp33z6taMTW829t5HG3HH3FNK-LXVXlEK2S9NrPIVF3-kWDsZyAOfHW8jLx6eTL1B85Va2banD0X_Ji3reAvc2LDZSW1ZO7FNDe-32leJaE3DFxlAjumu4F3AEJMnSYPCyYFGynEr7_hamvaYbNP33hfpIr-mdpvkOXNJnhfih5_ef7RoYHcaXvUeYT-lwzXRomu1A9YILL5pTDxGAsb9tzpCOv2j0jGT3FKR5gt27BlfgRTBy3VQ1jXfQFgNoieeFoCVp5T-ZMToeIdv3F0dwxv0n9FpG4-V7r08TyV7GXl-MvQGmxQI3i6aWMGZfJtdNd5vG51u8lCLd4J6iuOe8vDBMwygzp38vlGdrdPIGhzhgEGUR2G5zluJtpZBUW4zyfHvQwvhxDl2vkxoMpcZo3pdquAu9d_d3b1dbOIOzaFp8jOad-HDQJzEKI2AFX0yrrmMl2plmjwAGS2AOrekPNUdpbs5xUzsEARZFgTjRNx_pTq8S7KGfDNW5aRkLSc1ZYUqmZZvrIGtsTSsYZIjllABSm2Yrc_RGy60rCtwXc41SwA7sxL4R0ByrA_5i5s_Mq_3XHaae7ZgCmCTe3IML6qVwHi_o3EMpDXxCUj-JsgQHURD7Wfu66ZM5hav1OXWeWRd6lhQRYA4Sm6NtomKvjmffqM1zStZMnjo-fUQgF0qbcNCd-gNFtTPVvWU7-77qxxxmbw6nL5-elqufwNNPt2DzcH__8Ovdf96Bzd397SN4ejCX3_78Dny8_fDw8ckxp8I_jJ0sn1d6np88Xb4vICkw560pAUhZeZer3TvFGAZBEuPmqOK3yaier2X_2zugn1mgcXstW8FxtoEArMwhf0O-ecgFMiHBnzYfNKK1cSQAyV2TFAC6rnUu5iy9E6xbQiHUd4-PGELYiHqQbMe0BTiwO7bGpHkzYl2M_fajzTnQfDs5U5vCbf6B9nuThaD5itz99YOMBPs2T-QlGNbpZSc4uDnMUdDe6mcqaK4e8GULDbMWNDdKhtsi-wwGzQV4eMNmM9hLG8lp0N47yGywvzTMb7C_McxysG9gJNfBvtJRxoN9V-7zHnTd6Wp_2dxuciA035tMCHuGx_Ih7Nv8LlkR9tK-V26EVuBhhoRu5pw5jG-rDk_Xd9V_WA6BP63hcTl_Hpw2l8J5DBfmVbhYmX6OhT-Ag8l8C0ftDxIqdDiurtDLw3Awm_vZGPY3DnIyNNe6mTKan2F_czRLQzfhe7kauuaOLx3lbdjfabI3tN-nczi0pcSYI93nc2hLtbMAX-J8__Wy_3rZ_0ov-19kNsYNwnAVZWPx_rpkbK03ujjxjR0JVmnNcuUyeygP9m6O25-_eUq4J1rptax6ZhX4zNSzScem9akUWJm1meBgJ0gqcjUTcqfXZtCb-faos14vd_nbSj2qKlUBxoF6Rmq_rFNC6PXQYE3XCXXg5n8duHlJXnzxgbw-vSE3AVkEC_SG3vhJGAd-AKPozfMNjSOY0LmXJTT1U5TOIYLBfKGv4TBJFm_YDfRg5EVeAAPPi6IZSb0YQ4yibO6Fvp86oUcLxPKZtri67TcmK92NH8xDOH-To5TmlUkkCGET00AnWr-RN8ZEp_WuckIv12p2IhRTuck-aGtE62at2-wN2fw4hpa218zWV7Bx4OJNLfObr0-l1-B-uYH_FwAA__-fTHTL">