<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122208>122208</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Mlir] --affine-data-copy-generate="generate-dma=false" crashes in Operation.h:674
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir:affine,
crash
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Emilyaxe
</td>
</tr>
</table>
<pre>
git version: e4372c4454c9
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt a.mlir --affine-data-copy-generate="generate-dma=false"`
a.mlir:
```
func.func private @entry(%arg0: index) -> () {
%37 = llvm.mlir.constant(0.000000e+00 : f32) : f32
%alloc_14 = memref.alloc() {alignment = 64 : i64} : memref<f32>
affine.store %37, %alloc_14[] : memref<f32>
return
}
```
stack trace:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /data/szy/MLIR/llvm-debug/llvm-project/build/bin/mlir-opt a.mlir --affine-data-copy-generate=generate-dma=false
#0 0x000055db2d4f9799 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
#1 0x000055db2d4f9c4b PrintStackTraceSignalHandler(void*) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
#2 0x000055db2d4f7e7f llvm::sys::RunSignalHandlers() /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Signals.cpp:105:5
#3 0x000055db2d4fa31e SignalHandler(int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
#4 0x00007f094635e420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#5 0x000055db2d4830d4 mlir::Operation::getRegions() /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Operation.h:674:9
#6 0x000055db33185af5 mlir::ForwardIterator::makeIterable(mlir::Operation&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/IR/Visitors.cpp:18:16
#7 0x000055db2d6fa706 void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Visitors.h:176:23
#8 0x000055db2d6f38a2 std::enable_if<llvm::is_one_of<mlir::Operation*, mlir::Operation*, mlir::Region*, mlir::Block*>::value, void>::type mlir::detail::walk<(mlir::WalkOrder)1, mlir::ForwardIterator, (anonymous namespace)::AffineDataCopyGeneration::runOnOperation()::$_0, mlir::Operation*, void>(mlir::Operation*, (anonymous namespace)::AffineDataCopyGeneration::runOnOperation()::$_0&&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Visitors.h:312:3
#9 0x000055db2d6f339d std::enable_if<llvm::function_traits<std::decay<(anonymous namespace)::AffineDataCopyGeneration::runOnOperation()::$_0>::type>::num_args == 1, void>::type mlir::Operation::walk<(mlir::WalkOrder)1, mlir::ForwardIterator, (anonymous namespace)::AffineDataCopyGeneration::runOnOperation()::$_0, void>((anonymous namespace)::AffineDataCopyGeneration::runOnOperation()::$_0&&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Operation.h:794:5
#10 0x000055db2d6f29f3 (anonymous namespace)::AffineDataCopyGeneration::runOnOperation() /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp:223:24
#11 0x000055db32df13f4 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#12 0x000055db32df1395 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#13 0x000055db2d51d859 llvm::function_ref<void ()>::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#14 0x000055db32df413b void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#15 0x000055db32decf97 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:532:17
#16 0x000055db32ded4b7 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:592:16
#17 0x000055db32df26e8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:813:36
#18 0x000055db32df2540 auto void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&)::operator()<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&>(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Threading.h:120:56
#19 0x000055db32df2310 llvm::LogicalResult mlir::failableParallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&)::'lambda'(__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>&&)>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Threading.h:46:18
#20 0x000055db32df2205 void mlir::parallelForEach<__gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>>, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Threading.h:119:9
#21 0x000055db32dee67b void mlir::parallelForEach<std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0>(mlir::MLIRContext*, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo>>&, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Threading.h:133:1
#22 0x000055db32dedff8 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:824:7
#23 0x000055db32dedb30 mlir::detail::OpToOpPassAdaptor::runOnOperation(bool) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:713:5
#24 0x000055db32df13e2 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:524:11
#25 0x000055db32df1395 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#26 0x000055db2d51d859 llvm::function_ref<void ()>::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#27 0x000055db32df413b void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#28 0x000055db32decf97 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:532:17
#29 0x000055db32ded4b7 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:592:16
#30 0x000055db32deee08 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:905:10
#31 0x000055db32deed43 mlir::PassManager::run(mlir::Operation*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:885:60
#32 0x000055db32de0f95 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:474:17
#33 0x000055db32de0b86 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:542:12
#34 0x000055db32de094c mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:625:12
#35 0x000055db32de08e6 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&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#36 0x000055db32f5d4f2 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 /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#37 0x000055db32f5cb05 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) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Support/ToolUtilities.cpp:27:12
#38 0x000055db32ddd413 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:628:10
#39 0x000055db32ddd7b5 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:669:14
#40 0x000055db32ddd988 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:685:10
#41 0x000055db2d482de3 main /data/szy/MLIR/llvm-debug/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:323:33
#42 0x00007f094597c083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#43 0x000055db2d4829fe _start (/data/szy/MLIR/llvm-debug/llvm-project/build/bin/mlir-opt+0x26519fe)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXFtT2zAW_jXixUNGlnx94MEFsstMOzCU7j5mFFs22iqSV5Ip2V-_I9lOHAcClGtpOh3iyLJ0znfujiSiNasEpUcg_ALCkwPSmGupjk4XjC_JLT2Yy2J5VDHj3VClmRQAZx4NcIzyIAiDPAUwAzDTS23owt4DEfwxb4RpPD-ZwGASeV-vvoMItv0UrZUsmpx6v5i57vovOFOHsjYemdhL7_CQlCUT9LAghhzmsl4eVlRQRQwF-AQg1H87LBYE4JOScE0BQqtZ2nHc6DCzre6__eKVjcgn9o9XK3ZDDPVAAKkwaglQAlBIVAXtg0wU9Bag1DsE-NRz91IPxF_sGJ7nARTi2AP4xOP8ZuGmm-RSaEOEASiBE-j-UYC-QOjZAUuM3BDd5WoYwrnMZ37gBlvQhaLlxLWt5yScVWJBhXF9osANwqIAxCfusn0K4GM7MD7txm4xnGgjFW3pBeh4OGMr8B0jKGoaJRxsHohPWmw34NSG5D89o0hOAc5GHQDMLr6eZt9PPd3MF8x4xJs3ladoLZXxjPSujam1fQ5NAZpWzFw380kuFwBNLardx2Gt5H9obgCaMq0bqgGaekQUHhM5bwrqmWvq5Yroa29O8p-OmAmA2XdHW9Es6pY0OPHcvwslK0UWHlFVY0HVTk_Q1CobQFP9vyVA029fzy77-Qs6b6ptYuYN44X9ZAKg6dN0-E4FhpYMDD14a1UnDIs5KoIyjdPUKZnlAltDay8uFBPG8Xjl4EfJupMiv2ZSG0XJAqDIip1ZtUx_h81eEmwO0PR7U1vhATT9IditbWCVIFxPmMgBzmKEAc58v2PFH7OSB3NvRHc7wD-JKDhVACU3khUAZW9BbJpYYjta0YjWmMblXbBfNmKDZN2b6YsR21OZ11ZxfRgCnIUdlXhEJcE-9cYQvo2sAx8P4As6wuISpkGEQxog6M1mijr3M1OmdaHd0LdJNIuCQ85Ec3tYiaa9UZtrRUkx0XICrd-89YMAQYDSbo5wk_kEwyLwOkcPcHZeW5NqIxTAWUXNJa2YFM-QkBscTTtHs25wD67mm9g4FsUBwFlPajQgFWM_CUkZDkidSvWLqOLM2BFk17ggP6lrmXNrzXcxZm35OYy06Lve_2KaGalWauZsIerIjzeQjkoSw8izljngoaCGMN5e_yL8J8DHOxg8vY-jzHqntZ3ZyGxvzNpw5Obc8WjqRj4ekPVvwn-eq8IawsuLfAWalbgfRwBnCHeYJSPMcEKQp03RkkWFFeuMWabW3DI9k4LOZLkB3hidx9xpVX2r-QuX-U_bik_bhhvCG2r7OD_bt5plTXeLdkMGQ4z9zQnHgncZR0KEFMuFbLQnyILq2sWrtH0ic2HyhBhyLOvlP9rAuLJi1YhzMWA7WT0HUDCDu-Hpedyleq9LXfRsk32EImIf2b-dHqZjPcRp8ZAerqzOKMJsQnS8eqCgOVm2CvB6OA31cPVFNIsZUZW2Sa_Ne_2H1HYUAD6-5q7188_Uws0IGKdBl6nY1A-O1BClJX55QJ8dC08Y4W1zOzlA0ytFhC6lWuhV6zZJXdhELuFFQcf0MOHFqCh9XAb3-NXz-kqe1xdE66wg9SoJUI3YUFjb4QlhIBOELzXT34ggFXVKPJeS289GuDq_6EqBtYL47aWse8V3-tPC60raZ4PcMuE-Otygi58damgLtTRss40H84IuA3BdcsK5LQBnpdgIpx8WdWv4XIrqecn62jS7huzkyibrV1-nHWaEn94aRdpgEUQDI90sJ0K_SML0aaC_rNb8HktROmApGClT4OP5OHW1lBxLYeit6aLiLc0bQ7O89TbHm5pw6u4yKbr7G7JvVSXqpPlI6DZS3kwpsrykmzng2eUPwcxWdtvP9grOfACKQxUlfpdVWFjDTVhpXqbxB_Vsr-CuQoyGDisagVEE86eDccFqyl3E2chObdcVj9GLozNWpjOhjXKvwawNZ7s6DEJxT_sFUVSYM1HK1uZ__8XNQwJIUV-fWgHEIyNHEU2eLIBBMpHppcjPFjUHKGlx20xP7_R0rzHfeX3xzcLZ2fhrhd_EvbvBPZzJGM4wgB5pjBw7zpoowjnlU6lOSX4N8PFsVolmlt_eth1mMyHVgvAZW1X-T47ET8PJqeyqWrmh-VtMOpjRvUx_C05txD3dCggvruqb1fIwUrZQ7wX-HgLfo_65zKwvyfu2mJPFvCAAxQAle2G_vbA35DEK9a_NeVc87MX-bmJ_dqJ1d0l15X7PYqJqfy9ANpMM-6QrHSdd2IeDqvCrrFhO-CXVDTcDT1QSxsmc29R7n4q9u_4c7zPkjymWfYb8lwl8j_rnMrN9hvzBhL2Sx97_fTzh7FH_rP7vlYsS93Ogn7Q1CYLjmgTBcJ_h_m2qt_fwH1Lge9Q_l5m9kYf3_bRbmGw9_GiFEqVRvLU8YtvD_z1CH__k_ua-dQ_1n2ZfuN8HYe0LjZeGlOVLr0x4jfUAKAA465a3IDzmYY7hc3h4VdJjt5ShW_2Fxqu_fEzRB12mtFbV91iAGTqJ-73ahvslmO-zBBNFn24JJhqvztovwXyJJZgo2S_BXC3BROl-Cea7LsHEcFxIUJiM6O6RWMFNtKZ6526sHXC-Bk-p21zrw46nreKoCPADPO3am_gaiVpiCY56gsfZJizT0KupKqVatJ5SP7AvfJX862uiaDGrjdrYGfZdNiqn3yoF8GmvYCOT2K5hBvc4U-e1-UaYOJaiZNVgjOfjcyUl14O993aI9YQdZIHbmNs7DjxObuE8ibxayZxq_aUpS7eD-lGINYL9t6FbiH2jC6mW_VCD_gUtScPNrKCcGnr_M3e8etgF47Bft5vpklZMuxMtos0411YuF1LyM2GoKt3mqxdR1UeJIgycC0GdKIKxKNIgv5vpDyiSu6F-pOZvvBG4M4d7O5buB_alqo9H6UaEwqFujPebwIRG966Oujfnu--BjwLwg4XT32ID6zrsLTnZpfpvWw2u9H5za1EZFkGJPoF-fzb_9owqeSXqeCTqfA6HZ4TomjOTieJilJu8B3J_oNrt7DG8990oJipb_N_X_PzsaH2Ujo2FPwzjzDDaJ_UoHqrFqMwvisDHf0dW9FaJRjKs-dIx3PE8vBfurn7Pr0lbqWdPVaWHsHorDFpP1B1bEMAxBmmSvAgGH4PZZFjkB6NDyRJUUOwtCBPPoMZs09FfdkRgd1AE7t7lBWh4XFaYxjlMsDebcTbPZ9oQZWY9Rf0pc5W9d_g1P0PwdvUVTbAP0DTXDUDTyWR16W66cSa5nTZA6_eIAR4DkJbUa2ftDul6mZPw3BFeKAr9tKTtIV4bpwceFEe4SHFKDuiRH-MIp9BH_sH1UYHDHIW5T3wU5nlOYFSkJIwRjYs4DqPogB0hiELowxQiHCJ_QoMowEkYwCj0fQgpCCBdEMYnls6JVNWBOzjwyEcIweSAkznl2p13iVCnoqQ7_QMBdAwQcscJ2m_hyYE6cuzOm0qDAHKmjV4PbJjh7uhMq3cgPPntsyvbEwyp9pjwtk4WO2gUP_r90xI7vm-O0P8DAAD__7DmXog">