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

    <tr>
        <th>Summary</th>
        <td>
            [clang][OpenMP] Assertion `Loc.isValid() && "point of instantiation must be valid!"' failed.
        </td>
    </tr>

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

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          k-arrows
      </td>
    </tr>
</table>

<pre>
    Reproducer:
https://godbolt.org/z/T3c3dTqnn
```cpp
#include <map>

void foo() {
  int keys[42], data[42];
  std::map<int, int> _map;

#pragma omp target
  {
    for (int i = 0; i < 42; ++i)
 _map[keys[i]] = data[i];
  }
}
```

Backtrace:
```console
clang++: /root/llvm-project/llvm/tools/clang/include/clang/AST/DeclTemplate.h:1977: void clang::ClassTemplateSpecializationDecl::setPointOfInstantiation(clang::SourceLocation): Assertion `Loc.isValid() && "point of instantiation must be valid!"' failed.
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/compiler-explorer/clang-assertions-trunk/bin/clang++ -g -o /app/output.s -mllvm --x86-asm-syntax=intel -fno-verbose-asm -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -fopenmp <source>
1.      <source>:12:1: current parser token '}'
2.      <source>:3:12: parsing function body 'foo'
3.      <source>:3:12: in compound statement ('{}')
 #0 0x0000000004039748 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4039748)
 #1 0x0000000004036b74 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4036b74)
 #2 0x0000000003f7b288 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x0000706f7d242520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x0000706f7d2969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x0000706f7d242476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x0000706f7d2287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x0000706f7d22871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x0000706f7d239e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x000000000726f064 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x726f064)
#10 0x00000000072727c8 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x72727c8)
#11 0x00000000072f265e void llvm::function_ref<void ()>::callback_fn<clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*)::'lambda'()>(long) SemaType.cpp:0:0
#12 0x0000000007fd96c1 clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x7fd96c1)
#13 0x00000000072fde33 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x72fde33)
#14 0x0000000006dd8781 addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::CXXRecordDecl*) SemaLookup.cpp:0:0
#15 0x0000000006dda3fe addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::QualType) SemaLookup.cpp:0:0
#16 0x0000000006dd84cc addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::TemplateArgument const&) SemaLookup.cpp:0:0
#17 0x0000000006dd870d addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::CXXRecordDecl*) SemaLookup.cpp:0:0
#18 0x0000000006dda3fe addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::QualType) SemaLookup.cpp:0:0
#19 0x0000000006dd84cc addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::TemplateArgument const&) SemaLookup.cpp:0:0
#20 0x0000000006dd870d addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::CXXRecordDecl*) SemaLookup.cpp:0:0
#21 0x0000000006dda3fe addAssociatedClassesAndNamespaces((anonymous namespace)::AssociatedLookup&, clang::QualType) SemaLookup.cpp:0:0
#22 0x0000000006ddace8 clang::Sema::FindAssociatedClassesAndNamespaces(clang::SourceLocation, llvm::ArrayRef<clang::Expr*>, llvm::SmallSetVector<clang::DeclContext*, 16u>&, llvm::SmallSetVector<clang::CXXRecordDecl*, 16u>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6ddace8)
#23 0x0000000006e863e7 argumentDependentLookup(clang::Sema&, clang::DeclarationNameInfo const&, clang::SourceLocation, clang::QualType, llvm::SmallVectorImpl<clang::UnresolvedSet<8u>>&) SemaOpenMP.cpp:0:0
#24 0x0000000006ea01a9 buildUserDefinedMapperRef(clang::Sema&, clang::Scope*, clang::CXXScopeSpec&, clang::DeclarationNameInfo const&, clang::QualType, clang::Expr*) SemaOpenMP.cpp:0:0
#25 0x0000000006ef8436 checkMappableExpressionList(clang::Sema&, (anonymous namespace)::DSAStackTy*, llvm::omp::Clause, (anonymous namespace)::MappableVarListInfo&, clang::SourceLocation, clang::CXXScopeSpec&, clang::DeclarationNameInfo, llvm::ArrayRef<clang::Expr*>, clang::OpenMPMapClauseKind, llvm::ArrayRef<clang::OpenMPMapModifierKind>, bool, bool) SemaOpenMP.cpp:0:0
#26 0x0000000006efa2a4 clang::SemaOpenMP::ActOnOpenMPMapClause(clang::Expr*, llvm::ArrayRef<clang::OpenMPMapModifierKind>, llvm::ArrayRef<clang::SourceLocation>, clang::CXXScopeSpec&, clang::DeclarationNameInfo&, clang::OpenMPMapClauseKind, bool, clang::SourceLocation, clang::SourceLocation, llvm::ArrayRef<clang::Expr*>, clang::OMPVarListLocTy const&, bool, llvm::ArrayRef<clang::Expr*>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6efa2a4)
#27 0x0000000006f0a344 clang::SemaOpenMP::ActOnOpenMPExecutableDirective(llvm::omp::Directive, clang::DeclarationNameInfo const&, llvm::omp::Directive, llvm::ArrayRef<clang::OMPClause*>, clang::Stmt*, clang::SourceLocation, clang::SourceLocation) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6f0a344)
#28 0x00000000067bff8c clang::Parser::ParseOpenMPExecutableDirective(clang::Parser::ParsedStmtContext, llvm::omp::Directive, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67bff8c)
#29 0x00000000067cfb74 clang::Parser::ParseOpenMPDeclarativeOrExecutableDirective(clang::Parser::ParsedStmtContext, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67cfb74)
#30 0x00000000067ee614 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67ee614)
#31 0x00000000067f0289 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 24u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67f0289)
#32 0x00000000067f83db clang::Parser::ParseCompoundStatementBody(bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67f83db)
#33 0x00000000067f8bea clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x67f8bea)
#34 0x00000000066ef0fb clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66ef0fb)
#35 0x000000000672555d clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x672555d)
#36 0x00000000066e1ece clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66e1ece)
#37 0x00000000066e266f clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66e266f)
#38 0x00000000066ea4aa clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66ea4aa)
#39 0x00000000066eb445 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66eb445)
#40 0x00000000066dcfca clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66dcfca)
#41 0x00000000049c71a8 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x49c71a8)
#42 0x0000000004cbbd85 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4cbbd85)
#43 0x0000000004c37f2e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4c37f2e)
#44 0x0000000004daddb1 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4daddb1)
#45 0x0000000000db34ff cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xdb34ff)
#46 0x0000000000daa1aa ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#47 0x0000000004a2f189 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#48 0x0000000003f7b724 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3f7b724)
#49 0x0000000004a2f79f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#50 0x00000000049f145d clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x49f145d)
#51 0x00000000049f24ee clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x49f24ee)
#52 0x00000000049fa125 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x49fa125)
#53 0x0000000000daf9b5 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xdaf9b5)
#54 0x0000000000c637e4 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xc637e4)
#55 0x0000706f7d229d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#56 0x0000706f7d229e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#57 0x0000000000da9c55 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xda9c55)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkW9ty4zaQ_Rr6BSUXCd4f_EBLVnay9o535GTz5gJBUMaaAhgAdOx8_RYAUrzoYitjTU1qU4kjiUDj9OkDdIMEkZR0zQi5csJrJ1xcoEY9cXH1PENC8L_kRc6Lt6tvpBa8aDARjp85bvakVC31R7h04HLNi5xX6pKLtQOXfztw-eBjv3j4kzHHzZzItf_iutZfoU8ZrpqCAMefb1Dt-Df6Zzd74bQAJecOTByYAie-dtwMAMoUeCZv0gmvA-iECwfOQYEU2n73bTupCo3Iz4zNOWVKt9T_82_Ao_nx2g7kQL8WaL1BgG9qoJBYE2VMdEMCUHIBHJjosSlw_AVwHf_afJyDAOrPDrx24DV1YKq7GPvhdYuTaljhwnRsodIBUideaBT2b8eOhXaN8LMSCBPLc88dZ5JXxHEzXCG2toM7fgYcuBScKwcuq-plM6sF_1-Cu68OXCrOK-nAZdtt2XI_-CVbPThwuSC4eiCbukKKXD45fualcawHMFGxbQ278wpJ2bVc1QRTVNG_kaKcaRu2kSTqnlOmvpZfmFSIKWoaODAZWFrxRmByy3F7LdXDZVISob8DJ3JvOb6k8ndU0aITBYwcGAEHwlrbB7wEdDgC2DRSgZyAF9vJcyB0YAxKRCtSXDpudn97k61ugGzyDVUAgbxZA0FqLhRQHEyETdVTk19ivukJndBMpWyIJhggVoBO2eqJACyQfAL5NqBwDmqh5xEmUpICSOO-_ln3RFJyTJEiBRANAxILWiuNd6UQfgZFs6mtJNxLx03vBV8LtAFIrJsNYUq2UuC1xoT5pqYVETPyWldcENFFe4Y6duVMiYY9O3CZU9aLQasKzNZgxrU1VNfaZqPqRl1KMNto38Fs9ppEMyQ3M_nGFHp1_AVlilRgVjI-eyEi55Lo62C2ArPZGuOZFiF-QpQ5_uIoSt1YMlTLJ67ArMS84mJWULRmXCqKpR3DMDv5mdeEbWo9P1tezariabJGv_mZB_UfTRhuhCBMgRoJSQRQ_Jkw4MBYz0wYO24G93T3OxOmG2VrUDYMG-3ppVL3N2uY7u8f7U8Z0BzwhhVAKqSIjiQwQo_1SmRR2PXFgb4L3Fe3-ydw_TQOEmBEaafcm7Qf7gVlyqjmweou6RsJ9Ncjl0oQtDEzya6PZl4lnyQfB167ry28Hrw3AR_lcbAP_LwiiDX1V7aia4YqByYNM_mpABXXQ5wDqgbTQ4VDqH4Z5zBJwFxL7hvB_IWIN4vtPxArKj1i0nI4ajPnTJFXdamTnp-55j9r32_tx25UxgUMYAjd1qmK5g5cvibRYxTMKsqa19maNfYCvpT8MrKQdZcecDA2mEZpiUGtngRBxeMzrarTrJv-vfVwCjeII7CWhoJTYQdx1BuOxoZhEpc-QLleiE8yazr2ZuMds15-skEv7w0mY4N-StLoNIOmS28wHQoshlHpRsEww67IBtlPffIkJu0ez5_zUZr-4w8tRVGYpAyz0y7fNZWit-SFbGuCrM00t1QqoKsR1S4gg177q4L_pKzQDXPOqzPM35ZAS69eadwxvTGMcfIxevfjP4X0d2qjHZ4_wtgZmTPc9Mx5Y-ZKGIXE1n_9St0lu0dBSsefm6u2NrPpzfEzjKpKlz2PJXP8-V7mv5E_GyrInG_qiijy8FaTL5u6OoHq_25QpbtNfu6HGNruCN3bUDdY2FpCs5jZQtTUgHGFNnmBTBruXIRJl4i0Cd15ssZrJkc5JC6LNMLeaHSdnm9en1AjtW9dKrE5umH_Q9XTqilLiilpc_mqtrn8KD8fDdMZtGR97LXkT7RUEN_fz_9ProXPn3WGi56pYMhUVBRJnHgAFUW23RGYZYXIjBX_hTZEaiVIgypBjLO3DW8kYN2VrXz7_recPzf17nq9mwSsqG37PbIOJ1CRX5IfA7UP8TsQoymbAcY_BuI0Uw6y5DuY4x0FuMVPqoDk51dA-u9TAHT_NQqA3k-vAAinEDE5UAEuKXsf-AdTbiYEevtm0u2gx81rbRKJzrrD1qsNqqoVUb8TrLgY99GhaPePbcnoRY2xEH3cyL4Kf2Dm0_Nay_M2r8FRBRCRJPJJvL1htSA1YYXeT7TBTqbx2Qm_9gMJQ7wOzxdW8kMbkQ9XCxMqLY-m-hhx-RsTRPLqhRQrohx_nhgat0xqvF9rwu7u94hxnN4Jcj2UgryhVfGbJGJBSspIcYfqmggtng8QscJco9-zpTNX9F7iu9g7UE51Sn7P4XGRQMok8COAnwh-1l6ivCLaEpGScqZ3kwddfmfBWKxsGf3w1nLRB5Pbm6VmQ9ZI8gFjHbTfkdCYND0nyupk-k9fPQYXLPt3qLYedkXte_a23e54QUtKhOlorU93m0eDHE2CjCDauYdhO7dwsPrKJqDHgd_K6_u8eK_vJIY7xP6DME4bHYhNx-9HBfW9uWaI6O6-FfYtxw9vo4nfwTrF-OcnD6ugPnmMS-LSRX7wUX3dvBLcKD2ZF1QQrOjL-B74dnEYXD5pqXzP1LvyvbvvJsCeWK3URu0u7icp5fPDYwPQh2e8DYjzskzwENG9eaIy-HwsNMf6FZqObS30PvdHKTvTfbTW_56d8Q4kxmUeBx9gZ6u7F_JVfD9VZ_PW-LP1dvxcKooJibzj3q66Z11fxWCqZaUiIlNK0LxRpu7eW5xNVvN-ssBgUCKfwtMRyUxnoe0_BLl3tGmLM8TAsNzHYLwpi0sXJuk_iMHPQvoZCDOU9ITBCWGJX-RHHZi3T2q3xF3z4s2BydlmmYHUA_angHOCjgJetneAp4Anie6AyEdasfuN8wjZONK7Od4tRaR0y-Nx6dw0Gym6-7zm3j6k70TOxUfE2t3IObZLGva6RYr0M99uas4iY0tIT9d4rxXDMAyLo65pHn4RfLrjHrB0vPDlYv8k_uDKeJDl9zdbx2S65OIbYmvyhdFzMW-57ZmPJkL1CCbvMv9VDOT6hSki7BmH708xOy2ORjPDmEhpHjrq7dN5lKoZ6fmKJ3zBKCrf5atNSyPaDs7yT2dtqrgfwprmpWctmbCGAnR81b95taIaJ_UfwNQ5uNDe9lykEy7yIAiPcvHAa3OEwaa5ZLRDR3825F7tue9qFkezZdtT1vQ3ju940VTky6bmQpkMe6b8aN3ckhCMi-2owCXeFYQ50XngptqZzxS0kHrA44NfKY49NLoXP-cF-YWwDNvbMfZOg976kPan7tzn5x76skB6mKN6MMB5XiQjcS2FTnus2IPzTAgthh6hP0boxyUkYyLtmPZQiz1AvMvlYZfOot8WZ-_FqL4LClQUuTe-yWzw9s68bAuA5JizZ1mCWnw9-lG55Ra5H5QlwNh73CA63jwN7_w8IdEVkdv7PaPf4NycsjmPExZl70M09gEhDyHQ0T73Hsy6sH8b2D0Y2XFocltM22jLxNEj0ELQFyJ27yYHo-IgQLD0kvQzDx7ZgVvpzL0532wQK6azeG_0tm8V8FqPjjQBA3KUoGzdpgsb2m2Hx0f8-up59kuOJMWP0jRvKRw11j88KoGokt3liTlUVXoq2M14e103yfrV3MjHEm66vHeA6Vee7wlGMj3_GsPhUd19p1ztlW8NW6GSVG8jLn_0SaQWcS_4dCquOB1Vnv_vxKEZv6yRUJfuQRWE49PmaekF453liDUTNbSTGTsqR0v3pKNucGiLfaRpNipnBo59bpVg3N5KKZwUMyUMCDmVlF95Lg8z8ivPd07YHluLtwqoERX9W08fJbF_in1-KjVZPZVwQiXyYHgI9mLweVQg7KkMDoXgB1J5hmrV0NOT509yeJnmLXldJdKBN0tJtvNc9VCG_uzawyDrcY-qPxdHfkwCoBF_9sDWdD_w5CUGmBbpie9cmC69wenLCykJXPD4qPs8SoWEehy49eEhSDAYIp4EOcVhCKzxz4-TNm6HHl7zM0CE0Fkls_ICZbtpALjVv32xDvxF1RMgr1TLqSDA8wONsZEEzF6A4kASAuigmNcjdUU8EEQ1ghE9_XTP4XuPF8WVX6R-ii7IlReHYRzFnh9ePF35OIwil_hx5CEc4DwMS1yUYZmgHMLIJxf0CrowdBPouakb-uFl6oZ5GkdlHJZxVEDfCVyyQbS61NPikov1hXmX78oLg9gNLiqUk0qat2IhbEmBTri4EFfmFcC8WUsncCsqlexNKKoq8yqt7REunPC6fU4dLs78cuNFI6qrf_4CY-v3yxX8vwAAAP__iyeiXA">