<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128802>128802</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MLIR] Assertion `Index < Length && "Invalid index!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RiRi114
</td>
</tr>
</table>
<pre>
Test on commit: release19.1.4
steps to reproduce:
`
mlir-opt test.mlir -test-mesh-resharding-spmdization
`
test case:
```mlir
module {
mesh.mesh @mesh_1d(shape = 4)
func.func @reshard_example(
%arg0: tensor<4xf32>
) -> tensor<4xf32> {
%0 = mesh.shard %arg0 to <@mesh_1d, [[]]> : tensor<4xf32>
%1 = mesh.shard %0 to <@mesh_1d, [[]]> annotate_for_users : tensor<4xf32>
return %1 : tensor<4xf32>
}
func.func @another_example(
%arg0: tensor<4xf32>
) -> tensor<4xf32> {
%0 = mesh.shard %arg0 to <@mesh_1d, [[]]> : tensor<4xf32>
%1 = mesh.shard %0 to <@mesh_1d, [[], [0]]> annotate_for_users : tensor<4xf32>
return %1 : tensor<4xf32>
}
}
```
crash trace:
```
mlir-opt: /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/ArrayRef.h:257: const T &llvm::ArrayRef<long>::operator[](size_t) const [T = long]: Assertion `Index < Length && "Invalid index!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/fuzzing/llvm-project-llvmorg-19.1.4/build/bin/mlir-opt test.mlir -test-mesh-resharding-spmdization
#0 0x00000000013906e7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Unix/Signals.inc:723:13
#1 0x000000000138c27a llvm::sys::RunSignalHandlers() /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Signals.cpp:0:5
#2 0x0000000001391c24 SignalHandler(int) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/lib/Support/Unix/Signals.inc:413:1
#3 0x000073198aacc520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x000073198ab209fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x000073198aacc476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x000073198aab27f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x000073198aab271b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x000073198aac3e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x00000000048d80c9 llvm::SmallVectorTemplateCommon<long, void>::operator[](unsigned long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/SmallVector.h:305:5
#10 0x00000000048d80c9 void shardShape<llvm::ArrayRef<long>, llvm::ArrayRef<long>, llvm::ArrayRef<mlir::detail::DenseArrayAttrImpl<short> >, llvm::SmallVector<long, 6u> >(llvm::ArrayRef<long> const&, llvm::ArrayRef<long> const&, llvm::ArrayRef<mlir::detail::DenseArrayAttrImpl<short> > const&, llvm::SmallVector<long, 6u>&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Mesh/IR/MeshOps.cpp:157:5
#11 0x00000000048d80c9 mlir::mesh::shardShapedType(mlir::ShapedType, mlir::mesh::MeshOp, mlir::mesh::MeshShardingAttr) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Mesh/IR/MeshOps.cpp:167:3
#12 0x00000000049c01b5 mlir::mesh::reshardOn1DMesh(mlir::ImplicitLocOpBuilder&, mlir::mesh::MeshOp, mlir::mesh::MeshShardingAttr, mlir::mesh::MeshShardingAttr, mlir::detail::TypedValue<mlir::ShapedType>, mlir::detail::TypedValue<mlir::ShapedType>) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Mesh/Transforms/Spmdization.cpp:0:7
#13 0x00000000049c4c82 mlir::mesh::reshard(mlir::OpBuilder&, mlir::mesh::MeshOp, mlir::mesh::ShardOp, mlir::mesh::ShardOp, mlir::detail::TypedValue<mlir::ShapedType>) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Dialect/Mesh/Transforms/Spmdization.cpp:500:1
#14 0x000000000795203e (anonymous namespace)::TestMeshReshardingRewritePattern::matchAndRewrite(mlir::mesh::ShardOp, mlir::PatternRewriter&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/test/lib/Dialect/Mesh/TestReshardingSpmdization.cpp:75:11
#15 0x000000000d79e74a mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_2::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Rewrite/PatternApplicator.cpp:212:13
#16 0x000000000d79e74a void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_2>(long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#17 0x000000000d797912 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Rewrite/PatternApplicator.cpp:233:9
#18 0x0000000008919a48 (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:0:17
#19 0x0000000008914773 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &&::$_8::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:874:11
#20 0x0000000008914773 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &&::$_8>(long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#21 0x0000000008914773 llvm::function_ref<void ()>::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#22 0x0000000008914773 void mlir::MLIRContext::executeAction<(anonymous namespace)::GreedyPatternRewriteIteration, long&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, long&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/MLIRContext.h:275:7
#23 0x0000000008914773 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) && /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:872:10
#24 0x0000000008914773 mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:919:47
#25 0x000000000160773d mlir::applyPatternsAndFoldGreedily(mlir::Operation*, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h:0:9
#26 0x0000000007950c03 (anonymous namespace)::TestMeshReshardingPass::runOnOperation() /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/test/lib/Dialect/Mesh/TestReshardingSpmdization.cpp:0:16
#27 0x0000000008792bb3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:17
#28 0x0000000008792bb3 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_7>(long) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#29 0x0000000008792bb3 llvm::function_ref<void ()>::operator()() const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#30 0x0000000008792bb3 void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/include/mlir/IR/MLIRContext.h:275:7
#31 0x0000000008792bb3 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:521:21
#32 0x0000000008793940 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:16
#33 0x0000000008798b92 mlir::PassManager::run(mlir::Operation*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Pass/Pass.cpp:0:0
#34 0x000000000878224b performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:17
#35 0x0000000008781a78 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:473:12
#36 0x0000000008781a78 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_3::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:548:12
#37 0x0000000008781a78 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_3>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12
#38 0x00000000089a9a3a llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&) const /home/fuzzing/llvm-project-llvmorg-19.1.4/llvm/include/llvm/ADT/STLFunctionalExtras.h:0:12
#39 0x00000000089a932d mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Support/ToolUtilities.cpp:0:12
#40 0x000000000877832a mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:10
#41 0x0000000008778b58 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:0:14
#42 0x00000000087796f3 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:605:10
#43 0x0000000001305e9d main /home/fuzzing/llvm-project-llvmorg-19.1.4/mlir/tools/mlir-opt/mlir-opt.cpp:0:33
#44 0x000073198aab3d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#45 0x000073198aab3e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#46 0x00000000013057f5 _start (/home/fuzzing/llvm-project-llvmorg-19.1.4/build/bin/mlir-opt+0x13057f5)
Aborted (core dumped)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW1tv2zoS_jXMCxFDInV9yIPq1LsBEiRI0rOPBi3RNrcyqSWpnqS_fkGKji62k_jStOf0FIXtSNRw5pvhzDeURJRiC07pBQg_gfDyjNR6KeTFPbtnvh-czUTxfPFIlYaCw1ysVkwDnEFJS0oU9dORPwqAlylNKwW1gJJWUhR1TgHOgJeByANetiqZPBeVhhBCTZUemQPw3Pw8X1G1PJdULYksGF-cq2pVsO9EM8FfrjcDYU5UR6j9b8QY8aKoSwpB_Al4GTQCR-YDgsAz31O_AChRS1JRCPAlDABKjRQvg3Be83xkPsxgp8WUPpFVVVKAEjsGQoBCIheeMVxTroQEeBw8zTEC-LMdAlAKzwH-vHl6rVUjxbMKWA3tVGvJBjmAx12Fx9A6xPjE_DeSdk5vZftbZL9PMOFcaKLpdC7ktFZUqlfnklTXkq-n3AlJfOlA7mFMuNBLKn8jjJs_vMPg3gvr5nO9OBr0c0nUEmpJ8uHi6axLIxmgyVKsKECTef39O-MLgCZl-W11XknxX5rrc_OHkItzt-abswBNGM_LuqDtgezy0XxKSZ7v6Xy0BDhDYWzmyAVXGj5CgCI7FmcAZ-uBAI9LwRfGJntcVFQSLeQaxkSx73SqTRg0ckD46dH6w15msM1gphSVJndAEHlXvKBPxjXwmvKFXpp5AYogQOiKfyMlKyAzQwDyAUIAxXBOWEmLEfCyu-vP2cNnqOrZimlI4KxemNwmpDbuXmpdKaMmmgA0WTC9rGejXKxaELrQGZCUqqkCaAIJN7NayKBeUtg4aEbyr9ZJZu4HTfKvsKhXVeMybwTtvzspFpKsIJGLekW5Vof5bVazsjDfjAM0ecnN-yVmCBD2oPfkrf_5OPUiGsPWsepZNT_uJOPaGvVo4xAl7SBJ_pwKpSUlK-udMWTc-vjgeCzZDKDJQ10ZZwE0-cLZkznAFpyUasR4DnAWIwxw5mNnid-3JMlRTLZZcl_zRs6_CS9KKpXJX6dUdq1lXhnfm2wYOhXRAGw_RwHsKQNQ8iHYBb7FzumFnV4x9tOEkDwPkQctLE7aUxJNo-C8ZLx-Ol_wujmRj5QYRQB98p4CFCKvqclGYNATOENeOs9hpZeSkmL6lZXlftLTKJ3nrfRwqG4QR3ChrIH7qh3EUSs46gueoXiOIZmZhLGXWJTEc9yKjTfE-rO9BfqzVmAyAADTNNpPIE5p2jE87QZmkBSJl6edtfOwImX5B821kI90VZVE07FYrQRf53s0ht8EK3bn_Zpbhlo0ef6Y8N5Rqjoq2mqFvdAtPJMavG32GY2hTY0PhlcaW14raGgMDzpvCa49WFBNWNn8vqRcUTsq01peraoS4LFamiVrKcxAXse8DuZR_TI4eU23pti63HzcwAOt2SH4FbPs2EPixGq4XgiXjJRN9b6hagnQ5Ore_b6t1hnat8RmHSr-tlBprTYV1RWUl8gpHp8rUxHbUd3D461XNyq8dvbBFW2D6EchERkksEOiV62CNPf8WbhVW0cwbrl_2cjuIGFigeVMX4v8tvpkWIspctGpYDlkXDdwjYuKP0hZ015sd_zXrMRjrj696x4l4Wou5Mqw0YeW03UoR-yciAdODPIEvebEnvOO95j1wp6n_wIIh57n6JPBOOhiHKch8jA15ZhwwZ9XolaQkxVVleXNqTOMKm3mun8h5_f0T8k0vSNaU8kdUkTny4wX7lzPOW-g6OS4K6VLp67rOhQt01S8AhpVurVnE7XYlGR_jVrYRa2IUxoHZFP_rDL5w3KJNxG5tazD9DYoexuMbh2a1zw3F06lLXIzISyR3BDQKWPpRo0eCLH04lgh7YlrsWA5Ke-pqkv9Prku1AAKpmjAy2zL4xqfI2OiCYYXf0w2HOe8j3y0bteM-6Nt7reYvYmos88OyUlZmsZ7Oue9DPFP-Jw4fCzH_FHk_fF64hQn5ecnLYmyJD6wCQO5iIkHEROnPvonYZzU4x-QBTAGOEudS5OuS5PUT0mQvFU5_yUpLZ77DrqU7Bt1xlVS5FSp_wj5tWTGvAN3d3qG9fjAF81K871bkw4R89dMLB3YGsQxfsvWe7pggu-2VTFDr-fPACUmBG0Yp26LtF29yY9O_oehk8RBhw8gbxs-xxaEj8L3p2dH5G-Dby_kThofh5kUJV2T0M6IaFPZzfXV_VhwTZ90c4A-0bzWNLPC346AbVF6pV_KwthtWEXDTZbX8Xx79-Tq_gtnej3WzXFMnmqRdgea_r6Fp7mJYzm4S0kIf3BK-ll5xhJPzxkdbDO6dQypqnItTWW8mIiysFOw8rlXRBsgNjrjiRTfKe83cw9U9zbA2tGN8m70WPA5sztgPeR-AmSpb7wdrOOk16r5kRfHuDgEst1865dBbWMZ9QB8Bbilq_eO2qBosCng5d6ba2tzU-COKHfbStb8lncAPI7VHNfIW14TOUN7tDyJUzSb4R27ObfVo7itjE1ZQaoXii5rPqCnSm1EyO7YyTgpnxVTN4STBZVtJIzhy22H5qZaW7LjH02JGhvs1xYyiJJtoJ2u-_1lQf_5PCndhvxfmif17-H3gmkPntSPhM_2LBPcnR80xyZUfiwl2pztg8lR_3mCXzuvnT5Zhci3W3YOCzTAAqeBtzcWd6yiJePDLRgz9MXE6OTgDEPpiist7aM3ZgVvbPt0BzQzNyec7ndEUq6v-FysqckpSNqOYuEqLMYD9JNZigZKr2HYGnd9FH-Qto5e4z69jhOEghmsqDQUqkkm6o2Hh5QuXCuxJJIW00rL3sbWg6hlTm8WcnhfeXu2G_r4pmTyttI3hPGGOna3wY6m20JYhv3yVB6adObbwgRwOMDLJ3EC3R7Wp3o-t88EvQuumrP_1XQDrhu6EvJ5LaozvqBzUpd6WtCSarr7mvZ5hPeB2B3nqKXplZSWzxv7qI_2kaA7IcorrqmcWzZ8kr7nPY4IYtyto9E2V2y1-Vd0yXao3xn3LUnDO0jOB9q0G9pT7Ve-JzjCoEey4m3BsWu3_ZDt-V8D4Ddbi99mFbStyoea8lrw_5SOCQ9u0pCUYPJ3iPC_W4o7zNde19Xp0NUYdZtIVZVMZ7y4G9CTnwLcXzHuXh3RezBSS_tI0Hzn4aMZUvuEuCmHXzQrmWa014C4sAgGGwxxghH5TYjRxzUEroEK_CHYs3A3C3Utbr4kTTOb7RtGbwH1gQAEDoDBZkOcRnN8EgB-BUsj-1z6i7Nx_40QL6RpAVeE8SO29jfVWP_soI3dc1hBMHg5ARfpnu9-oLRI3bsfRmA4FEgDD06n5pqp0kTqqbNvrylo0JkiGqIWz0PYCHdyT_I6lZ3aiW8mz2ZCamq3NXMhqX2_ixZOsfVLeWfFBS5SnJIzeuHHgRfiJAmCs-UFjQJConkaBH4c-YkXzb0iSsM4T0mY-rPZGbtAHgo9hCIPe14QjJI58Ys4LRKUR2EU5iDw6IqwcmQsGAm5OLMvpV34KEk8dFaSGS2VfQsYoSYcEAgvz-SFNX9WLxQIvJIprVoJmunSvjl8c311D8LLE71_d1bL8uLwd-ycRd8u0P8DAAD__wmKzDg">