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

    <tr>
        <th>Summary</th>
        <td>
            [libclang] clangd-14 regression: segfault parsing cuda requires on defaulted argument with deduced type
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          kiwixz
      </td>
    </tr>
</table>

<pre>
    It crashes when trying to include <ranges> from libstc++10 (in my case pulled by <memory>).  It used to work with clangd-13.
It doesnt crash with regular `.cpp` files, only `.cu`.

I reduced the best I could the culprit:
```cpp
#include <type_traits>

template <typename _Callable>
struct _RangeAdaptor {
    _RangeAdaptor(const _Callable& = {}) requires std::is_default_constructible_v<_Callable> {
    }
};

template <typename _Callable>
struct _RangeAdaptorClosure :  _RangeAdaptor<_Callable> {
    using _RangeAdaptor<_Callable>::_RangeAdaptor;
};

template <typename _Callable>
_RangeAdaptorClosure(_Callable) -> _RangeAdaptorClosure<_Callable>;

_RangeAdaptorClosure crash = []{};
```


I used a `.clangd` file to force C++20 mode:
```yaml
CompileFlags:
  Add: ["--std=c++20"]
```

Logs:
```
I[23:33:15.054] Ubuntu clangd version 14.0.0-++20220316013304+add3ab7f4c8a-1~exp1~20220316133356.105
I[23:33:15.054] Features: linux
I[23:33:15.054] PID: 2854488
I[23:33:15.054] Working directory: /tmp
I[23:33:15.054] argv[0]: clangd-14
I[23:33:15.054] argv[1]: -log=verbose
I[23:33:15.054] argv[2]: --check=/tmp/t.cu
V[23:33:15.054] User config file is /home/u/.config/clangd/config.yaml
I[23:33:15.054] Entering check mode (no LSP server)
I[23:33:15.054] Testing on source file /tmp/t.cu
V[23:33:15.054] config note at /tmp/.clangd:1:0: Parsing config fragment
V[23:33:15.055] config note at /tmp/.clangd:1:0: Parsed 1 fragments from file
V[23:33:15.055] Config fragment: compiling /tmp/.clangd:1 -> 0x0000000001621B30 (trusted=false)
I[23:33:15.055] Loading compilation database...
I[23:33:15.055] Failed to find compilation database for /tmp/t.cu
I[23:33:15.055] Generic fallback command is: /usr/bin/clang --std=c++20 -resource-dir=/usr/lib/llvm-14/lib/clang/14.0.0 -- /tmp/t.cu
I[23:33:15.055] Parsing command...
V[23:33:15.056] Ignored diagnostic. CUDA version is newer than the latest supported version 11.5
I[23:33:15.056] internal (cc1) args are: -cc1 -triple x86_64-pc-linux-gnu -target-sdk-version=11.5 -aux-triple nvptx64-nvidia-cuda -fsyntax-only -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name t.cu -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=/tmp -resource-dir /usr/lib/llvm-14/lib/clang/14.0.0 -internal-isystem /usr/lib/llvm-14/lib/clang/14.0.0/include/cuda_wrappers -include __clang_cuda_runtime_wrapper.h -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward -internal-isystem /usr/lib/llvm-14/lib/clang/14.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/lib/llvm-14/lib/clang/14.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/local/cuda/include --std=c++20 -fdeprecated-macro -fdebug-compilation-dir=/tmp -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fcxx-exceptions -fexceptions -cuid=b16119e00140480d -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x cuda /tmp/t.cu
I[23:33:15.057] Building preamble...
I[23:33:15.327] Indexing headers...
V[23:33:15.394] indexed preamble AST for /tmp/t.cu version null:
  symbol slab: 8827 symbols, 3474738 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 154 relations, 4376 bytes
V[23:33:15.433] Build dynamic index for header symbols with estimated memory usage of 7289916 bytes
V[23:33:15.435] Built preamble of size 5328456 for file /tmp/t.cu version null
I[23:33:15.436] Building AST...
 #0 0x00007fdfc8c178e1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3c8e1)
 #1 0x00007fdfc8c155fc llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3a5fc)
 #2 0x00007fdfc8c17e1b (/lib/x86_64-linux-gnu/libLLVM-14.so.1+0xe3ce1b)
 #3 0x00007fdfd1e733c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
 #4 0x00007fdfcf2d5800 clang::FunctionDecl::hasOneParamOrDefaultArgs() const (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xc5c800)
 #5 0x00007fdfcf2fe596 clang::CXXConstructorDecl::isCopyOrMoveConstructor(unsigned int&) const (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xc85596)
 #6 0x00007fdfcf7a25bf clang::Sema::checkTypeSupport(clang::QualType, clang::SourceLocation, clang::ValueDecl*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x11295bf)
 #7 0x00007fdfcfa29c43 clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x13b0c43)
 #8 0x00007fdfcfa35edb clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::NamedDecl*, clang::TemplateArgumentListInfo const*, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x13bcedb)
 #9 0x00007fdfcfe40772 (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x17c7772)
#10 0x00007fdfcfe3653c (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x17bd53c)
#11 0x00007fdfcfe28d9a clang::Sema::SubstExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x17afd9a)
#12 0x00007fdfcf8d0c2f (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1257c2f)
#13 0x00007fdfcf8cba66 clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::ArrayRef<clang::TemplateArgument>, clang::SourceRange, clang::ConstraintSatisfaction&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1252a66)
#14 0x00007fdfcf8cc60b clang::Sema::CheckFunctionConstraints(clang::FunctionDecl const*, clang::ConstraintSatisfaction&, clang::SourceLocation) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x125360b)
#15 0x00007fdfcfcc7f58 clang::Sema::AddOverloadCandidate(clang::FunctionDecl*, clang::DeclAccessPair, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, bool, clang::CallExpr::ADLCallKind, llvm::MutableArrayRef<clang::ImplicitConversionSequence>, clang::OverloadCandidateParamOrder) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x164ef58)
#16 0x00007fdfcfbe6831 clang::Sema::LookupSpecialMember(clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember, bool, bool, bool, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x156d831)
#17 0x00007fdfcf8ddb7d clang::Sema::inferCUDATargetForImplicitSpecialMember(clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember, clang::CXXMethodDecl*, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1264b7d)
#18 0x00007fdfcf9a1977 clang::Sema::DeclareImplicitDefaultConstructor(clang::CXXRecordDecl*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1328977)
#19 0x00007fdfcf9a0d21 clang::Sema::AddImplicitlyDeclaredMembersToClass(clang::CXXRecordDecl*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1327d21)
#20 0x00007fdfcf920611 clang::Sema::ActOnFields(clang::Scope*, clang::SourceLocation, clang::Decl*, llvm::ArrayRef<clang::Decl*>, clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributesView const&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x12a7611)
#21 0x00007fdfcfe2b265 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x17b2265)
#22 0x00007fdfcfe2d04e clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x17b404e)
#23 0x00007fdfcfed52ae (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x185c2ae)
#24 0x00007fdfcf79c9dc clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x11239dc)
#25 0x00007fdfcfec8650 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x184f650)
#26 0x00007fdfcfec7df2 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x184edf2)
#27 0x00007fdfcfec8d7e clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, unsigned int) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x184fd7e)
#28 0x00007fdfcf90de75 clang::Sema::AddInitializerToDecl(clang::Decl*, clang::Expr*, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x1294e75)
#29 0x00007fdfcf0980b0 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xa1f0b0)
#30 0x00007fdfcf09525f clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xa1c25f)
#31 0x00007fdfcf13c7db clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xac37db)
#32 0x00007fdfcf13c290 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xac3290)
#33 0x00007fdfcf13b70a clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xac270a)
#34 0x00007fdfcf139d4d clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xac0d4d)
#35 0x00007fdfcf07cd0d clang::ParseAST(clang::Sema&, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0xa03d0d)
#36 0x00007fdfd0b92117 clang::FrontendAction::Execute() (/lib/x86_64-linux-gnu/libclang-cpp.so.14+0x2519117)
#37 0x0000000000708de2 (/usr/lib/llvm-14/bin/clangd+0x708de2)
#38 0x000000000052ec66 (/usr/lib/llvm-14/bin/clangd+0x52ec66)
#39 0x0000000000523a7e (/usr/lib/llvm-14/bin/clangd+0x523a7e)
#40 0x00007fdfc78bf0b3 __libc_start_main /build/glibc-sMfBJT/glibc-2.31/csu/../csu/libc-start.c:342:3
#41 0x0000000000472a5e (/usr/lib/llvm-14/bin/clangd+0x472a5e)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztW1t3ozgS_jXpFw4-3MEPeXCc9kx205veTqZn3nyEJGymMTACEnt-_VZJYCOMnVv3zjxMTreNJdXtU1WpJCAu2O7ypjaoINWaV8bTmudGLXZpvjLqwkhzmjWMGxfuXJB8xasL96ORiGJjZGlc1fTCuYJ_tmVcOFGaG5udQUnFjbLJMs6MeIeEG74pxA4IL5zpxDBAWFNBJ3B_KsQ34ymt1wbNgDszbXdyYV1fWDMYxApe5a1iapDgqyYjwrgIrAktS_gykjQDnZy5UeTZTnU0-Km4tLyAkDUURa65EfOqNm4MWjSZaqBNVoq0vnDb4UCu_qEI1eK4PRzqXcmXtSBpjWD0BdV8U2ak3o_KyYYbyznJMhJnfD-4qkVDa2P5BQGdMVLWBdgUXqleA_60LkCWFjkofeDkBCDiWtKE14AqGPhHkwqYvqpmaIg7S6sl4wlpsnopqVFkCrTLR1Cur5MuGfkpi-DCvfpO1s2zomoEUs6Gxp1TpqnQC8-NV7YORly904Ix1WESevBPDROVHR04VFDTYBQV5eFyQv2rC_-6ndY9ZeePfUadZ8tIIsrxZQh1QYHhlRSCcmOuYtSxjE3B-LGb78gmU03zYlMC6SIjq2o_zjBmDH1KKuc4pild7Jp2XKENdT6t6m3R4zYYcQNMHRd6Xfyw_Ynle8DN-CVu8rpps4LxyEWVFrlhexNrYpmdZMexXDuwbNe1PGggjLkkDhOPRsS0L8KPfFviVzcQxrl-MLEt_7zsBSc1TAvqDEkub7bnh3--ucaRTuR7XhSdH_sr5Dt0aQaxSmuZFAFXZ1FvyvOERKweoctCpIGky5bei6jslsrMihXMHKAZFxV_EanTkZp0zek3oG61hU_MtJLH11OTWHEBeTZP0pVyybRCY9fFBkJo0cD_ieqFq9Z54UK2TA5OeUrDj3nNBYIpNZO-jYtQXhi3958NEA12QqSeZ_IAiwHyAOeqigajRSr6CiNb-_IC0gqpD5RdOMJY-G8hiJ-JkAmtg0SQ1Ybn9Un-_hv4Qzaw95wrtVKjSeeFzAcaoYvJXIDqjolU-c_aWt2fHTj2lSvLAMj_Vc0xRyQkq_i5OZDCbwvCFCwokdQY6YzUJIZCYjKZnCdekDRTtUSS5myUB6bBsRk9xfInnoNjUQO0z2ICrgVMNwSYp1Ubrk0FnrWI07xzXOMoKxomZBDpUSYEu4obRQZ1E35mjxuM3-63ZAPfKsUBv9dofHAsqegetJHpDnD8zSovoCSCNETgCiKAToz5L9ezfaKFQM35E0RvvSa5LJJw2YQSpGrKshAwu4ecbE9O51MpLcVAzUmGvkGpjasnZJcKPrhMLdBmmLVISwi8bRQsA88sqSkzr7nKG-iD4bw2K_bNbKUCnijXMAmMaUnzx7LeAm3-mIJdJm0YMcyk2uU12ZqyOoSZqHBZNhPBOcjNOBEmqWoz5uAi3MTJ5jDP-3FykkBkmqSABTZTIpj5SLKGm1g8VIa5IWluYoTJBgMnCxoFzwoq3dDExJQZJTiUCR9mxh_hp6N-pBV8gSobiLwNN8tCYgXWgeuB8htSr00uBOQ0M0lKE3IB1J0U4vMakDeTvDBF0eQYPSaOBUb7Wq8A07IU3B90TJr8CaIDgIyxWnavnT2otGwQdDPwoKnJuWxYtRFgbhABnBxYEk0wPlPwpVvOUC-UUZlPROTofSbjcbNacYGMoAHkrFgM0mkBGJIV8D5E5yEqwMn1YDFeGSqdfwGaO0g8m9fRw0Vb22MXOM3ySZCyBD9DzqroXy4lzVJ2C6hM0g3vhk3W5zRQOQLisRO-opAiFq2b730ctbG6gYOPnnYqucjB_zehI1R_iR59ocgbYhUcj_0D_t8U_NfF3llOkEmzlw39DkaPjD0WzLd4QY8VOD1156lfL-If7P-m2LeI4VrRpzguEBPGS9gGQmHFYPWmopBNsISeWScTtepm6SatDXsKDWAe7ZVF3sSZ2Ko0SDdlltK0xgqkyWQdQLdbMI7yElljQ_8HbVLUMIadsj3lUNJ7lhdZEOQJ7KyBP6zw18vlT_P58ufZ14_L619nXxbOcr64Wc7uP2FFZphbQ5ZdFy8qXUMsDq-aNJPVP0BBNlBdnK74XUdS3OSMb5FizQkDu09Xu-7UU_UnEEDF2kkwZvcPx3uCfUGbN1nWO_yodpu4yIwKSh-sVqPICds2eezoeqEXupER76A-7mgET_YEVn-0hV3yynaOaNSEV3tK2_cOrUjjuWHQJzoy2IOLDlOD7aAghSJOmi_tVYB1-qgjVdz_btAFDXVKazQVVGpGkRihE02n9nMC_U5gfcAXiKv0T274rhN5fiBlH2-rdcDHp9xzA81JYOb20w3cYL-ptqBhwhIaUTuMuG1g3lPnghCb6uKzgIC9r2HZeoD6GQ_zDoMEeVrCHgiVv3ACxBnG4iYFRu1z2Uhmgo7b26-fIMNOqmIC25ora8tdChrsd7yooj1Q0fcTOqbilya_T1eQUn6GHVwG0Ejxb9SCgBBNC2cIFLfjNxoIlBprt8ea2Tx0XWpBxQwVPexB-FLUL5BT1mvAn6EcS8qxPeCiifH6FiQO8yPLUudgCr9Fk1OMlGtOM9WyJtVdzmFvTDZ34lqdhc9g49kCq87Un9dNyoBtUSlR8KR61KcgXtPP1_VLuD8N-vrNf_ttftibHbRMq3lR7u7EJ9gk9QaAXk0OOTeHyJT-GLxb58gHlTSdA03nkDh-nPR1vucboq7kGdvDruT36gAAt_KHcf9tSIadGDx9crmlu203woPOr7iJljA4s5f5-ZhRtu1MQWnNqlCzijhT6rnjVl2r8w_-S8XvEqVL36z_wJ6c7VWc96J2JgTZfeHJhTs_bS_e79JMvot_n99g4ZBADkK-aj5b7nFRZP3vc4Tvw8yNLYBEwyzSMXN9Djv3UcxkLkYdIK7QTATp47YUOnTg7fe0AHcpOe2sDAZWDZjc5ElxauhwJl7W9dDe7oGgb_BY8zat6r6UHuzvwJICVBqWUw1L7llh6LyVfUhDoN6zx_XE0tm7ge_SN7OPGVBr7G2dvROxKRn3hPsmrurjqVctw7n4BMk3vcWzr7FZ6c37m2ciJAmoqtmirXpJxCzqJG9l7_ghUGvsXZ09jUkQjEM1x_SpsjvBSgScvoJYVmlxNOVoPvpc4kHIDwQq7zxHM5yG43Sl0pm8YTnoOWXJe6bP8R2AT8PXG-BLA-tEUpL4dhXAQbtKB7dfImj4vsy0s2vbO-x2wSzNbr2UoDRM_Gjc7hljd1BGZwVhcygbUwYTetrmY2uxdUYpr6rPBPaZL3S1g5P116ihHve8S-TDle3MSod3zqUIpcL1LTb8G7Ywum6fGnmUPa7iTbvvhalstxj3_I-G55S_QOu2XGTy3uFb5zTwOEyZNqd6qRXzIIKdweic3hbFt6bEhTMl2Se-ifnx2vqF00KcWPV6UQGLsM7m-bl453LoBwwM0ywPB0mYxSEb1zfNEy7wPtSDvDexKEQ3lT8KDZ3PJ16viz6f7wSKE3hgswaKXm9NiT0NwxM1qqySeIdEu4_Rdwpn4Xh7aeNEoJWm9nSgtsWcE14MmalTOdu1NjAFfPVQzDNSVT9Q8RD06ivu6EXT1LEC-5TitL7LFynP2EBBWc-OONi5Tc4rNg_d0BPL8AkBZzvV8wCzuhZp3NS8-pryp-9RaTkkBPg0fIdVY-wE_ji-NyCe5HUKuXbEC87a80yoP9P94gp0dA_Rpo70T6lYtyK9MzGEsQM4aUA6AyCZ5fGXATmu6WvgPc3l_P7qB2HjgekaNnq9zRlUjPyt7COfArXGXi83wymdMjoOvWjyX9N6fd8kCSQ43h4t3pfqaPEs3oc0kLSV2VLIVPBYpEwZM1VPyr79RMQFxTXL9IKS0yjwrXHLvqjnSPFBwIzXHA91MI2_wotOnQUd1uEe785XRgfigO6ERrxvRYi8BEzWMAkGmIQscV6Myd8Bj_dk8MjjYK6GRzj0ERaeSDx_AR76Ueh73ACs0sweFGIW4-GJhQsrmjytZaLj4qE4Pi8cz5K985D31pFTD7TT1NcLMmsaWbF1VAKI3nXv0G2W1Fx0vwsxy3ulwrFhatDxAnkkgXXLwrkDvT4V1PnykAHRfVeYEzsB8_v46DeIAB_f8ZNn8flJFE2pI9A-YYe9uNqdPswsBJTmNd_WzxRqQy_5QYBQsFcDRC_UbBfyXvwsIHficIyQ3LS3vo8B6teauD62R0djc38WS3UiIasKfPDuHfZTN2Ta2Yp-Iwztd6YvDhgNhhRzwbC-eg8KQ4_4niiAkRoK7gCFOLTIWRQ-btWk99D4rpa_3TYHVNds8wa2TZnHztr2UJRyW3Cc0O9K8kfDP9fieKsmc4TcxH3UTrnebogFemqG6FWbFVJmHRsyu38YLL64YI2du71ZM8sFwZpm_dqJWfHUsW3t9GIhMAfCeqIOT9tlkNNGnk6-XRXHt6cgStOlq1vUX2hFjHd3W8Yfhuo9ts0kV0WjMY00pr7DaRC8jqmi0ZhOB0xdEvLXMkWaPlNPW-DCKIYV0DWWSwRwCftDUS_xAWV88iLGG3fwvcI-s_qUXP3rYf_TmeCp3YJW8q2Myf5SjUU-EwqT6HoOfh7E25pNXugQ_5U2KZqDTd37QR_Ypcum7pR8qNM645cX_lXnFfK1CMkBeOJLgQISpXI0o-IreUBmlN0z8fhA0v71OHwtQJ2g4WtT7f5fPQnDuncEoe780Ijscl3XpXw4w1kgTjCmiSe02LT2dGaVovidU1ioF2lVNVg6LXzPd8MP60vC3CSMQ-JRcDE_jJOYksj1qWsFLAoT90NGYp5Vl-rNqpw_GZKFeqPqQ3qp3lxyPMdxA286ieyQx77tOJHtgQjvwrMg2NNsgnpMCrH6IC6lSnGzqqAzS6u6OnTC7h6LaAkl8idNvS7E5bf0Kd3--UFKvpSa_w9WB6hh">